
Wpis użytkownika DexterFromLab w Hydepark
DexterFromLabGruba ryba
31piorunówSilnik 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
Komentarze (14)
fajnie to wygląda, niezła robota.
@Fausto nie za bardzo. Takie gry przeważnie nie zarabiają. Jak bym miał 1000 aktywnych graczy to może z 200 zł dostanę na miesiac. Raczej otworze to jako open source i spróbuję dodać do repo Ubuntu. Wtedy będę miał wpis do portfolio poważny. I będę robił jakieś scenariusze do gry hobbystycznie jak ludzie będą grali.
@DexterFromLab masz zamiar to jakoś zmonetyzować w przyszłości, czy dla samego fanu to piszesz?
@Fausto no napisanie silnika gry to jednak jest roboty dużo. Żona mówi że jestem uzależniony xD muszę chyba zrobić od tego przerwę.
Nie znam się ale czy dla RPi te 700mb to jakoś sporo się wydaje?
@owczareknietrzymryjski są różne usługi. Zazwyczaj mocno zasobożerne. Co tam byś chciał, nie wiem immich, może coś do hostowania video? Jellyfin? Słabo z ramem. Raczej bym polecał jakiś używany terminal od della albo HP. Można za 100 zł wychaczyć fajne sprzęty dużo mocniejsze niz rpi z mniejszym poborem mocy.
@DexterFromLab kontenery nie z cli? wtf
@owczareknietrzymryjski no nie wiem? Żeby odpalać kontenery? :grinning:
@DexterFromLab najtańszą bo cebula motzna. Bez gui działa całkiem ok. Po co gui na malinie która jest serwerem
@owczareknietrzymryjski wziąłeś najniższą wersję to teraz tak masz. Poszło by z bólem. Trzeba by swapa zrobić i wtedy by się zmieściło na Ubuntu server. Ale jak bym wylączyl statystyki serwera to by śmigało. Bo grafana trochę obciąża system.
@DexterFromLab moje rpi5 ma 1gb ramu :<
@kodyak rpi 5 ma 8 GB ramu. Spokojnie pójdzie nawet na dużo starszych wersjach.
@DexterFromLab widzę liquid glass. ;d
@Deykun nie zmyślam. Tak mi wyszło. Potem będę eksperymentował z większymi mapami. Ale obciążenie procesora będzie zależało od ilości graczy. Bo gracze generują chunki i ruchu mobów. To tak na prawdę zjada zasoby. Mapa to tylko ram. No i całość silnika to C++ to już nawet jak bym to napisał w asemblerze to by mi niewiele dało 😛