Czy na samej Javie można zrobić dobrą gierkę?

0

Czy na samej Javie można zrobić gierkę dorównującą np.Need For Speedowi lub Counter-Strikeowi czy Klondike: http://online.freeware.info.pl/klondike.html ?
Jak się do tego zabrać?Prosiłbym o podanie mi jakiś przykładowych gierek w miarę skomplikowanych graficznie w Javie abym mógł przejrzeć kod.

4

Największym problemem w tym przypadku jest konieczność przebijania się prze JNI - tzn kod Javowy musi wywoływać kod natywny ze sterowników OpenGL. To stwarza problemy, np nie można przekazywać referencji bezpośrednio do OpenGLa, bez zatrzymywania Garbage Collectora, albo bez używania buforów bezpośrednich (java.nio.Buffer.allocateDirect). Dlatego, aby zrobić wydajny silnik trzeba przenosić jak najwięcej danych i operacji na GPU albo przynajmniej zredukować do minimum ilość operacji i danych wymienianych pomiędzy OpenGL, a aplikacją.

Polecam zapoznanie się z najnowszymi wersjami OpenGL i OpenCL (w chwili obecnej to OpenGL 4.1 i OpenCL 1.1). Oferują bardzo dużo sposobów na przeprowadzanie obliczeń na GPU.

Bindingi do Javy to np: jogamp.org czy lwjgl.org, gotowy silnik Javowy to np: jmonkeyengine.com Na tych stronach znajdziesz też przykłady różnych gier stworzonych z użyciem tych bibliotek/ frameworków.

Jeśli jeszcze nie programowałeś w OpenGL to powiem ci, że jest on totalnie nieobiektowy, a przez to toporny w użyciu. Przygotuj się na sporą ilość walki z głupimi błędami. OpenGL lubi cicho ignorować błędy czy niekompletne dane. Dlatego czasem niby wszystko działa, ale źle i ciężko znaleźć przyczynę błędu.

Warto dodać, że Android posiada obsługę OpenGL ES z poziomu Javy.

1

Minecraft :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1