.[ ČeskéHry.cz ].
Archív :: ZIP
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 29. duben 2011, 11:58:07    Předmět: Odpovědět s citátem

Takže důvod vlastně žádný není, jen si to dobrovolně komplikuješ ? Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. duben 2011, 11:58:21    Předmět: Odpovědět s citátem

VODA napsal:
Ale mátě pravdu, že by bylo lepší, kdyby tahle doba otevírání odpadla...


Moje pointa byla, že smysl archivů ve hrách podle mě je v tom, že to urychluje načítání. Proto v těch archivech často najdeš i nekomprimované soubory a komprimované jsou jen ty, kde se komprese vyplatí. Tady ti ale prostý .zip nestačí.

(spíš tady ale ztrácím čas)
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 29. duben 2011, 11:58:38    Předmět: Odpovědět s citátem

VODA napsal:
Už mi to trochu připadá jako na střelnici... úúú zastřelte Vóďu... Wink

Ale mátě pravdu, že by bylo lepší, kdyby tahle doba otevírání odpadla...

kazdy sa ti len snazi povedat ze robis blbost. ked tak si vytvor vlastnu sadu fukcii ktora bude citat zo suborov.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. duben 2011, 12:06:13    Předmět: Odpovědět s citátem

Manox napsal:
Takže důvod vlastně žádný není, jen si to dobrovolně komplikuješ ?

Mě to jako komplikace vůbec nepřijde... Wink

Eosie napsal:
(spíš tady ale ztrácím čas)

To určitě ne, já si Tvých rad neskonale vážím, jen teď nejsem asi dostatečně na úrovni, abych s tím chtěl něco udělat... Wink

nou napsal:
kazdy sa ti len snazi povedat ze robis blbost.

Už jsem si všiml... Cool

nou napsal:
ked tak si vytvor vlastnu sadu fukcii ktora bude citat zo suborov.

Ono to na mě časem přijde...

Jinak já jsem v tomhle vlákně chtěl především poradit co použít na načítání souborů ze ZIPu, to jste udělali, děkuji a až mi zase jebne v hlavě, tak to třeba udělám úplně jinak... Shocked
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 29. duben 2011, 14:11:15    Předmět: Odpovědět s citátem

Asi hloupý dotaz, ale nepleteš si Vodo(promiň, nevím jak oslovit) archivaci a kompresi?

Píšeš tu, že hlavní důvod máš, že to chceš mít v jednom souboru, ale pořád se tu ptáš na zip kompresi, tak proto se ptám.

Jinak když jsem já vyvíjel v jedné firmě hru na mobil, tak se společné resource(týkající se např. jednoho levelu) archivovaly do jednoho souboru, protože načíst jeden velký soubor do paměti, a pak z něj vytahávat malé soubory je rychlejší než tahat malé soubory zvlášť.
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 29. duben 2011, 16:08:44    Předmět: Odpovědět s citátem

Houp napsal:
Jinak když jsem já vyvíjel v jedné firmě hru na mobil, tak se společné resource(týkající se např. jednoho levelu) archivovaly do jednoho souboru, protože načíst jeden velký soubor do paměti, a pak z něj vytahávat malé soubory je rychlejší než tahat malé soubory zvlášť.


nikdo tu netvrdime ze to smysl nema - ale tomu co tu VODA vyrabi se rika proste 'premature-optimization' a nebo chujovina

to prvni, protoze chce zrychlit neco co je nejspise dostatecne rychle
to druhe, protoze resi zcela zbytecnou vec, kterou ma smysl resit az kdyz zjistim, ze opravdu mam problem s nacitanim dat z disku
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. duben 2011, 16:09:33    Předmět: Odpovědět s citátem

Ne, určitě si ty dva pojmy nepletu.

