Wpis z mikrobloga

W tagu #elpotatoprogramuje będę publikował postępy z prac nad moim silnikiem do symulacji fizyki 2D synchronizowanej po sieci przez #webrtc w #javascript do gier typu fast-paced shooter. Zachęcam do obserwowania.

Na początek zarzucę screenem, jeśli będzie minimalne zainteresowanie (plusiki ( ͡° ͜ʖ ͡°)) to jeszcze dzisiaj nakręcę film i wrzucę tutaj.

Projekt na chwilę obecną ma niemal zerową oprawę wizualną, ponieważ docelowo nie jest to projekt gry a silnika, oraz po prostu wiem z doświadczenia iż lepiej wodotryski jest robić na końcu.

Z czego korzystam?

Brackets, Browserify, Node.js (master server), JavaScript, Pixi.JS, silnik fizyki p2.js, komunikacja p2p WebRTC, WebWorkers.

Dlaczego jest to ciekawy projekt?

Biorę gotowy silnik fizyki 2d i synchronizuję wszelkie niezbędne informacje przez niego przetwarzane by jak najoptymalniej móc uruchomić akcję po sieci na dwóch osobnych komputerach.

Co już jest zrobione mniej więcej?

Moduł Playground odpowiedzialny za symulację fizyki która dzieje się w osobnym procesie, oraz wyabstrachowane API modułu, tak by można było wykorzystać go do dowolnych celów tj. na przykład do synchronizacji po dowolnym kanale komunikacji w którym można przesyłać dane bitami, lub nawet do gry nie działającej po sieci.

Moduł Komunikacji oparty o technologię p2p, tj. WebRTC, wraz z modułem zarządzania uczestnikami gry (gry jako założonego/utworzonego pokoju do którego można dołączać)

Proste wyświetlanie geometrii za pomocą Pixi.JS.

Czym zajmuję się obecnie?

Obecnie udoskonalam używany silnik fizyki 2d - p2.js. Zastosowałem kilka poprawek i usprawnień tak by bardziej pasował do moich potrzeb. A obecnie obecnie to dodaję algorytm CCD, w silniku jest już jeden ale nadaje się on tylko do małych ciał typu bullet.

Czy to działa?

Tak działa i jest piękne (,)

#gamedev #programowanie
ElPotato - W tagu #elpotatoprogramuje będę publikował postępy z prac nad moim silniki...

źródło: comment_ioQpmTrjKvPW9N8im2xDtI83Emiy5aIa.jpg

Pobierz
  • 6
@Philopolemus_Fronius: Myślę że nie będzie wiele wolniejsze niż dowolna niesieciowa produkcja z użyciem p2.js i pixi.js. Komunikacja wiele nie zabiera. Tylko jeśli są spowolnienia transferu (np. youtube leci w tle) to lagi mogą wywołać resymulację świata z powodu korekty zdarzeń, ale lagi to lagi i wygladają jak takie zwyczajne jak na chwilę obecną.

Masz na myśli jakieś szczególne aspekty?
@Philopolemus_Fronius: przejrzyj gry html5, wszystkie zbudowane są przy użyciu JS, niektóre w Unity ale to się sprowadza z tego co wiem do JS nadal, albo Javy w przeglądarce, tfu.

Niesamowite jest jakie już produkcje można odpalać w przeglądarkach bez użycia pluginów. Uznałem że gry typu szybkie strzelanki odpalane z poziomu Chrome'a albo Firefoxa będą prezentowały się nieźle ( ͡° ͜ʖ ͡°)