Warsztat.GD

Programowanie => Językoznawstwo => Java => Wątek zaczęty przez: Kamil w Styczeń 13, 2006, 21:45:42

Tytuł: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Styczeń 13, 2006, 21:45:42
Pytanie jak w temacie. Czy ktos tworzyl/rozwazal tworzenie pisania w javie gry typu desktop (czyli nie przez applet ani na komorke)?
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: exor w Styczeń 13, 2006, 22:48:37
zdaje się że Java jest za wolna. zdecydowanie szybsze jest c++. z tego co słyszłem póki co Java nie nadaje sie na gry, może kiedyś się to zmieni.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: orzech w Styczeń 13, 2006, 22:55:04
zdaje się że Java jest za wolna. zdecydowanie szybsze jest c++. z tego co słyszłem póki co Java nie nadaje sie na gry, może kiedyś się to zmieni.

Niestety tutaj się nie do końca zgodzę. Owszem C++ jest szybsze, ale nie oznacza to, że dyskwalifikuje to Javę jako język tworzenia gier. Wszystko zależy od wymagań jakie stawiasz, Kamil. W dzisiejszych czasach tak czy siak duża część roboty w przypadku gier 3D wykonywana jest przez procesor karty graficznej, więc wydajność samego języka programowania traci trochę na znaczeniu.

Jako przykład można podać grę, którą nasz rodzimy kraj może się pochwalić - Chrome (Techland). Gierka wykorzystuje technologię Java.  ;)

Pozdrawiam!
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Styczeń 14, 2006, 00:06:56
Ja swoją gre napisałem w javie (początkowo była w c++ i directx i byla to gra na compo warsztatowe, patrz Treasure Digger), troche zabawne jest to, że początkowo wykorzystywała akceleracje DirectX, w późniejszym stadium OpenGL, w jeszcze pozniejszym OpenGL lub SDL.. i okazało się że na słabym komputerze bez dobrej karty graficznej gra miała okolo 2 fps..  natomiast w javie przy wykorzytaniu samego Java 2D "śmiga" :)   -  jak narazie to moge pochwalic sie tylko screenami na mojej stronie gdyz release ani dema jeszcze nie bedzie w sieci ;) -> robie levele, ktorych mam juz 16.

Co do gier używających java, to nie tylko Chrome, z tego co wiem to także Splinter Celle także.  Fajnym pokazem możliwości jest gra odlabs : Tribal Troubles napisana przy uzyciu LWJGL.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: krowal w Styczeń 14, 2006, 00:30:44
jesli ktos nie wierzy w gry w javie to polecam zapoznac sie z produktem http://www.wurmonline.com/ :) bardzo ciekawy mmorpg, gra ma wielkie mozliwosci i jest ciagle rozwijana,  spedzilem pry niej troche czasu i musze powiedziec ze jest bardzo fajnie zrobiona, jest w niej duzo rzeczy ktorych nie znajdziemy w innych mmorpgach, jesli macie problemy z instalacja to piszcie w tym poscie, opisze krok po kroku badz skieruje gdzie trzeba
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: agent_J w Styczeń 15, 2006, 14:38:24
Popatrzyłem na to JOGL i zdecydowałem, że muszę się za to zabrać :)
Chcę napisać grę typu Anno 1602/1503 (gra ciągła), ale ma to być gra tylko w trybie massive multiplayer i java wydaje mi się odpowiedniejsza do klienta, natomiast serwer to tylko C/C++.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: g[R]eK w Styczeń 15, 2006, 15:05:29
Fajnym przykladem mozliwosci Javy jest Jake2 (http://www.bytonic.de/html/jake2.html).
Ten port Quake2 do Javy pokazuje, ze Java wcale nie jest taka wolna jak sie wszystkim wydaje. Wieksza wada Javy jest moim zdaniem pamieciozernosc. Java z racji swoich zalozen projektowych i mozliwosci jakie oferuje (np. refleksje) potrzebuje znacznie wiecej pamieci. Oczywiscie te bajery sie przydaja i wystarczy sie zastanowic nad bilansem zyskow i strat. Zaleta Javy jest rowniez szybsza alokacja pamieci co czasami moze sie okazac krytycznym elementem wplywajacym na wydajnosc.
Trzeba powiedziec, ze Java to inny rodzaj programowania niz np C++ nawet z uwagi na to, ze kod jest uruchamiany w maszynie wirtualnej, co pociaga za soba inny rodzaj problemow niz przy programowaniu w C++/Delphi.
Do zalet Javy mozna zaliczyc niezliczona ilosc bibliotek, i znacznie szybsza adaptacje w tym srodowisku nowych technik programowania (np XP) co sprawia, ze programowanie w tym jezyku moze byc naprawde ciekawe i rozwojowe :)
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Gloggie w Styczeń 15, 2006, 18:12:36
Według mnie java nie nadaje się na żaden poważniejszy projekt growy. Przykład: Eclipse :) To tylko IDE a jak się ślimaczy na szybkim kompie. Jeszcze dwa lata i wypadnie z obiegu nawet w midletach, bo komórki będą na tyle szybkie że kazda cos ala symbian będzie miała...
Sam c# to też niby 'taka java' ale ma większe wsparcie w akceleracji (managed d3d). Co z tego skoro to i tak na razie kpina - żeby napisać coś sensownego nie obejdzie się bez segmentów unsafe i imporu natywnych bibliotek windowsa - czyli zero przenośności...

