środowisko do gry internetowej

0

Witam,
Chciałbym zbudować grę internetową, która funkcjonowałaby zarówno w przeglądarce jak i na urządzeniach mobilnych. Grafika 2D, bez jakichś fajerwerków graficznych, bardziej nastawiona na relacje między graczami, nie byłoby to MMORP czy strategia czasu rzeczywistego a gra turowa. Takie coś jak np. Forge of Empires.
Przy okazji co ważne chciałbym się nauczyć trochę programowania i nie chciałbym korzystać z Unity czy innych silników do tworzenia gier. Pewne podstawy programowania mam ale bardziej pochodzące z obsługi baz danych.
Pytanie w jakim środowisku taką grę najlepiej zrobić - standardowe php/ajax/js/html czy może node/react?

2

Myślę, że powinieneś zacząć od rozrysowania i rozpisania projektu gry, który zawiera opis:

  • zasad gry ;
  • ogólnych zasad tworzenia interfejsu ;
  • zdefiniowania miejsca gdzie i w jaki sposób przechowywane są dane ;
  • zdefiniowania sposobu komunikacji interfejsu z serwerem.

Na etapie, którym jesteś, wybór technologii to wg mnie najmniej istotny problem.

0

... i podciągnięcia się z ogólnego programowania.
Projekty postanowione "na wyrost", i niedokończone (a w środku pełne złego stylu itd) pozostawiają w głowie same złe rzeczy

1

Pytanie w jakim środowisku taką grę najlepiej zrobić - standardowe php/ajax/js/html czy może node/react?

Backend to jedna sprawa, ale zastanów się, jak chcesz to rozwiązać po stronie frontendu (a frontend to też nie jest takie hop siup, że "js/html" i już. Jaką grafikę chcesz mieć, jaką metodą chcesz to rysować, czy użyjesz dodatkowych bibliotek itp.)

Grafika 2D,

Zerknąłem w to Forge of Empires i to w sumie jest widok izometryczny, tak zwany 2.5D (który też można zrobić albo na zwykłych bitmapach, czyli 2D, albo można zrobić to w 3D, co najwyżej robiąc ortograficzną kamerę. Wtedy będzie wyglądać izometrycznie).

Jeśli 2D, to jest prosto, możesz zrobić choćby na divach, albo na canvasie, bez żadnej dodatkowej biblioteki. Jakbyś chciał jednak skorzystać z biblioteki, to jest choćby Phaser, Pixi, Fabric... Tu widzę jest jakiś tutorial do tego, jak to zrobić w Phaser https://gamedevelopment.tutsplus.com/tutorials/creating-isometric-worlds-primer-for-game-developers-updated--cms-28392

Jeśli chcesz to zrobić w 3D, to programowanie się komplikuje - czysty WebGL jest niezbyt wygodny w użyciu, więc możesz skorzystać np. z biblioteki Three.js.

Ale z drugiej strony w 3D masz więcej możliwości choćby animacji wszystkiego (bo robisz to w przestrzeni 3D), albo możesz się bawić światłami, tak samo masz rotację obiektów z automatu.W 2D musisz mieć osobną grafikę do wszystkiego, np. postać przodem, postać tyłem, postać obrócona 5 stopni w lewo, 10 stopni, 15 stopni itp.... a w 3D po prostu obracasz obiekt o wybrany kąt. Więc z pewnej perspektywy jest łatwiej, mimo że implementacja jest teoretycznie trudniejsza, choćby też z tego względu, że musisz kumać, co to są wierzchołki, ścianki, wektory, materiały itp.

Pomijając samą grafikę, też musisz wymyślić, w jaki sposób będziesz trzymał dane gry, w jaki sposób zrobisz logikę gry, interakcje między jednostkami itp. (chociaż jeśli to ma być multiplayer, to i tak serwer będzie musiał mieć kontrolę nad logiką - a co za tym idzie lepiej moim zdaniem backend zrobić w Node, bo wtedy masz ten sam język zarówno na backendzie, jak i na frontendzie, więc możesz dzielić kod)

react

Jeśli będziesz potrzebował wiele okienek dialogowych, różnego rodzaju GUI, to React może się przydać. Ale do samej animacji, planszy itp., to w sumie niekoniecznie. Chociaż można. Jak komu wygodnie. Nawet ktoś zrobił wersję Three.js opartą o React. https://github.com/react-spring/react-three-fiber (ale nie korzystałem).

zarówno w przeglądarce jak i na urządzeniach mobilnych.

Jak zrobisz odpowiednio w przeglądarce, to i na mobilnych przeglądarkach pójdzie. Chyba, że chcesz zrobić z tego osobną aplikację, ale na to też są sposoby.

między graczami,

Zwróć uwagę, że stworzenie gry multiplayer jest trudniejsze niż zrobienie gry na jednego gracza. Just saying...

0
Altavista napisał(a):

Takie coś jak np. Forge of Empires.
Przy okazji co ważne chciałbym się nauczyć trochę programowania i nie chciałbym korzystać z Unity czy innych silników do tworzenia gier.

Nawet w Unity, z gotowymi assetami graficznymi/dźwiękowymo poskładanie takiej gry to miesiące dla doświadczonych programistów.

No i sądzę, że przeglądarkę mógłbyś sobie prędzej odpuścić niż mobile. A na pewno skoro dopiero zaczynasz, wystarczą Ci buildy Twojej gry na PC, bo chcesz latać, zanim nauczyłeś się chodzić :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1