Silnik gry działa bardzo dobrze Całość jest bardzo lekka – cały tick gry dla mapy 100 na 100 pól wykonuje się w 0,3 ms na moim 8-letnim laptopie. Silnik gry napisany jest w Javie, z rdzeniem w C++ dostępnym przez JNI. Mam na ten moment napisanych około 200 testów jednostkowych, 200 integracyjnych i około 100 E2E. Zajęło mi to trochę czasu, bo głównie skupiłem się na optymalizacji. Jeden kafelek to dokładnie 4 bity pamięci. Chodzi o to, żeby móc budować ogromne światy do eksploracji z wieloma lokacjami, a całość ma działać na RPI
Na ten moment zużycie zasobów całej aplikacji wygląda tak:
Zużycie zasobów Coconut Game Stack:
Główne komponenty gry:
Game Server 0,63% CPU 401 MB eclipse-temurin:17-jdkJava Spring Boot + JNI Engine
Client0,20% CPU 84 MB node:18-slimReact + Vite dev server
Monitoring (opcjonalny):
Grafana 0,68% CPU 209 MB
PODSUMOWANIE:
Minimalna konfiguracja (tylko gra):
Pełna konfiguracja (z monitoringiem):
Wydajność:
-
Game Server: Najbardziej zasobożerny (Java JVM + C++ engine)
-
Client: Lekki (tylko Vite dev server)
-
Monitoring: Średnio zasobożerny, ale opcjonalny
Na ten moment działa:
-
Multiplayer (wielu graczy)
-
Wiele mobów, AI
-
Poruszanie się, systemy kolizji i wiele typów terenu
-
Bardzo prosty interfejs graficzny z chatem (żeby mieć wizualizację)
-
Proste statystyki
Następnym razem udostępnię serwer – napisana jest już cała konfiguracja auto-deploymentu. Wystarczy wrzucić i uruchomić. Zrobię to w najbliższym czasie.
Później zajmę się rozwijaniem mechaniki gry, punktacją, rozwojem postaci :D
#chwalesie #programowanie