|
MooAPI Serwer - jak się za to zabrać? |
| Autor |
Wiadomość |
Aleks
Moderator Wilczek
 
Skype: 
Pomógł: 78 razy Posty: 636
28588 Prestiż
|
Wysłany: 15-05-2008, 20:29 MooAPI Serwer - jak się za to zabrać?
|
|
|
Tworzenie serwera do gry niekoniecznie kończy się na funkcji host w mooclick
Pewnie borykasz się ze synchronizacją, wydajnością serwera a także tym jak się za to zabrać
Zacznę od opisania przydatnych funkcji przy tworzeniu serwera
Moogame: is Chanel master - Warunek sprawdza czy klient jest serwerem (można zrobić negacje zdarzenia)
Wartość GetChannelMasterId( "MooGame" ) podaje ID głównego gracza
W mooclick jest podobnie
Serwer do gry można zrobić na 2 sposoby
Przykładowo chcę zrobić grę multiplayer ponga, którą nazwie duel pong jak można się domyślić gra będzie tylko na 2 osoby w takim razie nie potrzebuję robić oddzielnej aplikacji serwer wystarczy, że jeden klient będzie serwerem a drugi zaś będzie do niego podłączony.
Nie mogę raz puścić piłkę w grze żeby się odbijała beztrosko ze względu na ping i paletki graczy, dlatego główny gracz będzie pilnował synchronizacji po każdej zmianie kierunku piłki, kiedy odbija się od ścian lub paletki
http://images23.fotosik.pl/213/50227d1a0778432a.png
Kiedy akcja się spełni wysyła główny gracz przeciwnikowi współrzędne piłki XY oraz kierunek
Natomiast żeby uniknąć widocznego lagu u klienta, kiedy piłka próbuje się odbić od ściany zatrzymujemy ją aż otrzyma pakiet od serwera albo można oprzeć synchronizacje na dead reckoning. To tyle, jeśli chodzi o tworzenie serwera, gdy jednen z klientów jest serwerem.
Drugi sposób tworzenia serwera jest bardziej złożony i często od złej strony zabierają się za to twórcy gier. Oczywiste jest to, że robienie serwera gdzie wizualnie sprawdza kolizje z jakimś obiektem czy wykonuje inną podobną funkcje jest zabójcze dla zasobów komputera serwer ma głównie liczyć dbać o synchronizacje niepotrzebne jest mu wyświetlanie grafiki. Robienie w zdarzeniach symulacji zwykłych zjawisk, które mogą zachodzić w ramce też jest bez sensu. Można ułatwić sobie tworzenie serwera poprzez wyświetlenie w ramce kopi rozgrywki odznaczając wszystkim obiektom w properties opcje visible at start ramka wtedy nie będzie zabierała żadnych zasobów z powodu grafiki natomiast ty masz pełną kontrolę nad tym, co się dzieje w grze obiekty są niewidoczne, ale możesz z nich korzystać normalnie sprawdzając w zdarzeniach współrzędne, kolizje itp.
Jeśli chcesz zrobić limit graczy, którzy mogą przebywać jednocześnie na serwerze to tu masz rozwiązanie
Kod: | + Moogame: on user is here
+ GetUserCount("Moogame") > 2
Disconnect
Set alterable string to "serwer jest pełny" |
|
|
|
|
 |
mrPG
Sierżant
 
Pomógł: 2 razy Posty: 145
4382 Prestiż
|
Wysłany: 07-10-2008, 18:52
|
|
|
| bardzo dobry art / moze wreszcie ogarne jakies rozszerzenie sieciowe ;] |
|
|
|
 |
Fly
Starszy kapral
 
Posty: 53
2348 Prestiż
|
Wysłany: 07-01-2009, 21:03
|
|
|
| no ale kto jest channel master? |
|
|
|
 |
Aleks
Moderator Wilczek
 
Skype: 
Pomógł: 78 razy Posty: 636
28588 Prestiż
|
|
|
|
 |
|
|