Więc jeżeli chcesz pisać grę, to java wydaje mi się najmniej sensownym podejściem. Co się uzyska? Więcej platform uruchomieniowych? SDL jeżeli coś i tak je pokrywa i jako c++ jest szybszy. A java naprawde zarzyna słabsze komputery... Jeżeli nie - to programik praktycznie nie ma kodu...
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: SauRooN w Styczeń 16, 2006, 02:47:31
Jako przykład można podać grę, którą nasz rodzimy kraj może się pochwalić - Chrome (Techland). Gierka wykorzystuje technologię Java.  ;)
Sprostuję. Silnik Chrome'a w celach wydajnościowych został napisany w C++, w Javie jest sam kod gry.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: orzech w Styczeń 16, 2006, 18:53:59
Jako przykład można podać grę, którą nasz rodzimy kraj może się pochwalić - Chrome (Techland). Gierka wykorzystuje technologię Java.  ;)
Sprostuję. Silnik Chrome'a w celach wydajnościowych został napisany w C++, w Javie jest sam kod gry.

No to napisałem bezpiecznie, że gra wykorzystuje Javę, a nie że silnik został napisany w Javie.  ;D
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: comrade w Kwiecień 12, 2006, 01:27:00
jesli ktos nie wierzy w gry w javie to polecam zapoznac sie z produktem http://www.wurmonline.com/ :) bardzo ciekawy mmorpg, gra ma wielkie mozliwosci i jest ciagle rozwijana,  spedzilem pry niej troche czasu i musze powiedziec ze jest bardzo fajnie zrobiona, jest w niej duzo rzeczy ktorych nie znajdziemy w innych mmorpgach, jesli macie problemy z instalacja to piszcie w tym poscie, opisze krok po kroku badz skieruje gdzie trzeba

