Autor Wątek: Wersja 1.0 Java Monkey Engine już dostępna.  (Przeczytany 9095 razy)

Offline Netrick

  • Użytkownik

# Październik 24, 2007, 19:36:47
Niemożliwe jest pisanie  osów w c czy c hash. Trzeba użyć assemblera. Przynajmniej do napisania podstawowego kernela. Kiedyś siedziałem w os dev i wiem trochę co i jak.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline vashpan

  • Użytkownik
    • Strona

# Październik 24, 2007, 19:55:15
Ja tez troszke sie interesuje :) Akurat C to jezyk wprost napisany dawno temu po to by tworzyc systemy operacyjne ( wowczas - pierwszego Uniksa )... Assembler jest uzywany przeciez tylko do naprawde niskopoziomowych rzeczy jak obsluga przerwan, czy ustawienie tablicy deskryptorow, wlaczenie trybu chronionego i pare innych pierdol i tak naprawde wystarczy kilka malych plikow assemblera i inline assmebler w C. Malo ktore jadro jest napisane w czystym assemblerze, nie ma to sensu :) Zarowno ntoskrnl jak i jadro linuksa napisane sa w 95% w C. Jezeli siedziales w tym, to tym dziwne ze o tym nie wiesz.

Owszem, slyszalem o Singularity :) Ba, jest to interesujacy projekt. Jednakze scisle rzecz biorac nie jest to C# ktorego znamy ( czyli maszyna wirtualna, caly ten runtime etc ), a pochodny od niego jezyk Sing# ( baaardzo podobny ), poza tym czesc rzeczy napisano w C, czesc w C++ ( bodajze framework do pisania sterownikow ), a te najbardziej niskopoziomowe rowniez w Assemblerze. Glowna rzecza na jakiej tutaj bazuje Microsoft to pelny kompilator C# - o kodowej nazwie Bartok, ktory kompiluje jadro z CIL'a do kodu maszynowego podczas instalacji.

Java nie moze byc szybsza od skompilowanego kodu, chociazby z tego powodu ze cos co ja wykonuje sama jest skompilowanym kodem jezyka C :D. A nie wierze jednak niewielkim testom malych programikow. JIT kompiluje je zapewne od razu i wowczas rzeczywiscie taki zoptymalizowany kod ( juz maszynowy ) moze byc szybszy niz to co wyjdzie z kompilatora standardowego. W ogole uwazam ze programy powinny byc dystrybuuowane wlasnie w takiej formie i kompilowane nie w czasie dzialania, ale podczas instalacji, cos jak gentoo linux :D Ale z kodu przejsciowego aby oszczedzic czas. Byc moze to jest wlasnie przyszlosc. Nie wiem akurat jak w .net to wyglada, ale chyba daje sie skompilowac cil'a od razu, istnieje nawet takie narzedzie ?

Ale odeszlismy od tematu :/

Offline kamykadze

  • Użytkownik

# Październik 24, 2007, 20:54:58
JIT jest od dawna bardzo sprytny. Np.jeśli ma kod w pętli, to interpretuje tylko pierwszą iterację bytecodu, potem jedzie skompilowanym w czasie pierwszego obiegu kodem. Przy dalszych obiegach nie ma już zatem mowy o narzutach. W grach w zasadzie mamy do czynienia z nieustannie powtarzaną pętlą update()/render(), więc kto wie, może i tutaj dałoby się sporo nadrobić. ;)

Komu to nie wystarcza, może się zainteresować kompilatorami javy bezpośrednio do kodu natywnego. Tracimy przenośność, ale olewamy JVM. Choć nie spotkałem nikogo , kto by w ten sposób jeszcze świrował ;)

A tutaj benchmark, z którego wynika, że nawet bez trików, na zwykłej sunowskiej VM, java może być szybsza od c++ :
http://www.kano.net/javabench/ . W dodatku test stary, dotyczący javy 1.4, dwie kolejne wersje tego języka ponoć jeszcze mocniej przyspieszyły :)



Offline MDW

  • Użytkownik
    • www.encore-games.com