Já jsem měl původně implementovanou vlastní verzi archívů bez komprese(pokud jste zkoušeli tu mojí aplikaci, tak tam byl soubor resources.arx), jenže mě nebavilo psát tu low rutinu kolem a hlavně jsem nechtěl dělat vlastní archivátor... No a pak jsem si říkal, co použít nějaký hotový archiver, abych na to nemusel nic psát, pouze něco co to bude umět číst...
Napadl mě třeba TAR, ten mám takové tušení, že je bez komprese, ale přeci jenom ZIP je podle mého rozšířenější (alespoň na Windowsech)...
A to že umí ZIP navíc komprimovat, to je jen plus...

Teď teda taková otázka, dejme tomu, že bych to udělal tak, jak jste radili, číst ty data přímo...
Co kdybych to chtěl číst textově, třeba něčím podobným jako je fscanf?
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 29. duben 2011, 16:42:24    Předmět: Odpovědět s citátem

S tou kompresí již komprimovaných souborů to nevidím tak černě. Quake 3 měl taky jpgčka v zipu.
K načítání textových souborů přes scanf: Pokud nechceš scanf implementovat (což bych ani nedoporučoval), tak jedině asi celý soubor dekomprimovat do paměti a číst přes sscanf. K formátovacímu řetězci vždy připojit %n, abys věděl, kolik znaků jsi přečetl.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 29. duben 2011, 17:12:00    Předmět: Odpovědět s citátem

No jeden velký soubor je fajn.. rychle se to nasosne do paměti.. ALE... mít to celý v jednom monstr zipu (archivu) není taky ideál. Zaplácáš paměť daty, které tam jen leží. Archiv pro každý level je ok, pro celou hru už moc ne. Je lepší si přidělat trochu práce a napsat to univerzálnější, pak se to dá znovu použít...

Temp soubory... to snad ne Very Happy To už rovnou můžeš ten archiv zrušit, ne... když to bude archiv plný jpgů, tak ve výsledku.. komprese bude minimální a akorát to bude pomalejší - musí běžet dekomprese a pal tvroba souborů na disku -> teprve fopen... kdežto bez archivu dáš rovnou fopen...
Tohle chce napsat si vlastní fopen.. nebo objektově prostě třídu která ti vrací handle někam do paměti

Podobný systém jsem používal (akorát byl napsaný jako prase, takže mám v plánu to přepsat)

kód:

//misto ZIP_ARCHIVE treba RAR_ARCHIVE, MY_ARCHIVE,
MY_FILE * f = myfopen("neco.txt", "archiv.zip", ZIP_ARCHIVE);

//lze to rozvest i do extremu, kdy mas archiv v archivu
//MY_FILE * fIn = myfopen("jiny_archiv.zip", "archiv.zip", ZIP_ARCHIVE);
//MY_FILE * f = myfopen("soubor.txt", fIn, ZIP_ARCHIVE);


//nebo pro přímý přistup na disk
//misto jmena archivu nastavis root adresar
//MY_FILE * f = myfopen("/data2/neco.txt", "/", NO_ARCHIVE);

myfread(buffer, sizeof(char) * 256, f);


A dekompresi dělá až myfread

Coz se dá brát jako ekvivalent ke klasice
kód:

FILE * f = fopen("neco.txt", r);
fread(buffer, sizeof(char), f);


(c++ souborové třídy nějak nemusím, takže používám C styl, popř. si ho zabalím do třídy)

Vypadá to čistě, nedělá to žádný mazaniny ala temp soubory a můžeš snadno přidat podporu pro další archivy. Pokud by ti šlo o low level... můžeš ve výsledku napsat ručně i zip dekomresi (základní je ok... ale pro složky nevim kolik je to práce navíc, to jsem nikdy nepsal).
Tímhle můžež udělat pak i vlastní balík (změnit existující) a v kódu se nic nezmění
_________________
Perry.cz


Naposledy upravil perry dne 29. duben 2011, 17:14:45, celkově upraveno 2 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. duben 2011, 17:13:25    Předmět: Odpovědět s citátem