W wurm online mam 6-7 fps (Sempron 2600, 1GB RAM) - a jakosc grafiki jest tam taka, ze powinno być ze 100fps...
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: shyha w Kwiecień 12, 2006, 09:55:26
hehehe :)
Ja tam póki co w Javie nie widzę przyszłości na tym rynku (poza użyciem a'la Chrome). Z punktu widzenia użytkownika różnych Java'owych programów (głównie produkty Oracle'a) uważam, że Java wogóle do desktopów się nie nadaje (nie widzę żadnej zalety poza przenośnością). Może się to zmieni, ale póki co mam takie zdanie jakie mam.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: agent_J w Kwiecień 12, 2006, 10:41:30
hehehe :)
Ja tam póki co w Javie nie widzę przyszłości na tym rynku (poza użyciem a'la Chrome). Z punktu widzenia użytkownika różnych Java'owych programów (głównie produkty Oracle'a) uważam, że Java wogóle do desktopów się nie nadaje (nie widzę żadnej zalety poza przenośnością). Może się to zmieni, ale póki co mam takie zdanie jakie mam.

Jest taki cytat na bashu, że mówienie, że java jest dobra bo działa na wielu platformach jest jak mówienie, że seks analny jest dobry, bo działa na obie płcie :)
BTW: Może wydajność Chrome'a by wzrosła, jakby gcj skompilowali kod javowy zamiast javac.

shyha: chyba dobrze wiesz, że instnieje nie tylko rynek "dla mas" :)

Z dobrych programów w javie to widziałem tylko Eclipse, Java One Studio, jedit. W Chrome się u mnie nie da nawet grać (proc. Athlon XP 1.9GHz, 512MB RAM, grafika SiS740/64MB), bo idzie 2SPF ;d

Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Goliatus w Kwiecień 18, 2006, 03:27:48
Składnia języka nie oszałamia, a jej prostota wywołuje u mnie uczucie zatrzymania się w rozwoju. Opanowanie wszystkiego pod względem wydajności jest równie trudne i ciekawe jak napisanie samej gry. Pomimo tego, że się zna konfigurację sprzętu, można mieć z tym kłopoty, a co dopiero, gdy konfiguracja desktopa jest pod każdym względem nieokreślona :o
Cokolwiek by się w Javie nie napisało to zawsze zachodzi pewna zależność: im większa rzecz tym większe kłopoty. Praktycznie zero plusów.

Jedyne co mnie trzyma przy Javie to to, że ktoś postanowił zrealizować w niej swój pomysł na narzędzie, którego ja teraz intensywnie używam(nie do gier). Gdyby jednak było jakieś ciekawe narzędzie pomocne w tworzeniu gry i wymagające użycia Javy to wtedy jako o platformie do pisania gier bym pomyślał pozytywnie.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kwisatz w Maj 24, 2006, 21:35:39
Ciekaw jestem osiagow sensownie napisanej grafiki w Javie, rozpocząłem pisanie jednego projektu gry w Javie. Obliczenia numeryczne nie stoją tak źle. Z materiałów jakie są na sieci podają że w stosunku do C++ czy Fortrana straata na Widowsie jest rzędu 30%, na linuksach mniejsza , około 5-10%.
To co jest dobre w Javie to przyjemne biblioteki no i uniwersalnośc. Nie bez znaczenia jest tez banalna implementacja wielowątkowości. W pracy przerabiam programami javowskimi spore ilości danych i musze przyzna że wygodnie się to programuje i działa szybko.
Biblioteki RMI dla interfejsu sieciowego, JDBC i i nne pozwalają szybko coś zmontowac.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Maj 24, 2006, 22:27:14
Raczej niewielu znajdziesz tu sympatykow javy.  Ja osobiscie pisze sobie swoje gry w javie i jakos zyje;) jak dla mnie to pisz w czym chcesz, wazne by projekt skonczyc :), jesli chodzi o szybkosc javy to ogolnie przyjety dogmat ze jest wolna jest pozostaloscia myslenia z poprzedniej epoki;), pewnie ze nie jest tak szybka jak natywne aplikacje ale jestem na 99% pewny ze do twojego projektu jest spokojnie wystarczajaca :)
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: macabre13 w Maj 25, 2006, 11:59:03
Java jest (wg. mnie oczywiscie) dobry narzedziem do robienia szybkich i prostych innych narzedzi. Natomiast do gier nie sadze zeby sie to ustrojstwo nadawalo. Chyba za maja byc to proste i szybkie gry, takie jakie mozna znalezc na komorkach. Nie sadze aby java miala szanse przejac lub w ogole zagrozic c/c++ na rynku profesjonalnych gier.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Maj 25, 2006, 17:39:29
Ustrojstwo? hmm.. kwestia gustu. Java to po prostu narzędzie tak jak C# czy C++, prawdę mówiąc jedyny problem z java jaki widze to fakt że trzeba powalczyć by ją uruchomić gdyż zamiast exe mamy jar (choć temu można łatwo zaradzić prostym programikiem typu exe4java), oraz to, że wymaga zainstalowania jre.

Znam c++, jave oraz c# i w moim osobistym przeświadczeniu (nie wszyscy musza sie zgadzać z nim)  c++ zostanie wyparty przez te języki(bądź nowsze) z biegiem czasu, pozostanie używany pewnie tylko do pisania częsci jądra w systemach operacyjnych bądź aplikacjach które naprawdę potrzebują szybkości. Spójrzmy na takiego C#, dużo łatwiej i szybciej się w nim tworzy aplikacje czy gry, a sama szybkość jego działania jest prawie jednakowa z C++, Microsoft stawia na ten język jako język przyszłościowych aplikacji na platforme windows. Czemu więc nie powstaje masa programów w C#? Wydaje mi się, że główną przeszkodą jest właśnie wymaganie zainstalowanej dot net na komputerze, bez którego aplikacja nie chce działąć.  Jednakże przypominam że mówimy o wyparciu C++ w przyszłości a nie teraz, a wieć przenieśmy się do czasów gdzie windows Vista(który będzie odrazu z .Net) będzie mniej wiecej w stadium jak teraz Windows 98 czy 2000. I co? I już nie ma problemu istnienia frameworka bo jeśli ktoś go nie ma to znaczy, że tkwi w epoce za murzynami.. Przy okazji prędkość procesorów CPU jak i GPU oraz ilość ramu w PC,wzrośnie więc też nikt nie będzie się przejmować tym że C# jest ciut wolniejszy..