# Październik 24, 2007, 21:37:52
A tutaj benchmark, z którego wynika, że nawet bez trików, na zwykłej sunowskiej VM, java może być szybsza od c++ :
http://www.kano.net/javabench/ . W dodatku test stary, dotyczący javy 1.4, dwie kolejne wersje tego języka ponoć jeszcze mocniej przyspieszyły :)

Benchmarki zawsze pokazują to co chce ich autor. Tak było zawsze. :) I oczywiście wyniki wszystkich testów są prawdziwe. Nie ma mowy o fałszerstwie! :)

A wracając do tematu... Skoro Java jest tak wymiatająco szybka to dlaczego programy w Java2 Micro Edition wyciągają ok. 20% możliwości telefonu? Taki sam program na tym samym telefonie ale napisany w C++ pod SymbianOS czy BREW jest spokojnie 5 razy szybszy. Wiem to z własnego doświadczenia. J2ME jest po prostu żałosne i potrafi zdołować każdy telefon. Natywność to natywność i nawet JIT tu za wiele nie pomoże. Przez tego JITa w Nokii 6630 trzeba robić tricki, bo gra zaraz po uruchomieniu nie nadaje się do grania. Musi sobie wszystko "przemielić" żeby to w ogóle zaczęło jakoś chodzić z 20% grywalnej prędkości. Ja nie wiem kto wymyślił pisanie gier na telefony w Javie. :)

Offline kamykadze

  • Użytkownik

# Październik 25, 2007, 13:16:30
Ale my tu mówimy o grach na PC. Jak nie lubisz Javy, to w niej nie programuj i nie będzie problemu. Nie mam zamiaru nikogo zmuszać.

Offline eMul

  • Użytkownik

# Październik 25, 2007, 18:07:48
Mi się ten silnik podoba przede wszystkim dlatego, że jest w Javie. Jest to mój ulubiony język. Ale nie ma co się dziwić, że wszyscy tu psioczą, skoro to wyznawcy jedynego wielkiego języka... Ja znam C++ dobrze (od niego zaczynałem programowanie aplikacji) i widze, że ten język jest przestarzały i pisze się w nim dużo dłużej. Zresztą był już o tym temat na gamedevie, że Warsztatowcy wolą jezyki z "C" w nazwie. Na XNA nikt tak nie marudzi, jak na silniki graficzne w Javie...

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Październik 26, 2007, 14:16:43
Ale my tu mówimy o grach na PC. Jak nie lubisz Javy, to w niej nie programuj i nie będzie problemu. Nie mam zamiaru nikogo zmuszać.

Ale ja przecież Javę lubię. Jest wygodna. Ale jej ślamazarność jest nie do przyjęcia w grach. W programie liczącym wysokość podatu z danej sumy nie ma znaczenia czy wynik otrzyma się za 0.01 sekundy czy 0.001 sekundy. No ale w grze to ma kolosalne znaczenie. :)

A co do zmuszania... Niestety jestem zmuszany do robienia gier w Javie. Rynek, zleceniodawcy, pracodawcy...

Ja oczywiście mam na myśli gry na urządzenia, które nie mają akceleratora 3D. Gdyby je miały i gry go wykorzystywały to Java zapewne nie odstawałaby tak strasznie od C/C++. No ale niestety nie mają i ogromną przepaść prędkościową widać na każdym kroku.

Offline kamykadze

  • Użytkownik

# Październik 26, 2007, 16:02:11
Odkąd zobaczyłem Gothica III, to przekonałem się, że twórcy gierek aż tak bardzo się wydajnością nie zajmują ;)

Ale nie ważne, gdybanie na temat przyszłości gier w javie jest tylko gdybaniem, a dyskusje na temat jej szybkości zawsze prowadzą do kolejnej świętej wojny w stylu Linux-vs-Windows lub PO-vs-PiS , w której obie strony nie mają zamiaru wierzyć sobie na wzajem. ;)

Dlatego potraktujmy sobie ten temat informacyjnie - jest porządny silnik w javie, kto chce tworzyć solidne gry w tym języku, ma ku temu okazję. Kto traktuje javę jako ślamazarę, niech sobie nie zawraca głowy ;)

