Silnik gry działa bardzo dobrze :smiley: 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 :grinning:
Na ten moment zużycie zasobów całej aplikacji wygląda tak:
Zużycie zasobów Coconut Game Stack:
Główne komponenty gry:
:video_game: Game Server 0,63% CPU 401 MB eclipse-temurin:17-jdkJava Spring Boot + JNI Engine
:atom_symbol: Client0,20% CPU 84 MB node:18-slimReact + Vite dev server
Monitoring (opcjonalny):
:bar_chart: Grafana 0,68% CPU 209 MB
:bar_chart: PODSUMOWANIE:
Minimalna konfiguracja (tylko gra):
* CPU: ~0,8% (server + client)
* RAM: ~485 MB (401 + 84 MB)
Pełna konfiguracja (z monitoringiem):
* CPU: ~1,5%
* RAM: ~733 MB (401 + 84 + 209 + 36 + 3 MB)
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