Z javą jest podobnie, co prawda nie ma co liczyć, że Microsoft będzie ją dołączać do swojego windowsa, ale prawde mówiąc nie jest to aż taki problem, w sumie windows jest jedyną platformą która nie ma odrazu javy. Jeśli spojrzeć na mac'a to java jest tak połączona z OSem, że użytkownik nie ma pojęcia czy program jest w java czy nie, odpala się tak samo, chodzi tak samo szybko, a jeśli użyjemi swt zamiast swinga to nawet wygląda tak samo jak natywna aplikacja. Co więcej już teraz instalując nowego OS X'a mamy odrazu zainstalowany jre nie wiedząc nawet o tym. W linuxie dystrybucje typu suse czy mandriva tez odrazu instaluja jave, moze nie jest tak zintegrowana jak w macu ale jeden skrypcik czy programik odpalajacy i wio..
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: MadMax w Maj 25, 2006, 17:51:41
Witam

Java moze i nadaje sie do gier, ale tak jak mowili przedmowcy niezbyt rewelacynjych - (anyway) osobiscie nie bardzo za nia przepadam.

Jako ciekawostke dodam, ze jesli ktos chcialby programowac gierki w jave na telefon, a bardziej lubi pascala niz jave to polecam MidletPascal :

http://www.midletpascal.com

Pozdrawiam,
MadMax
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: fremen w Maj 28, 2006, 20:33:48
imho java to przyszlosc jezeli chodzi o _rts online_. poki co w tej tematyce zarowno actionscript jak .net czy ajax nie maja szans dogonic jave w tej dziedzinie. jak swiatlo dzienne ujrzy dajmy na to taki broodwar 100% online i free to ludzie zaczna bardziej laskawym okiem na to patrzec.


Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil Trzciński w Maj 28, 2006, 21:46:43
ostatnio widzialem jakas giere mmorpg napisana w javie z uzyciem 3d, uruchomilem ja na moim kompie (turion 1.8, 512 ramu, x700 128MB mobilny) chodzilo tak srednio 5-6fps, co nie jest imo zbyt dobrym wynikiem... wszystkie inne giery napisane w C/C++ chodza bardzo plynnie i przypyszczam ze tak tez by bylo w tym wypadku, jesli ta gra by zostala napisana w C/C++, a nawet C#, poniewaz oprawa wizualna nie jest powalajaca...
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Maj 29, 2006, 01:52:38
Zalerzy czego ona uzywala do tego 3D.. wczesne wersjie JOGL'a mialy niekiedy problemy z rozpoznawaniem poprawnie sprzetu, poza tym zalerzy tez jak byla napisana, nawet w c++ da sie sworzyc cos co wyglada badziewnie i ma 5-6 fps
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: macabre13 w Maj 29, 2006, 10:16:56
OT?
Od siebie powiem, ze ludzie nabieraja zlych nawykow. Poniewaz wraz ze wzrostem szybkosci procesorow, pozwalaja sobie na pisanie coraz wolniejszych kodow, lub korzysatnie z wolniejszych rozwiazan, jezykow, etc. Przez takie rzeczy nie idziemy do przodu. Nic nie dzieje sie szybciej choc powinno, IMO cofamy sie. IMHO aplikacje staja sie jak wiekszosc amerykanow, czyli tlusta i powolna.
Przyklad? MS Office. Ten pakiet nie potrafi zrobic juz tylko herbaty, choc i tego nie jestem powien. Nie rozumiem, dlaczego pisze sie coraz wieksze pakiety, ktore laduja sie wszystkie. A uzywa sie z regulu 15-20%. Dlaczego uzywac sie javy skoro i tak aplikacja jest pisana na windowsa? ITD.
Java moze i bedzie platforma do pisania aplikacji czy gier, ALE (IMO) tylko tam gdzie nie bedzie mozna pisac w c/c++. Ale to tylko moje skromne zdanie.

Ps. Osobiscie do javy nie mam nic, przydatne ustrojstwo. :)
/OT?
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: shyha w Maj 29, 2006, 10:27:54
Zalerzy czego ona uzywala do tego 3D.. wczesne wersjie JOGL'a mialy niekiedy problemy z rozpoznawaniem poprawnie sprzetu, poza tym zalerzy tez jak byla napisana, nawet w c++ da sie sworzyc cos co wyglada badziewnie i ma 5-6 fps

ta, tylko, że w Javie nie trzeba się starać, żeby coś takiego osiągnąć ;)

