Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

Wpis użytkownika DexterFromLab w Hydepark

Gruba ryba

w Hydepark

31piorunów

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

Komentarze (14)

Autorytet2piorunów

fajnie to wygląda, niezła robota.

Gruba ryba3piorunów

@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.

Autorytet1piorunów

@DexterFromLab masz zamiar to jakoś zmonetyzować w przyszłości, czy dla samego fanu to piszesz?

Gruba ryba3piorunów

@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ę.

Fanatyk1piorunów

Nie znam się ale czy dla RPi te 700mb to jakoś sporo się wydaje?

Gruba ryba0piorunów

@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.

Gruba ryba2piorunów

@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.

Gruba ryba4piorunów

@kodyak rpi 5 ma 8 GB ramu. Spokojnie pójdzie nawet na dużo starszych wersjach.

Lider1piorunów

@DexterFromLab widzę liquid glass. ;d

Gruba ryba0piorunów

@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 😛