Może takie małe pytanie - czy ktoś z Was ma większe doświadczenie w jMonkeyEngine? Ja bawię się nim od niedawna i w sposób mało energiczny, więc chętnie usłyszałbym opinie, sugestie, wskazówki od kogoś bardziej doświadczonego :)

Offline novo

  • Użytkownik
    • my devblog

# Październik 26, 2007, 16:33:29
Calkiem fajnie sie zlozylo ze akurat teraz to wyszlo, bo mam w tym semestrze jave i dogadalem sie z typem ze moge pisac gierke na zaliczenie :) Na razie sie jeszcze nie przygladalem, bo mam teraz kilka egzaminow na glowie i nie mam na to czasu, ale pewnie niedlugo do tego przysiade :)

Offline Micz

  • Użytkownik

# Listopad 05, 2007, 23:35:32
Witam,
to mój pierwszy post na tym forum. Bawiłem się kiedys trochę tym silnikiem, i napisalem nawet coś w stylu gry :P. Niestety nie ma żadnego kompletnego tutoriala do jME :(. Mam w głowie pomysł na grę, ale najpierw musił bym się nauczyć obsługi tego silnika. jak by ktoś gdzieś znał jakiś ciekawy kompletny tutorial byłbym wdzięczny :) (coś jak flagrush na stronie jME, tylko skończone).

Offline kamykadze

  • Użytkownik

# Listopad 05, 2007, 23:49:29
Niestety, dokumentacja do jME jest słabiutka i nie ma na to rady. Silnik jest stosunkowo młody, społeczność niewielka (około 1600 osób na forum), jedyne tutoriale to te, co są na wiki.
Poza http://www.jmonkeyengine.com/ nie znajdziesz raczej nigdzie materiałów dotyczących tego silnika, przynajmniej nie na sensownym poziomie. Mam nadzieję, że wydanie wersji 1.0, co chyba należy traktować jako wyjście z fazy beta, zmotywuje twórców do pracy nad dokumentacją. Czy tak się stanie, zobaczymy.
Póki co radzę pytać na forum. Na każde pytania, nawet bardzo lolkowe, można uzyskać odpowiedź, społeczność jest dość pomocna.

Offline hubo

  • Użytkownik

# Listopad 06, 2007, 11:08:16
Po co porownywac slamazarne j2me z produktem opartym o biblioteke lwjgl. Piasanie w j2me gierek, czy nawet w j2se, przypomina dlubanie ich w GDI, a toz to przeciez takie natywne i wogole cacy niby, a jakos sie w tym gier nie pisze.

Offline kamykadze

  • Użytkownik

# Listopad 06, 2007, 19:47:15
Żeby nie było nieporozumień :
 - skrót JME rozumiem jako : Java Micro Edition,
 - skrót jME rozumiem jako : Java Monkey Engine.

Ten temat dotyczy tego drugiego, więc nie wiem po co z mobilną javą wyskoczyłeś, Hubo ;)

Offline hubo

  • Użytkownik

# Listopad 07, 2007, 10:30:10
Skoro nie pisales o j2me to widocznie nie odnosilem sie do Ciebie, to JME jest oparte wlasnie lwjgl, wiec jak gdyby bronilem Twojego punktu widzenia, nie kazdy na forum to Twoj wrog ;). Np MDW podawal przyklad j2me ma "crapowatosc" javy. Wiec z niczym nie wyskoczylem, poprostu watek jest poprzeplatany luznymi przemysleniami, to i ja swoje 3 grosze dorzucam. Mozna znalezc wiele przykladow na dyskredytacje technologii, a java cierpi na brak bibliotek do gier, dlatego ludzie korzystaja z tego co jest, a w standardzie nie ma praktycznie nic dobrego, ale JME jest naprawde rewelacyjna.

« Ostatnia zmiana: Listopad 07, 2007, 10:36:09 wysłana przez hubo »

Offline kamykadze

  • Użytkownik

# Listopad 07, 2007, 13:22:16
Offtop na temat Java Micro Edition skończyliśmy już w październiku po prostu ;)
A co do problemu skrótów -> chyba nie warto ich używać, bo różnią się tylko wielkością literki "j" i jak widzę, powodują zamieszanie ;)