co do Macabre13: Nikt ci nie każe ładować całego Office'a :P
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil Trzciński w Maj 29, 2006, 11:02:39
nawet zasoby ramu sa ograniczone (widac to na przykladzie chrome gdzie same jvm zajmowalo u mnie 100-200MB, imo to lekka przesada), dokladnie w javie masz z marszu kiepska wydajnosc, a nie lada wyczynem jest napisac wydajna giere...
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: snakeo w Październik 16, 2006, 01:48:42
natomiast w javie przy wykorzytaniu samego Java 2D "¶miga" :) - jak narazie to moge pochwalic sie tylko screenami na mojej stronie gdyz release ani dema jeszcze nie bedzie w sieci ;) -> robie levele, ktorych mam juz 16.
Ja bym nie pokazywal na twoim miejscu screenow z wszystkich leveli, przeciez po to sie gra w jakis level zeby zobaczyc jaki jest nastepny ;)
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Esidar w Październik 16, 2006, 19:42:41
imho java to przyszlosc jezeli chodzi o _rts online_

Czemu akurat "rts online" ? :) W innych gatunkach inne platformy są lepsze ? :) Jak rozumiem język Java się rozwinął w kierunku pisania aplikacji "rts online" i inni są daleko w tyle ? :)


MS Office. Ten pakiet nie potrafi zrobic juz tylko herbaty, choc i tego nie jestem powien. Nie rozumiem, dlaczego pisze sie coraz wieksze pakiety
Jeśli nowe funkcje MS Office 2007 są dla Ciebie niewygodne albo niepotrzebne używaj MS Office 2000. Problem z głowy

Co do samej Javy. W c++ brakuje wiele rzeczy, garbage collector, zarządzanie kodem i typami danych, skryptowanie itd. Używanie tych rzeczy to cecha współczesnego kodu, który powinien powstawać szybciej i z mniejszą ilością błędów. Typowy developer woli walczyć z problemami w grze, a z nie narzędziem którym się posługuje. Pytanie tylko czy Java jest do tego najlepsza. Do wyboru są przecież różne języki skryptowe typu Python albo LUA. Teraz jest też .NET. Ja wybrałem .NET gdyż przez 2-3 lata osiągnał więcej niż np. Java przez 15 lat (najlepiej się uczyć na czyichś błędach). To mi pozwala przypuszczać, że przez kolejne 2-3 lata zmieni się jeszcze bardziej.

Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: parmezan w Październik 20, 2006, 12:33:39
Teraz jest też .NET. Ja wybrałem .NET gdyż przez 2-3 lata osiągnał więcej niż np. Java przez 15 lat (najlepiej się uczyć na czyichś błędach). To mi pozwala przypuszczać, że przez kolejne 2-3 lata zmieni się jeszcze bardziej.
Specjalnym zwolennikiem javy nie jestem, ale:
<flame>
Słyszałeś o jakimś systemie klasy enterprise zrobionym w .net? Pewnie nie, bo ,,niet'' działa tylko na pewnym systemie biurkowym, przez co z biurka nigdy nie zlezie.
To taki lepszy VB.
</flame>
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: bies w Październik 20, 2006, 12:49:00
Co do samej Javy. W c++ brakuje wiele rzeczy, garbage collector, zarządzanie kodem i typami danych, skryptowanie itd. Używanie tych rzeczy to cecha współczesnego kodu, który powinien powstawać szybciej i z mniejszą ilością błędów. Typowy developer woli walczyć z problemami w grze, a z nie narzędziem którym się posługuje.

Bez żartów, spróbuj niedeterministycznym GC odłączyć połączenie od bazy albo zamknąć gniazdko. Akurat pamięć jest najmniejszym problemem. A jak koniecznie potrzebujesz GC (czyli tak naprawdę modelujesz graf) to w C++ znam przynajmniej 2 implementację (deterministyczną i nie). Choć trzeba przyznać, że są wolniejsze od tego w Javie. Poza tym spróbuj w Javie (nie wiem jak to będzie w C# czy Pythonie) zapewnić na etapie kompilacji że parametr funkcji lub jej wartość zwracana jest != null.

Chyba nigdy nie miałeś do czynienia z dobrym programem w C++ lub dużym programem w Javie. Typowy deweloper ma w Javie problemy na poziomie podstawowym (polecam pomyśleć nad odpowiednikiem const w Javie - da się, ale pomyśl jak to zrobić).

Co do skryptów: to już żarty, widziałeś może CppTcl, Boost.Python, luabind, SWIG.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Listopad 08, 2006, 17:35:54
snakeomeister widze ze odgrzewasz stare posty ;) Opinia wzieta pod uwage, moze czesc usune niebawem :).

Zalerzy czego ona uzywala do tego 3D.. wczesne wersjie JOGL'a mialy niekiedy problemy z rozpoznawaniem poprawnie sprzetu, poza tym zalerzy tez jak byla napisana, nawet w c++ da sie sworzyc cos co wyglada badziewnie i ma 5-6 fps
ta, tylko, &#191;e w Javie nie trzeba si&#234; stara&#230;, &#191;eby co&#182; takiego osi&#177;gn&#177;&#230; ;)

