Chciałbym stworzyć prosty serwer do gry wieloosobowej dla prostej gry:
Gra ma być podobna do Command & Conquer, masz kilka czołgów i kilku żołnierzy. Możesz wybrać jednego żołnierza, a następnie kliknąć mapę, do której żołnierz powinien się udać. Jeśli żołnierz dotrze do miejsca, do którego nie mógł pójść, chodzi po okolicy. A żołnierze mogą zostać zestrzeleni przez wrogów.
Jak powinienem ustrukturyzować serwer gier i co należy zrobić u klienta?
To znaczy, jeśli żołnierz przesunie się z X na Y, ale wokół budynku Z, sądzę, że serwer musi być w stanie dokładnie obliczyć lokalizację żołnierza (na wypadek, gdyby strzelił do niego wróg), a klient musi również znać pozycję malowanie żołnierza.
Co należy zrobić na serwerze i myślę, że muszę zaprojektować w tym celu protokół. Myślę, że serwer musi śledzić stan gry i czas. Czy ktoś ma sugestie, jak to zrobić? lub może polecić lekturę?
źródło
Istnieją w zasadzie dwa podejścia:
Zaufany klient jest nieco bardziej złożony, ale ma tę zaletę, że można odciążyć wiele obliczeń z serwera. Koszt działania serwera jest jednym z największych problemów w grach wieloosobowych i poważnie zmniejszy twoją skalowalność.
Dobrym podejściem (dla początkujących) jest umożliwienie każdemu klientowi obsługi własnych jednostek. W następnym kroku możesz użyć zapasowych cykli, aby umożliwić klientom sprawdzenie działań innych klientów. Serwer nie powinien robić więcej niż wymiana wiadomości, synchronizacja i zapewnienie trwałości (np. Baza danych).
Jeśli planujesz mieć jakieś lobby lub czat, poradzisz sobie z każdym z tych tematów na dodatkowym serwerze. Ułatwi to znacznie na drodze.
źródło