GameManeger + Runner windows / web w C++

GameManeger + Runner windows / web w C++
MS
  • Rejestracja:około 2 miesiące
  • Ostatnio:4 dni
  • Postów:9
5

Witam, chciałem podzielić się projektem nad którym pracuję od jakiegoś czasu wolnymi wieczorami by troszkę oderwać się od codzienności. Ogółem rzecz biorąc GameManager jest programem do tworzenia gier w bardzo prosty i szybki sposób. Wrzucamy grafikę i inne assety, piszemy skrypt obiektu jeśli ma coś robić i tworzymy mapkę. Edytor i runnery dla windowsa oraz web pisane w C++ z raylib, lua i kilkoma innymi pomniejszymi bibliotekami. Do skryptowania zaprzęgłem lua, stworzyłem fajny i prosty system obiektowości który wywołuje nam eventy typu create, destroy, update, render i inne a także dodałem sporo przydatnych funkcji silnika jak i kolizyjnych, matematycznych itp. W sumie nie wiem co tu dalej pytać, jeśli ktoś ma pytania to chętnie odpowiem :) Dodam jeszcze link do grywalnego demka pierwszej gierki - czołgów z trybem multiplayer, odpalane na przeglądarce. CZOLGI

image
image
image
image
image
image
image

MS
  • Rejestracja:około 2 miesiące
  • Ostatnio:4 dni
  • Postów:9
3

Witajcie, mały update: pracuję nad modułem sieciowym dla mojego silnika. Wcześniej(dla demka czołgów) pisałem protokół internetowy jak zawsze, ale stwierdziłem że stworze coś ciekawszego i "automatycznego". Uprościłem funkcje sieciowe, np przy NetConnect(ipport) automatycznie pobieramy i zapisujemy własne id na serwerze. Zamiast pisać protokoły po stronie clienta/servera stworzyłem funkcje NetInstanceCreate(...) która tworzy po prostu tworzy nam dany obiekt jak wcześniej z tą różnicą, że wysyła też nakaz stworzenia tego samego obiektu u innych graczy. Pozycja, skala, obrót, sprite oraz wszelkie zmienne które powinny być przesłane są automatycznie wysyłane. Kod obiektu stworzonego tym sposobem nie różni się wcale, mamy też możliwość sprawdzenia czy to my stworzyliśmy ten obiekt czy ktoś inny. Gdy chcemy usunąć taki obiekt usuwamy go zwyczajnie jak wcześniej, a silnik sam sprawdza czy była to instancja "Net" i jeśli tak to usuwa ten obiekt także u innych graczy. Jeśli coś się zmieniło i chcemy zaktualizować dane/zmienne/pozycje danej instancji to po prostu uzywamy NetInstanceUpdate(self) i dany obiekt u innych graczy się aktualizuje. W edytorze map dodałem także możliwość ustawienia danego obiektu na mapie jako "Net Instance" - GameManager przy zapisie/generowaniu projektu będzie tworzył listę takich obiektów dla serwera. Plik z tymi obiektami będzie można łatwo dodać do servera( LoadNetObjects("plik") ) i server będzie tworzył taki obiekt u nowego gracza automatycznie na aktualnej pozycji, tak więc będziemy mogli sobie stworzyć w edytorze świat który będzie mógł łatwo "ożyć" w grze multiplayer ;) Co sądzicie o takim rozwiązaniu?

image
image

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.