Nie zgodze sie z tym stwierdzeniem. Mam wrazenie ze takie opinie wydaja ludzie, ktorzy nic tak naprawde nie robili w javie, by chociaz sprawdzic jak ona dziala. Jasne, jesli robiles gre 2D przy uzyciu api Java 2D to nie problem dojsc do takich szybkosci jak 5-6fps, tyle ze to api to taki javowy odpowiednik windowsowego gdi(choc i tak uwazam ze szybszy ciutke), sproboj napisac cos w czystym gdi, ciekawe czy bedzie szlo jak burza.. Tak na marginesie od wersji java 1.6, Java 2D ma wewnetrzenie  uzywac opengl.

Piszac gry w C/C++ czy jakimkolwiek innym jezyku, glowym miejscem ktory "zjada" fpsy to grafika, dlatego tez uzywa sie bibliotek zapewniajacych akceleracje sprzetowa, opengl czy tez directx. Java tak samo jak c/c++ ma mozliwosc dobrania sie do api tych bibliotek (choc glownie uzywany jest opengl gdyz uzywanie directx na platformie przenosniej mija sie z celem) i zapewniam ze szybkosc dzialania takiej aplikacji jest dla przecietnego programisty w zupelnosci wystarczajaca. Jest nawet silnik (w tej chwili darmowy) storzony przez Disneya i uzywany w jakiejs komercyjnych gierkach, napisany w Pythonie (Python jest wolniejszy od Java). Dziala to z zupenie przyzwoita predkoscia. Co do opengl w javie to radze np zerknac na http://jmonkeyengine.com  http://www.jpct.net  http://www.lwjgl.org  oraz http://www.tribaltrouble.com  i  http://technopolies.net

Java jak dla mnie bije c++ pod wzgledem dostepnosci narzedzi dla programisty. C++ moze w wersji darmowej poszczycic sie Visualem Expresem (ktory jest dosc ekh..toporny, nawet komunikaty o bledach kompilacji wyswietla dosc nieczytelnie w porownaniu z platna wersja), badz tez Code:Blocks ktory odpowiada funkcjonalnoscia mniejwiecej Visualowi 6.0. Javowe narzedzia jak Netbeans czy Eclipse (oba darmowe), bija  na glowe te dostepne w przypadku C++.


Dlaczego uzywac sie javy skoro i tak aplikacja jest pisana na windowsa?
Jesli piszesz tylko pod windows to albo jestes hobbista ktory tworzy gry dla siebie i znajomych albo jestes czlonkiem jakiegos studia ktore tworzy tytuly klasy AAA (choc i te w pewnym momecie portuje sie na inne systemy). Natomiast jesli jestes indiedeveloperem, ktory proboje sam cos zarobic to pomijanie Maca, to jakby samemu sobie strzelanie w plecy gdyz jak ogladam dane ze sprzedarzy to ta sama gra czesto lepiej sie sprzedaje na macach niz windowsach.