To frca:
No a tak to v podstatě mám, jen je to uložené v tempu (ZIPfile)...
Jelikož většinu dat mám v textové podobě, tak to potřebuji nějak takhle...
Binárně čtu akorát Textury...
Shadery, modely, kolizní geometrie, navigační meshe jsou textové...

EDIT: Teď jsem to otevření z archívu ještě zrychlil (volbou vhodné velikosti bufferu při načítání a ukládání do tempu). 6 MB ogg ze ZIPu otevřu za 80 ms, což si myslím, že je snesitelné...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. duben 2011, 17:26:45    Předmět: Odpovědět s citátem

Asi by bylo lepší místo cpát to do tempu, tak to mít uloženo jenom v paměti...pole charů...a z toho to pak číst...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 29. duben 2011, 18:18:01    Předmět: Odpovědět s citátem

Tady jsem zkoušel nějaký debug, uvedený čas je čas potřebný k otevření souboru (ne čtení)...

kód:
D:\archive.zip\AQCX_ROOT\ottselGirl.tga
1048620 B
Consumed time: 17 ms

D:\archive.zip\AQCX_ROOT\cursor.tga
16428 B
Consumed time: 32 ms

D:\archive.zip\AQCX_ROOT\font.tga
1048620 B
Consumed time: 35 ms

D:\archive.zip\AQCX_ROOT\navmesh2.txt
17067 B
Consumed time: 37 ms

D:\archive.zip\AQCX_ROOT\resources.arx
3017219 B
Consumed time: 43 ms

D:\archive.zip
1027622 B
Consumed time: 12 ms


Ten poslední záznam je otevření fyzického souboru archívu...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 29. duben 2011, 18:36:21    Předmět: Odpovědět s citátem

Pokud nemáš skutečně velké soubory, tak je to afaik jedno. U velkých datasetů (které třeba používám já u raytracingu), nějakých třeba 28M triangle - jako má model Lucy - by to trvalo docela dlouho (ono tam tedy trvá i postavení Kd-tree v O(n log n) docela dlouho - pár minut afaik).

Další věc je, pokud bys potřeboval data streamovat, to také není taková sranda co se napsání týče (aby to bylo rychlé), a chce to tam rychlý přístup samozřejmě.
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. duben 2011, 21:00:51    Předmět: Odpovědět s citátem

VODA napsal:
Co kdybych to chtěl číst textově, třeba něčím podobným jako je fscanf?


Nechci tě nějak demotivovat, ale tohle už je dost začátečnická otázka. Smile Můžeš začít třeba tím, že si uděláš čtení po řádcích (tj oddělovač stringů je '\n') a budeš parsovat vždy samostatný řádek (přes sscanf třeba). Nebo si nad tím uděláš nějakej automat (konečnej nebo zásobníkovej) a máš vymalováno.

perry napsal:
No jeden velký soubor je fajn.. rychle se to nasosne do paměti.. ALE... mít to celý v jednom monstr zipu (archivu) není taky ideál. Zaplácáš paměť daty, které tam jen leží. Archiv pro každý level je ok, pro celou hru už moc ne.


Blbost. Monstr archiv používá hodně her. Vždycky se čte jenom ta část souboru, kterou reálně čteš, a to z místa, které sis naseekoval, takže můžeš mít 20GB archiv a z něho si streamovat hudbu a zároveň občas naloadovat nějakou texturu a hudba se ti sekat nebude, když to neuděláš úplně blbě.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Xena



Založen: 01. 08. 2007
Příspěvky: 9

PříspěvekZaslal: 29. duben 2011, 22:15:04    Předmět: Odpovědět s citátem

Svyho casu sem mel ve First Encounter naroubovanej tenhle data manager od demo grupy 7gods:

http://7gods.org/files/cdi.zip

to by mohlo bejt to, co shanis.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 4 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna