Napisałem grę przeglądarkową w C++ od zera bez silnika. Zajęło mi to 10 lat. Nie było absolutnie warto, ale zawsze mogłem w tym czasie scrollować Twittera ( ͡° ͜ʖ ͡°) Jak się logniecie Discordem, można grać z ludźmi rankedy jak w CSie i wbijać rangę rozwalając randomów.
No, to poopieprzajcie się na lekcjach i w pracy: https://hypersomnia.io
Jest oczywiście open-source.
Odpowiem na każde pytania dotyczące kodu!
No, to poopieprzajcie się na lekcjach i w pracy: https://hypersomnia.io
Jest oczywiście open-source.
Odpowiem na każde pytania dotyczące kodu!
https://hypersomnia.io
#gamedev #programowanie #hypersomnia #opensource
Wystarczy lognąć się Discordem. Albo
@kank_: Tak! Nieironicznie śpię 10 godzin dziennie żeby funkcjonować (a tym bardziej żeby programować). Czasami z dodatkową drzemką w środku dnia. Jestem największym śpioszkiem w historii tej planety.
Dolecieć ostatecznie doleci bo mam warstwę reliability nad UDP - może tylko nie dolecieć na czas (i w jedną i w drugą stronę).
Co do rollbacka - klient utrzymuje dwa światy. Ten przewidywany i ten który stał się "na pewno".
Ogólnie klient nigdy nie czeka i zawsze symuluje przewidywany świat w przód z założeniem że stan wciśnięcia przycisków odległych graczy się nie zmienił, a potem odtwarza swoją predykcję jeszcze raz gdy dostanie poprawkę z serwera z której wynika że się pomylił. Zmiany poprawkowe kryje interpolacja wykładnicza.
@papyshh: Niestety Web Audio nie wyrabia czasami. W przeglądarce możesz wyłączyć HRTF (Settings->Audio), ono bardzo zwiększa wydajność dźwięku ale jego przestrzenność jest widocznie gorsza. To niestety taki tradeoff.
@Arhus Unreal Engine albo Godot. Prosta przyczyna - nie wyobrażam sobie pisania skomplikowanej gry sieciowej bez dostępu do kodu źródłowego silnika i jego modyfikacji od podstaw. Gdybym pisał singla, rozważyłbym ewentualnie Unity, ale tylko dlatego że wszyscy go używają i łatwiej byłoby znaleźć kogoś do pomocy.