1 . Bez &#191;artów, spróbuj niedeterministycznym GC od&#179;&#177;czy&#230; po&#179;&#177;czenie od bazy albo zamkn&#177;&#230; gniazdko.[..]
2 . Poza tym spróbuj w Javie (nie wiem jak to b&#234;dzie w C# czy Pythonie) zapewni&#230; na etapie kompilacji &#191;e parametr funkcji lub jej warto&#182;&#230; zwracana jest != null.
3 .Typowy deweloper ma w Javie problemy na poziomie podstawowym (polecam pomy&#182;le&#230; nad odpowiednikiem const w Javie - da si&#234;, ale pomy&#182;l jak to zrobi&#230;).

Co do skryptów: to ju&#191; &#191;arty, widzia&#179;e&#182; mo&#191;e CppTcl, Boost.Python, luabind, SWIG.

1. Jakos java w aplikacjach enterprisowych dziala glownie na bazach danych roznych typow (lokalnych, sieciowych, rozproszonych) i nie ma problemu z polaczeniem czy rozlaczeniem sie z baza. Jesli chodzi o sockety to java ma dosc przyjemne api i jakos nigdy nie mialem problemow z zamknieciem gniazdka.. Masz racje w przypadku gdyby ktos umieszczal kod zamykajacy socket w "destruktorze", ale tak naprawde te problemy ktore teraz wymieniles sa czysto filozoficzno/akademickie. W paktyce jak chcesz sie rozlaczyc z baza danych czy tez zamknac gniazdko to poprostu wywolujesz odpowiednia funkcje close i tyle..

2. Elipse potrafi przed kompilacja (parsowanie wewnetrzne) powiedziec ci ze : a) nigdy nie uzywasz pewnych zmiennych, nigdy nie wyolujesz funkcji prywatnych danej klasy, masz partie kodu do ktorego program nigdy nie wejdzie.
 Sama java potrafi w momecie kompilacji powiedziec ze probujesz odczytac wartosc ze zmiennej, ktora wczesniej nie byla zainicjalizowana jakas wartoscia.

3. poszukaj slowa kluczowego "final"

Jezyki skryptowe czeto takze maja bindingi do javy (napewno python ma).



Wiem, ze lubie jave i dlatego w moich postach ja bronie. Ale tak prawde mowiac moim zdaniem jezyk c++ za kilka/kilkanascie lat przestanie byc wiadacym w grach. Popatrzcie na gigantyczne produkcje pokroju obliviona, ktore powstaja coraz dluzej przy czym maja tez coraz wiecej bugow. W pewnym momecie developerzy zaczna sie rozgladac za jezykiem(narzedziem), ktore pozwoli zwiekrzyc ich produktywnosc oraz bedzie patrzec im na rece i w jak najwczesniejszym stadium eliminowac typowe bledy. I nie upieram sie, ze tym jezykiem ktory zastapi c++ bedzie java, moze bedzie to jeszcze jakis inny jezyk np c# (juz teraz mozna programowac xboxa w c#) lub cos co stworza dopiero w przyszlosci, ale to sie napewno stanie. Takie jest moje zdanie.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: bies w Listopad 08, 2006, 18:27:57
1. Jakos java w aplikacjach enterprisowych dziala glownie na bazach danych roznych typow (lokalnych, sieciowych, rozproszonych) i nie ma problemu z polaczeniem czy rozlaczeniem sie z baza. Jesli chodzi o sockety to java ma dosc przyjemne api i jakos nigdy nie mialem problemow z zamknieciem gniazdka.. Masz racje w przypadku gdyby ktos umieszczal kod zamykajacy socket w "destruktorze", ale tak naprawde te problemy ktore teraz wymieniles sa czysto filozoficzno/akademickie. W paktyce jak chcesz sie rozlaczyc z baza danych czy tez zamknac gniazdko to poprostu wywolujesz odpowiednia funkcje close i tyle..
W praktyce to wygląda tak: wiem, że muszę zamknąć połączenie w Javie. Jeśli tego nie zrobię przy dużym obciążeniu aplikacja zacznie padać. Ponieważ język jest nieudolny w zapewnieniu, że pewniej kod wykona się zawsze (trzeba go ręcznie napisać w sekcji final) w metodach interfejsu dostępu do bazy robię logowanie par połączenie/odłączenie. Następnie robie testy pokrycia i sprawdzam osobnym narzędziem, czy są wszystkie pary. I nie ma znaczenia, że edytor lub IDE ma specjalny przycisk do wygenerowania ,,dispose pattern'' - erre humanum.

2. Elipse potrafi przed kompilacja (parsowanie wewnetrzne) powiedziec ci ze : a) nigdy nie uzywasz pewnych zmiennych, nigdy nie wyolujesz funkcji prywatnych danej klasy, masz partie kodu do ktorego program nigdy nie wejdzie.
 Sama java potrafi w momecie kompilacji powiedziec ze probujesz odczytac wartosc ze zmiennej, ktora wczesniej nie byla zainicjalizowana jakas wartoscia.
I choćby zwołał tysiąc atletów
i każdy zjadłby tysiąc kotletów.
I choćby nie wiem jak się natężał,
to nie zagwarantuje, że parametr funkcji nie jest null.
I albo wierzysz zapewnieniom dokumentacji (i szukasz NullPointerException w logach) albo piszesz tysiące sprawdzeń (asercji).

3. poszukaj slowa kluczowego "final"
A Ty książek nt. Javy i C++. Thinking in ... wystarczy. Albo poczytaj sobie w [1] lub poszukaj tematów na plclc.

