Onu větu mi řekl profesor algoritmizace, když jsem se ptal na vytváření polí v Jave, když předem nevím, jak velké ho budu potřebovat.

Dneska jsem si opět potvrdil, jaká je to hloupost. Chtěl jsem vyzkoušet nové GTA 4, a jelikož jsem na Strahově, kde rychlost internetového připojení = tolik kolik unese síťová karta, nic mi nestálo v cestě. Po nainstalování se však objevila nepříjemná věc - některé textury nejsou vidět / načítají se zpožděně.

Pravda, zkouším hru na notebooku, ale musíte uznat, že Lenovo R500 s externí ATI grafickou kartou není zrovna obyčejný kancelářský nástroj (např. nový Bioshock mi jde na plné detaily).

GTA IV se mi nijak nezasekává, problém je jenom v těch texturách. A proč to? GTA IV je těžce neoptimalizovaná hra, jejíž vývojáři se s pamětí nijak nemazali. V minimálních požadavcích je hned 256 MB paměti grafické karty. Jeden by čekal, že si případný nedostatek hra vynahradí pamětí RAM, ale bohužel.

5 komentářů

Neváhejte napsat k článku komentář

Nevyplňujte:

  1. 1
    Scotty

    kapl.tom<zavináč>centrumtečkacz

    Ty máš EXTERNÍ grafiku u notebooku? Tos dostal od Ježíška nebo sis pořídil sám? Jak jí máš připojenou? Nebo jsi snad chtěl říct, že máš grafickou kartu DEDIKOVANOU? A jinak je celkem logické, že hra vyžaduje pro grafiku paměť grafické karty - rychlost, kterou nabízí RAM se základní deskou není určitě dostatečná pro přenos takového množství grafiky, proto se volí paměť blíže grafickému čipu. Víc by ti ale asi vysvětlil Swarm, ten do toho vidí víc...

    • Na komentář odpověděl(a) Antonín Daněk v komentáři #2
  2. 2
    Antonín Daněk

    danek<zavináč>antonindanektečkacz

    No dobře, tak dedikovanou, chybička se vloudila.
    Jo, logický to je a samozřejmě je to lepší, od toho tu paměť grafický karty maji. Jenomže 256MB je síla. Jestli se jim nevejdou do 128MB graf. paměti textury pro rozlisení 800x600 ani pro aktuální okolí, tak je jasný, že to psali prasácky a nechávaji tam i to, co by tam bejt nemuselo.
    Jinak v rychlostech moc velkej rozdíl nebude. Spíš jde o to, že kdyby neměli grafický karty svojí paměť, tak by se museli dělat moc velký RAMky, což by byl problém. Jiný hry si běžně dopomáhaji RAMkou.

    • Tento komentář je reakcí na příspěvek #1, který napsal(a) Scotty
  3. 3
    Michael

    michaelf.ms<zavináč>gmailtečkacom

    Když už jsi zmínil ta pole, vzpomněl jsem si na jednu možnost stařičkého VB6. Když sis udělal pole, mohl sis ho nejdřív deklarovat jako úplně bezrozměrné: Dim a(). Potom jsi mohl jet v programu dál, získat si potřebnou velikost a pomocí předimenzovávacího klíčového slova (to se ještě namísto nich nepoužívaly statické metody tříd, nebo to aspoň nebylo vidět) změnit velikost pole na kýženou hodnotu - ReDim a(n). Nejlepší na tom bylo, že když sis pole naplnil a potom ses rozhodl, že by se ti hodilo ještě nějaké prvky přihodit a přidat třeba další dvě dimenze a trochu majoránky, aniž bys ztratil data, která už v poli jsou, udělal jsi jednoduše - ReDim Preserve a(n,n,20) :). Umí tohle Java?

    Jak vůbec vidíš Javu jako jazyk? Líbí se ti? Musíte pro řešení úkolů používat jenom Javu, nebo si můžete vybrat jiný jazyk? Java mi zrovna sedí úplně ze všech nejmíň. Já vím, že ty algoritmy se s jazykem nemění, ale přeci jenom je lepší pocit psát zlatým parkerem z odlehčeného kovu (MS C++/CLI) na parfumovaný papír než násadou na koště do písku :)).

    • Na komentář odpověděl(a) Antonín Daněk v komentáři #4
  4. 4
    Antonín Daněk

    danek<zavináč>antonindanektečkacz

    Jo, deklarovat si bezrozměrný pole můžeš taky:
    int[] pole3;

    Ale jakmile ho chceš používat, musíš použít:
    int[] pole3 = new int[10]; (10 je velikost pole) Popř. int[] pole3 = {1,2,3,4,..}
    Čímž už pole dostane místo v paměti. Ale pokud bys zjistil, že ti ta velikost nestačí, tak už s tim nic nenaděláš. Jedině si vytvořit nový, překopírovat tam prvky ze starýho a starý pak smazat.
    Takže ne, Java nic takovýho nemá a přesně na to jsem se taky ptal. Ono se totiž často stává, že předem nevíš, jak velký to pole budeš potřebovat, a můžou být případy, kdy potřebuješ milion prvků a případy, kdy jenom dva. Proto mě ta odpověď, že o paměť se starat nemusim a ať si vytvořim pole větší, moc neuspokojila.
    Ale tak já přišel z PHP, což je hodně prasáckej jazyk. Tam se nic nedeklaruje. Chci něco uložit do pole, tak udělám pole[]="xyůů"; pole[]=6; a na prvních dvou indexech to mam.

    No a co já na Javu? Ono hodně lidí jí podle mě kritizuje jen proto, že jsou do ní nucený. Co se týče rychlosti, nová Java má defaultně jakýsi hot-spot a JIT kompilátor, takže se skoro rovná jazykům kompilovaným do strojovýho jazyka.

    Mně se líbí, že je to čistě objektovej jazyk a konečně jsem se na ní do těch objektů trošku dostal (i když semestrálku jsem opět dělal klasicky strukturovaně, což se ale ukázalo jako dobrý řešení, protože objekty mají přeci jen větší vlastní spotřebu). V PHPku jsou ty objekty dost nepřehledný, je vidět, že to není původní OOP jazyk.

    Ale ve finále se mi nijak zvlášť nezamlouvá. icon_lol.gif Sice je super, že je multiplatformní, což se mně hodně líbí, ale některý věci mi tam hodně vadí. Zkrátka ještě počkám, ochutnám od nějakých dalších jazyků, než se k nějakýmu uchýlim.

    Jinak já zatim vlastně Javu jakoby nemam. Sice jí používáme, ale předmět se oficiálně jmenuje Algoritmizace, takže by to nemělo být o Javě. Samozřejmě je to předmět prvního semestru, takže ve finále se začátečnická skupina učí hlavně tu Javu. My jsme přecijen trochu do algoritmů a jejich složitosti nahlídli, ale taky nic moc. Každopádně příští rok mě čeká předmět Programování v Jave a to by mělo být o něco hustší (Balík strašil), ohledně Javy samotný, tak jsem zvědavej.

    Jiný jazyk si zvolit nemůžeme. Další rok si ale budeš moct zapsat co chceš.

    (Je to možný, že píšu tak dlouhý odpvědi? Měl bych si najít nějakou zálibu. icon_smile.gif)

    • Tento komentář je reakcí na příspěvek #3, který napsal(a) Michael
  5. 5
    petr

    petr.vitiska<zavináč>seznamtečkacz

    já mám grafiku nividia geforce gtx 560 se unese mi to gta 5 prosím odepište.díky moc