pekné, dosť sa to podobá minecraftu . Len neviem, či je dobré
písať to v Jave, pretože ako som zistil, v Jave sa hry robia omnoho ťažšie
ako programy a celková výkonnosť Javy...úplne "vymáčkne" 100% výkonu
procesoru, zaťaží ho a výsledok? Hra občas laguje ako sviňa, padá, buguje
atď. Ale to je len môj
názor
Minecraftu se to podobná možná jen tím že je to ve stejném jazyce. To
že je Minecraft špatně navrhnutý neznamená že Java není výkonná.
Odsuzuješ Javu kvůli jedné blbě navrhnuté hře. Např. RuneScape (http://runescape.com/) je
napsaný v Javě a nevím o tom, že by se nějak lagoval, padal a bugoval.
Uznávám že Java je jeden z nejtěžších jazyků na hru, ale mě to nevadí
a s výkonností nesouhlasím, Java je výkonná dost.
no s tými hrami neviem potvrdiť, to som len niekde počul ale verím tomu
pretože spustená java hra využije 100% výkonu procesoru a hra v inom jazyku
je k procesoru výrazne "milšia" to si myslím o java hrách, aplikácie toľko výkonu nežerú,
neni až také ťažké ich naprogramovať takže môj názor? Java na PC s Win
(neviem ako sa chová na iných zariadeniach s inými OS) je podľa mňa lepšia
skôr na aplikácie ako na hry.
Za rychlost či pomalost vyšších programovacích jazyků často může
správná či nesprávná volba datových typů. Také záleží na tom, jak
jsou mezi sebou propojeny. Jeden nevhodně napsaný getter či setter dokáže
shodit rychlost aplikace i na polovinu.
ja som myslel tú podobnosť MC v tom, že aj tam sa zbierajú suroviny,
generuje sa nový svet, crafting, lovenie zvierat atď. no o výkone MC som
nehovoril. Javu neodcudzujem kvôli "zle navrhnutému minecraftu" ale kvôli
mojim skúsenostiam s hrami v Jave na PC s Windows. A ver mi, že to asi nebude
kvôli môjmu kompu . Ešte
raz hovorím: "Môj názor.". A nikomu inému názor neberiem .
Určitě se nemýlíš. Java je rychlá dost, bohužel hodně aplikací je v
ní špatně napsaných. Nemusíme chodit daleko a zůstat klidně u IDE.
Netbeans je asi 20x pomalejší než PHP Storm, obojí je v Javě a obojí
dělá to samé.
Je pravda že náhodné světy mám oblíbené z Minecraftu, ale jestli
podobnost hodnotíš takhle tak Minecraftu je podobná každá druhá RPG hra.
Buď si moc her nevyzkoušel, nebo je to tvým počítačem Mě se ve Windowsech žádná hra
v Javě nekouše, a nebere 100% CPU.
takže 1. vec: možno sa MC podobá viacero hier ale napr. taký crafting, to
nemá každá hra. 2. vec: ak je to možné, radšej hrám Javy na znížených
nastaveniach grafiky, neviem, možno je to aj trochu mojim PC ale určite keby
bol napr. Minecraft v jazyku C#, bol by výkonnejší (menšie nároky na CPU,
grafiku...). Ja aj keď mám spustených 10 programov, v Správcovi úloh mám
väčšinou 10-15% využitia CPU, RAM: 25-30%. Len čo spustím nejakú
náročnejšiu Java hru (nemyslím napr. Snake ), okamžite mi CPU stúpne na
97-100% využ. a RAM na 50-60%, čo sú podľa mňa výsledky hovoriace za
všetko A 3. vec: celková
Java mi na Win moc nesedí, nwm prečo ale Java + Win je u mňa niečo nesediace
Skôr mi pripadá ako
stavaná na Linux
V hromadu hrách si můžeš tvořit itemy podle receptů (RuneScape,
GuildWars 1 i 2, WoW, Don't Starve, ...). Pokud by byl napsaný stejným
způsobem tak si myslím že ani ne (zde je zase vidět že srovnáváš s
Minecraftem). U Javy taky záleží jestli ta hra používá k vykreslování
CPU nebo GPU, hromada projektů využívá jen CPU. Pokud ti normálně
vytěžuje tak málo tak spouštíš špatně napsané hry (i můj engine mi
bral sám 60% CPUčka dokud jsem ho neoptimalizoval). Ano, sice je java
multiplatformní, ale je převážně optimalizováná na Unixové systémy.
ja som povedal že crafting nemá každá hra, nie žiadna. A Javu nesúdim
len podľa jednej hry, tie zaťaženia CPU a RAM sú skoro na každej hre v
Jave. A ako som povedal, že mi nesedí na Win, že by som ju skôr bral na
Linuxe či Unix systémoch, sám si potvrdil že je optimalizovaná prevažne na
Unix systémy, no optimalizáciu na Windows si nespomenul
a ešte niečo... Ja hrávam na jednom MC serveri a zo 150 regnutých
hráčov sa 80% sťažuje že im hra neskutočne laguje a admin na to reagoval:
" Ja s tým nič nemôžem urobiť pretože je celý Minecraft napísaný v
jazyku Java a to je to najväčšie zlo na svete. ". To som citoval nášho
admina, takže nie som sám kto si myslí, že chyby nemusia byť len v hrách
ale aj v jazykoch. A to neporovnávam len MC ale prevažne každú X hru môžem
takto hodnotiť a porovnať
.
PS: čo si vlastne predstavuješ pod pojmom "zle napísaná hra"?
Ale ta pomalost javovských her není způsobena tím, že je ta hra v Javě.
Kdyby byla v C/C++, byla by stejně pomalá, ne-li pomalejší. Prostě to
autoři té hry nezvládli. Pokud někdo třeba místo seznamu používá pole
nebo slovník či naopak, mívá to drastický dopad na výkon. Pokud někdo
nedokáže spočítat vzdálenost dvou objektů jinak, než voláním pěti do
sebe zanořených metod, tak principy Javy nepochopil a měl by se to naučit
ještě předtím, než začne psát hry.
V Javě píše spousta špatných programátorů. Neznamená to však, že
pokud programátor píše v Javě, je špatný. Jenom mnozí zapomínají
profilovat, často používají kanóny na vrabce a nehledí na úspornou práci
s pamětí, protože se o její správu nemusí starat. Často píší metody,
ve kterých je jen výběr nebo uložení jedné hodnoty a nic víc. To má
nezanedbatelnou režii.
Ona údajně ta hra běží na jednom vlákně, vývojáři furt slibují
optimalizaci, ale zatím se k tomu nějak nemají a ten hlavní vývojář,
který tu hru vytvořil dal od toho ruce pryč a dělá radši na něčem
jiném.
Pokud si prohlídneš některý z pluginů na bukkitu a zjistíš jak
některé věci jsou tam blbě udělané, jak moc se tam plítvá výpočetním
výkonem. Pokud se stejně plítvá i v samostné hře tak se nedivím že se
tak seká. Na javu bych to nesváděl.
úplne súhlasím zo Satikom. Predsa musíš aspon trochu uznať, že ak je
nejaký jazyk nevýkonný a zaťažuje PC tak sa nemôžeš sťažovať na
programátorov že sú zlí a že nevedia úsporne využívať všetky funkcie
Javy. To keď seká každá 2. hra, znamená to že všetci dobrý programátori
vyhynuli či čo?
Stále oponuješ Minecraftem, vyjmenuj tedy aspoň 2 hry v Javě kromě
Minecraftu, které se ti sekají
Se Luboš Běhounek Satik nesouhlasím JDownloader jsem používal a Eclipse
používám dodnes a neseká se mi to (zde taky záleží jak si Eclipse
nastavíte, ve složce s Eclipsem je hromada .ini souboru kde se dá nastavit
spousta věcí ), u NetBeans
nevím.
Ty to pořád nechápeš, zkusím uvést jiný příklad. Vem si např. PHP.
Spousta lidí (hlavně začátečníků) v něm kódy bastlí a tak dost lidí
odsuzuje PHP, že je to špatný jazyk. Ale tomu tak přece není. Dnes už se v
PHP píší testy, řeší se návrh aplikace, používají se návrhové vzory,
kde to jen jde. Ten jazyk umožňuje psát velmi kvalitní kód, ale kvůli
začátečníkům a projektům, které nebyly zrovna nejlépe napsané (např.
WordPress), má spousta lidí tuto mylnou představu.
Myslím, že už jsme to vysvětlili dost. Jestli se rozhodneš soudit jazyk
podle špatně napsaných programů, to je na tobě.
EDIT: když už rozebíráme Java aplikace, třeba již zmíněný PHPStorm
je velice kvalitní a rychlé IDE napsané v Javě. Netbeans umožňuje mnohem
méně, než třeba ten PHPStorm, a přesto je pomalejší.
heh najskôr
obraňuješ Javu, potom sa vyhováraš na programátorov a nakoniec povieš toto
či ty by si radšej
rátal na profi kalkulačke ako hral hry? A tí čo vytvorili CS, WoW,
TF, CoD, MC, GTA, NFS, ... to neboli dobrí programátori? či mali radšej
robiť aplikácie typu: "Hello world!" ? Keby good progr. robili len
apl., potom by ani na devbooku nebola kategória "Hry".
Jak mi chceš vysvětlit, že na stejném PC, na kterém mi před několika
lety běželo video ve FlashPlayeru naprosto plynule, najednou mám z toho
samého videa slideshow a procesor na 100 %. Přitom při stažení a
spuštění v MPlayeru mi to samé video běží se zátěží CPU kolem 30 %.
Předpokládám, že FlashPlayer není napsán v Javě a je na přehrávání
videa optimalizován.
Podle mne je vysvětlení jednoduché: Programátoři mají k dispozici
moderní nástroje, ale programují s nimi hůř než ve středověku.
koľko krát to mám opakovať...Ja Javu neodsudzujem, len vravím že podľa
mňa to nieje naj jazyk na hry. A to PHP... Príklad: PHP by na niektorom web
browseri išlo dobre ale na inom by mohlo mať problémy. To isté Java. Mne na
Win seká, občas padne a keby som chcel robiť hry, nie žiadne GameMakerovky
kde sa nič nenaučím, isto by som nerobil v Jave, lebo ako som sa dozvedel,
podľa väčšiny je nevýkonnosť Javy na zlých programátoroch. Takže
radšej nebudem žiadny programátor, ako mám byť "zlý progr." a moje hry by
mali všade sekať
vravíš na tom istom PC? môže to byť aj "hygienou" PC, že je napr.
zaprášeny atď. Môže to byť aj problém plného disku odkiaľ sa zavádza
systém (C:), veľa nainštalovaných programov... A s čím mám aj ja problém
je to, že video napr. na YT (tiež FL player) mi v 1080p seká jak sviňa a
stiahnuté nie?
Odbíháš stále od otázek co jsou na tebe kladeny a vyhýbáš se tím
případnému ztrapnění. Nechci tě nějak podceňovat, ale myslím si že
dohadovat se tu s dítětem, kterému je 13 a nemá přehled o těhle věcech
nemá smysl.
Poprosil bych jednoho z adminů David Čápka nebo David Jančík aby tuhle
nesmyslnou debatu přesunuli do jiného tématu do fóra, nebo nepodstatnou
část smazali co se netýče této hry.
Ted jsem si zkusil cvicne pustit jdownloader a musim uznat, ze odezvy pri
behu programu jsou ok, ale to spousteni, ktere z SSD disku trva 8 sekund na 3GHz
4jadru (Win7x64), kdyz ve fronte mam 3 soubory...
Mozna jsem na Javu trochu vysazenej a mam predsudky, ale bohuzel s ni nemam
moc dobre zkusenosti...
Eclipse/Netbeans jsem chvili musel pouzivat v praci na PHP a muzu rict jen
to, ze doufam, ze to uz nezaziju, myslim, ze pocitac slaby nebyl - nejake
dvoujadro s 2GB ram - tusim, ze jako prvni jsem vyzkousel Netbeans.
Na projektu s cca 20k radkama mi obcas automaticke dokoncovani bezne zaseklo
pocitac na 5-60 (a obcas i vic) sekund, coz je uz temer nepouzitelne. Zkousel
jsem stahovat jine verze netbeans, jinou verzi jre, ale nepomohlo nic, az
prejiti na eclipse, kde autokompletovani vyskakovalo vetsinou do dvou sekund,
ale zase napr kdyz jsem se chtel podivat do jineho souboru, tak jsem musel cekat
asi 15 sekund, nez se mi prepl pohled do druheho souboru.
Kdyz to srovnam s Visual Studiem, kde na tom samem pc u c# projektu s 60k
radky se intellisense zobrazuje vzdy tak rychle, ze zadny delay neni videt...
(Vim, ze srovnavam jabka s hruskami - PHP projekt v programu napsanem v jave
(NB) a C# v programu napsanem v C/C++ (VS), ale jak pak clovek nema mit pocit,
ze je java pomala? )
Zaprášený sice je, ale každý rok ho čistím, tak to není tak hrozné.
Plným diskem to rozhodně není a těch pár tisíc programů (momentálně mi
jich běží jen 145) na to také vliv nemá.
Však s tím YT je to stejný problém, který jsem popsal.
První spuštění JVM vždycky nějakou tu chvíli trvá. Zatím jsem neměl
soubor kde bych měl 20k řádků tak to nemůžu nějak vyvrátit. Ale plně
tě chápu, jsi vysazený na Javu asi jak já na C#
2 GB je na provoz těchto IDE málo. Zrovna mám jen 256 MB RAM, takže
taková prostředí vůbec nemohu používat, ale Vim běží parádně i se
soubory, které mají 1M řádek.
no ja niesom nejaké 13 ročné decko jasné? a aby bolo jasné ani ja sa
nemienim hádať s nejakým 16 ročným týpkom aby ma volal "decko" a BTW
žiadne otázky na mňa kladené som tu nevidel a nikto nikoho nenúti robiť v
Jave, je tu 100 ďalších jazykov a ak niekomu niečo nevyhovuje, skúsi niečo
nové, tak ako mne nevyhovuje Java ak so mnou súhlasí aj Luboš Běhounek Satik a to má 25 r. aj on je
potom decko čo takýmto veciam nerozumie?
Flash: tých 145 programov mala byť irónia??? načo sem ťahás flash? to
nemôžeš prirovnať k Jave pretože sekanie FULL HD videa nieje chyba flashu
(jazyka) ale pravdepodobne YT
PHP: no to bol len príklad čo bol na porovnanie...
Ja nerikam, ze je pomala, jen me zajimalo, proc vetsina programu napsanych v
jave (ktere znam), reaguje/spousti se tak pomalu, kdyz me nenapada, ktera cast
kodu by to mohla zpusobovat (kdyz si predstavim, ze bych to prepsal do c#) .
Je to chyba Flashu, bere zbytenčně moc výkonu a staré počítače to již
nezvládají, je to taky jeden z mála důvodů proč se Flash už nevyvíjí.
Má být nahrazen HTML 5.
Eclipse by mělo běžet lépe, než Netbeans. Java bude na Windows o něco
pomalejší než na Unixu, C# naopak. Možná by bylo zajímavé udělat
nějaké performance testy Java vs. C#.
To neni spatny napad, zkusit napsat a spustit nejake vlastni benchmarky mezi
C# a Javou (pripadne treba pridat i dalsi jazyky).
Zalozis na to thread, ze bysme tam vymysleli nejake algoritmy na vyzkouseni a
pak to naprogramovali (samozrejme za pouziti stejneho algoritmu ve vsech
jazycich)?
Už jsem zkoušel porovnat RK4 v C# a Javě a rozdíl byl nepatrný. Dokonce
to bylo skoro stejně rychlé jako v C, takže se to dá použít i na drcení
čísel (až po Fortranu, prosím). Značně záleží na typu úlohy.
Překvapuje mne, jak nesmyslnou diskuzi dokážeš zavést... Tvé názory
vypovídají jasně o velkých mezerách způsobených absolutním nezájmem o
daný obor. Java tak často používaná na hry, že k ní existuje tolik
frameworků, enginů atd. podle tebe není vhodná na hry? Multiplatformní
jazyk, který v herní tvorbě drží tradici... PHP - jakožto serverový jazyk
do her vůbec nepleť - ano mohu třeba chtít vyslat požadavek od klienta -
sockety/AJAX - ale to přeci jen nesouvisí s tím, jak jsi to myslel...
Přečti si články o konkurentech ASP a PHP...
to php som sem uviedol len ako prirovnanie k Jave...A k Jave: Java je
optimalizovaná prevažne na Linuxové systémy a tak sa môžu vyskytnúť
problémy na Windows. Môžem ti sem dať niekoľko citácii ako niektorí
hovoria že Java podľa nich nepracuje na Win najlepšie, takže nie som
jediný. A opäť vravím že Javu neodcudzujem, len hovorím aké s ňou mám
skúsenosti a svoj názor na jej výkon
Coo? Java je multiplatformní! V tomto ohledu je dost těžké jí
konkurovat! Výkon Javy je vysoce přijatelný - minimálně stejný jako C#.
Nemám slov. PHP a Java se opravdu nedá porovnávat - je to jako porovnávat
HTML a Ruby. Má smysl porovnávat jazyky ve stejném oboru - třeba C a C++ -
ale jakmile porovnáváš jazyky z jiných oborů - ztrácí to smysl - protože
sice ten druhý může být lepší, ale ten první může být nejlepší ve
svém oboru...
Nevím jak někdo může říct, že je Java optimalizována na Unix
systémy. Tolik problémů co s tím mají vývojáři distribucí, správci
serverů a hlavně uživatelů. Problémy s javou řeším na linuxu pořád.
Java se na linux dostala až po tvrdém boji komunity se Sunem kdy si komunita
vytvářela vlastní runtime. Až poté začala být java uvolňována pod
svobodnou licencí.
Zatímco běhové prostředí C# je integrováno do Windows, běhové
prostředí Javy se do toho muselo nějak napasovat. Na linuxových systémech
stojí Java i Mono na stejné startovní čáře. Java tedy za sebou netáhne
břemeno zbytku OS jako ve Windows, ale může komunikovat přímo s
jádrem.
ja nemám až takú skúsenosť s Javou na Linuxe ale všetci si tu navzájom
protirečíte, pretože Fugiczek ako 1. povedal: "Ano, sice je java
multiplatformní, ale je převážně optimalizováná na Unixové systémy."
ja Javu neodcudzujem, len
hovorím svoje skúsenosti a to či mi vyhovuje alebo nie
čo mi zase vadí?
moju skúsenosť mám na Win 7 a to je asi 3-4 r. starý OS takže za tie roky
7čky, kto chcel, mohol program/aplikáciu/hru prerobiť, doladiť,
opraviť...
Psal jsem o běhovém prostředí Javy. To musí běžet v mnoha různých
verzích Windows s různými záplatami a různými chybami, které se musí
různě obcházet. Proto nemůže Java být pro Windows tak dobře
optimalizována.
Stále, ale poukazuješ na Minecraft Práce programátora je
nevděčná kvůli lidem jako jsi ty. Kdyby jsi už něco napsal tak víš jak
je to těžké. Navíc oni to optimalizují na 3 operační systémy, né jen na
jeden.
áno, vadí mi to protirečenie, lebo keď poviem niečo, čo už niekto
povedal, nadávate mne bez všimnutia toho, kto to povedal ako prvý veď to tu hovorím od začiatku,
že mi Java robí problémy na Win, pretože neni optimalizovaná. Ty sa so mnou
hádaš a nakoniec to aj tak potvrdíš
hele Minecrafáku (preto to oslovenie, pretože spomínaš MC 4x viac ako ja
), ja viem aké ťažké je
niečo napísať. Keď niekto niečo optimalizuje na viac sys. , dobre. Lenže
keď nieje dobre optimalizovaný jazyk, môžu optimalizovať aj 100x a
skoro vždy to bude robiť problémy (lagy, bugy...)
Vrátím se téměř k začátku celé diskuze. Minecraft občas hraju a za
žádnou cenu mi nežere 90% CPU jak uvádíš. Můžu si k tomu pustit
Photoshop a klidně i render videa, to je jedno. V té době už pocítím
menší sekání. Minecraft zabírá spíe RAM než CPU. A jakožto mladý a
začínající programátor nemám ještě v těchto věcech tak dobrý
přehled, ale co začínám cítit je "nevděčnost" některých lidí. Ano,
hermí průmysl se točí okolo peněz. Oni nepotřebují dobré programátory,
proč ? Stačí lidé kteří umí v daném enginu, vyměit textury,objekty a
zvuky. A volala, hra je na světě. najdou se lidé (když už jsme u
Minecraftu, tak "Notch" ), kteří přinesou něco nového. Já osobně se
zaměřuju na to zlepšovat se, ne něco splácat, co umí téměř každý
druhý. Co se týče Javy, nemám s ní problém, vůbec žádný problém. Co
se týče Youtube, je to problém Flashe, ne Youtube.
ok ja mám teda zlý komp,
java je úplne super jazyk, výkonný, dobre fungujúci, a teda je chyba v
programátoroch, čiže celý Mojang a všetci nevedia o Jave nič a nevedia v
nej ani robiť. spokojný?
Kdyby byla chyba v jazyku tak není mezi nejpoužívanějšími a
nejžádanějšími jazyky se C#. Pokud programátor zbytečně plýtvá
výkonem v aplikaci nepotřebnými výpočty, tak prostě CPU počítá
zbytečně něco a pak nezbývá čas na ty hlavní/podstatné výpočty.
nechcem sa hádať, keď môj názor niekomu vadí, tak ja zas prijmem ten
jeho a je to ok tak ako mne
Java nie príliš vyhovuje, pre iného to môže byť jediný vyhovujúci jazyk
Diskuze o ničem - tvrdíš, že se jazyk dá měřit podle hotové aplikace?
Jednoduše hovadina... Stalo se moderním, že "programátor" dnes nemusí
nutně spravovat nižší interakce atd. Prostě nehledí dopředu a do hloubi.
Testuje jen velmi málo - a jen na velmi málo rozdílných platformách,
strojích,... Dnes takovémuto "programátorovi" stačí, že mu výsledek
jede... Místo "programátor" bych tedy použil zastaralé - kóder. Protože se
tu bavíš o programování a jsi kóder, těžko můžeš zavést smysluplnou
diskuzi. Tvé rádoby komentáře postrádají to nejhlavnější - obsah...
Chcheš-li machrovat na kamarády, může ti stačit, co umíš teď. Proč se
ale pouštíš do divoké diskuze, ze které si stejně nic neodneseš - co si
neohmatáš, těžko si osvojíš... Jen málo kdo může být programátor bez
studií - a tím myslím jako první - naučit se o PC. O historii o vývoji
atd. Pak pochopitelně jak vlastně které jazyky fungují - jaké jsou mezi
nimi komunikace - atd... Ale vést řeči lze až si to sám ohmatáš -
protože jinak budeš interpretovat, co vyřkli jiní - a ty z toho budeš mít
jen jakési uspokojené tvého ega a machrování před kamarády - kde se
můžeš dost ztrapnit...
Nechceš se vsadit jak dlouho tu tyhle nesmyslný hádky budou? Typuju že do
tý doby než se vytvoří jeden jazyk kterej slepý výhody všech ostatních a
zahodí jejich nevýhody. Pak snad daj pokoj
Pokud jsi temi jinymi myslel treba me, tak ja radsi budu zticha, abych
nevyvolaval flame
Jinak Java si za to, ze se o ni rika, ze je pomala, muze sama - zpocatku
opravdu pomala byla a hlavne kdyz kterykoliv programator (zvykly treba na
bleskove Visual studio - oficialni programovaci nastroj od MS) vidi NetBeans -
oficialni programovaci nastroj od tvurcu Javy, ktery je udesne pomaly a kazdou
chvili hazi bezduvodne vyjimky, tak co si pak ma myslet o Jave samotne?
presne o toto tu ide Luboš Běhounek Satik si myslí o Jave presne to isté čo ja a LEN
mne tu hovoríte že som 13 r. decko a že takýmto veciam nerozumiem... Keď
tak to hovorte aj jemu lebo to voci mne neni fer .
S tím IDE je to smutná pravda, ale Java jako jazyk nemá důvod být
pomalá. Osobně Javu nemusím, mám k ní nějaké výhrady, ale určitě ne
ohledně rychlosti.
Nechci tě nějak urazit nebo tak nějak, ale proč si nemáme myslet že jsi
13ti leté děcko když máš za jměnem 98? Jestly má ta 98 nějakej skrytej
význam nebo tak něco tak se ti opravdu omlouvám.
Já vím že jde o to jak se ten člověk vyjadřuje ale to také není
úplně směrodatné. Ne každému musí jít vyjadřování nejlépe ale
určitě to nebude svědčit třeba o tom kolik má zkušeností a jak je dobrý
v programování takže co kdyby jsme se přestali věnovat nesmyslům a začali
řešit dané téma?
Podle mého názoru není výkon Javy o nějak moc menší než v hrách
napsaných v C/C++, jako rozdíl tam je ale ne moc veliký. Pokud se používá
LWJGL, JNI v C/C++ pro náročné výpočty a je hra optimalizovaná tak není
problém. U menších her nemusí být JNI ani LWJGL, viz třeba můj engine na
kterém pracuji
Můj věk také neodpovídá mému mentálnímu věku - ale narozdíl od tebe
spíše v lepším slova smyslu. Ne že bych se povyšoval - myslím tím tvůj
způsob komunikace a vůbec tento průběh diskuze. Důvod proč vůbec
odpovídám je prostý - i kdybychom pozabíjeli všechny zločince, zločin tu
bude stále - proto někteří s ním nic nedělají, jiní dělají a
zmíněný problém jim v tom nebrání...
No ale k věci - proč nevedeš takovéto diskuze třeba na FaceBooku? Či
jinde, kde je to úplně normální... Zde by vůbec nemělo jít o pocity,
nálady atd., ale o prostá fakta - fakta především kolem programování. To,
že se nějaký program seká, to sem nepatří... (Pokud se to nějak netýká
Devbooku - zde se ale bavíme o výkonu her v Javě.) To piš na fórum daného
programu. Ve chvíli, kdy už ale zavedeš obdobnou diskuzi, mohl by jsi ji
alespoň rychle ukončit - nebo převést na smysluplnější - místo toho tu
ale řešíš kdo ví co...
Tak lidi ale dost už! Začíná to vypadat že se to přiostřuje. Je pravda
že se tu mají řešit věci ohledně programování a tady to už jako diskuze
o programování moc nevypadá takže bych navrhoval uzamčení tématu a dělat
jako by se nic nestalo.
Když tedy na hry Javu ne, tak který jazyk bys navrhoval? C# je na tom ±
stejně, C není objektové a C++? To by se možná dalo použít, ale stejně
by se musely řešit rozdíly mezi operačními systémy a jejich verzemi. A to
by vývoj her prodražilo.
Za mě osobně je to rozhodně C# ale jak jsi už psal problémy se řeší
všude a je jenom na dané osobě u kterého jazyka se jí problémy budou
řešit nejlépe. Mimo to neřekl jsem že Java je na hry špatná jen mi
přijde že C# je pro tenhle účel jaksi vhodnější.
Java se hodí na opravdu multiplatformní hry - do mobilů apod, ale
zaměřovat se při programování běžných desktopových her na
multiplatformnost mi (zatím) přijde zbytečné, stejně přes 95% lidí
používá Windows a kdo ne, má prostě smůlu, vždycky se najde nějaký
systém, na kterém to nepojede, pokud to pojede naprosté většině, tak mi to
stačí.
Neviděl jsem zatím nějakou úspěšnou multiplatformní
aplikaci v Monu. Nejspíš to bude tím, že to není nějak extra dokonalé
Možná jich je pár méně
známých na Linux/iOS, ale na android? Ten občas skoro nezvládá Javu, natož
emulaci C#...
Ono to zas tak úplně logické není. Mohl by tam být i C#, kdyby se
Microsoft trochu snažil. Mohl by tam být Lisp (mám ve svém PDA), mohl by tam
být Python, Lua nebo cokoliv jiného. Je to otevřený systém.
Ano mohl by tam být Lua, Ruby, Python ale nemyslím si že by se Microsoft
měl snažit s C#. Přeci jenom asi těžko by chtěli dobrovolně podporovat
konkurenci když ho sami mohou implementovat do Windows phone. Což také
dělají.
A myslím že i tak to budou výdělky dost dobré na to aby ho to
minimálně ještě na pár let uživilo. A ano Windows Phone je propadák. Už
vzhledem k tomu do jak (ne)výkoných zařízení je cpe.
Udělal jsem si jednoduchý benchmark v Javě. Určování vzdáleností je
ve hrách častá operace, používá se Pythagorova věta. Zkusil jsem si tedy
do proměnných a, b uložit souřadnice bodů a
spočítat jejich vzdálenost.
Výsledek byl v obou případech stejný, ale ten druhý byl 15×
rychlejší. Jen pro zajímavost: Ten druhý byl spočítán stejně rychle,
jako v C i ve Fortranu.
Z toho je vidět, že některé funkce, jako např. Math.pow()
jsou velmi drahé. Zrovna tuto funkci vůbec není radno používat k
umocňování na druhou a je lepší použít násobení. Pokud se ještě
navíc každá složka souřadnic vytahuje z objektu samostatným getterem, je o
lenivost programu postaráno.
Takových velmi často volaných funkcí je víc než dost a jejich
nesprávné používání může velmi zpomalit aplikaci bez ohledu na to,
jestli je to v C#, Javě, C++ nebo i v jiném jazyku.
Tak jsem si zkusil v Javě ještě tuhle hrůzu, která mi ale poskytla velmi
pěkný výsledek 20 ns. Tedy stejný jako v předchozím případě bez
použití Math.pow() a srovnatelný s C či Fortranem. A to při
použití objektů s privátními proměnnými a gettery.
Tak jsem ještě chvíli v tuningu pokračoval, aby to bylo rychlé a hezké.
Výsledek se dostal lehce pod 20 ns. Z celé třídy uvádím jen podstatnou
část, která je stejně rychlá jako v C a přitom je objektová. Napsal jsem
ji staticky, aby se dala vyhodnotit vzdálenost různých objektů, ale není to
podstatné.
Ještě jsem tu třídu zjednodušil. Vyházel jsem nepotřebné gettery a
settery. Ponechal jsem jen to nejnutnější. Možná někomu připadne
podivné, že Java umožňuje přímo sahat na privátní proměnné
sourozenců, ale je to tak. Možná i proto se v Javě tolik getterů/setterů
nepíše.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.