[1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4211070
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Kamil w Listopad 08, 2006, 18:57:13
Czyli widzisz, const w javie jest, tylko jego funkcjonalnosc w pewnych przypadkach jest inna.

Co do zwracania nulla, czy moglbys w takim razie zademonstrowac mi jak to sie sprawdza na poziomie kompilacji w c? tak z ciekawosci, przynajmniej sie czegos naucze.

OK co do pierwszego to tak z ciekawosci pytam, nie by atakowac czy cos. Jesli jestes w sytuacji jak mowisz ze wiesz ze musisz zamknac polaczenie, to nie mozna poprostu wywolac funkcje ktora to polaczenie zamknie? Z tego co rozumiem to rozwiazanie o ktorym mowisz bazuje na pomysle zamykania polaczenia w momecie usuwania obiektu polaczenia z pamieci. Czemu nie mozna wywolac funkcji zamykajacej przed samym zniszczeniem obiektu?  Edit : Przyjrzalem sie dispose pattern i juz rozumiem o co Ci chodzi. Faktycznie masz racje, java w tych sytuacjach wymaga wiecej pisania. Jednakze nadal nie rozumiem czemu stosowac manewr z porownywaniem logow zamiast poprostu zamykac konkretne polaczenie recznie.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: Esidar w Listopad 08, 2006, 19:18:02
Wiem, ze lubie jave i dlatego w moich postach ja bronie. Ale tak prawde mowiac moim zdaniem jezyk c++ za kilka/kilkanascie lat przestanie byc wiadacym w grach.

Dokładnie. I nawet nie chodzi tutaj o zmianę języka programowania np. z c++ na javę. Dużo większy wpływ będzie widoczny od strony platformy .NET. Platforma .NET ma tą przewagę nad konkurencją (Java i Native C++), że można w niej pisać w C++, C#, J#, IronPython, VB i praktycznie w dowolnym innym języku. I to co się będzie liczyć to support narzędzi (.NET przewyższa native c++ pod tym względem) oraz łatwość i szybkość pisania kodu.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: bies w Listopad 08, 2006, 19:23:06
Const w Javie jest jako słowo zarezerwowane, a final odpowiada tylko stałemu wskaźnikowi z C++.

 Co do zagwarantowania że nie zwrócimy NULL w C++: SomeClass foo() {...}
Zawsze musi zwrócić obiekt typu SomeClass (pomijam tu sztuczki z rzutowaniem bo rzutowanie można wyłączyć na etapie kompilacji, i jest to zazwyczaj dobry pomysł).

Nie zrozumiałeś, kod zamykający piszę ręcznie (myDatabaseConnection.close()) ale sprawdzanie logów służy mi do upewnienia się (na etapie testów) czy nigdzie nie zapomniałem wywołać zamknięcia (albo bardziej nietrywialny przypadek, że na pewno nie przeleci mi przez funkcję jakiś wyjątek i close() nie zostanie wykonane). W C++ nie muszę pamiętać - kompilator to za mnie zrobi. W C# do pewnego stopnia również (patrz using) - i to mnie cieszy ponieważ C# mocno stymuluje Suna do rozwoju Javy.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: unodgs w Listopad 09, 2006, 10:08:50
Co by nie mowic o Javie i C#, ze latwiej sie programuje, sa nowoczesniejsze, to ja osobiscie nie lubie aplikacji napisanych w tych jezykach - jakichkolwiek, czy to gier czy programow uzytkowych, bo niezaleznie od wersji wirtualnej maszyny (a przeciez kazda nastepna jest super szybsza niz poprzednia ;) ) odpalaja sie niemilosiernie dlugo (jak dla mnie) i wloka (w inerakcji uzytkownik/interfejs prawie zawsze odczuwalne jest opoznienie).
Ktos tu pisal tez ze w duzych projektach przy uzyciu tych jezykow robi sie mniej bugow. Nieprawda. Ilosc bugow zalezy wlasnie od stopnia skomplikowania projektu a nie uzytego jezyka. Oczywiscie nie mam na mysli porownania kodu C++ z czystm winapi i np kodu c# z winformsami. W takich projektach ludzie uzywaja sprawdzone biblioteki takie jak qt, boost, etc.
Tytuł: Odp: Co myslicie o Java jako platformie do pisania gier?
Wiadomość wysłana przez: ronin w Listopad 18, 2006, 19:41:20
Języki takie jak Java czy C#, albo może lepiej powiedzieć platformy JVM czy .NET wyprą np. C++ w zastosowaniach biznesowych (gry się chyba do tego zaliczają). Dzisiaj projekty stają się coraz bardziej skomplikowana, mają bardziej wymyślne interfejsy itd. przez co potrzeba znacznie więcej czasu i pieniędzy na ich wytworzenie. Wydaje mi się, że producentom bardziej się opłaca zainwestować w nową platformę, w której masę rzeczy robią za nas narzędzia niż pisać w C++. Java jest na lepszej pozycji bo niej bardzo dobre narzędzia są za darmo, a teraz jeszcze została otwarta, więc zacznie się prężniej rozwijać.

A inna sprawa, ma być chyba nowy standard C++, ciekawe jak to wpłynie na sytuację na rynku oprogramowania?