Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Jak rozmieszczać "potwory"
ols1994
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.06.2009

Ostrzeżenie: (0%)
-----


Pisząc grę RPG natknąłem się na przeszkodę w postaci rozmieszczenia potworów na mapie. Wiadomo mapa nie jest duża i mogłoby być od kilku do kilkunastu potworów na jednym polu. Zastanawia mnie tylko możliwość jak to zrobić. Widzę jedno wyjście:
1) Nowa tabela w bazie danych z potworami, na każdym polu. Jednak przy mapce z 625 rekordami niech będzie min 10 potworów na jedno pole(rekord) to już jest 6250 potworów na całą mapę. Później gdybym robił nowe mapy to byłoby jeszcze więcej. Ciągłe operacje na bazie przez graczy też raczej nie byłyby optymalnym wyjściem.

Chciałbym również żeby pokonane potwory znikały a po jakimś czasie dochodziły nowe. I tak wkoło... Macie jakieś pomysły? Czy jest coś lepszego od używania bazy danych tak jak to wyżej przedstawiłem?
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@DiH: Powiedzmy, że chcesz strzelić z jakiejś broni. Klikasz "strzał" i cała machina do obsługi tego rusza:
1. Klient wychwytuje zdarzenie i rozpoczyna się jego obsługa.
2. Do serwera wysyłana jest informacja o tym, że gracz wcisnął strzał.
3. Serwer (po sprawdzeniu czy do takiej akcji może w ogóle dojść - gracz musi mieć wystarczająco amunicji) wysyła informację zwrotną do klienta w stylu "ok, możesz strzelać".
4. Serwer wysyła do wszystkich graczy - którzy w tym przypadku znajdują się wystarczająco blisko miejsca akcji - trochę informacji o nowym obiekcie - naboju. W tym przypadku będą to informacje o tym jaki to obiekt i jaki jest jego wektor ruchu.
5. Klient każdego z graczy renderuje wszystkie animacje.
6. Po upływie sekundy pocisk dociera do celu - jakiegoś potworka.
7. Serwer po sprawdzeniu czy wszystko się zgadza decyduje o tym czy pocisk trafił cel i jeżeli tak to jakie zadał obrażenia, czy potwór zginął itp.
8. Informacje o trafieniu wędrują do wszystkich klientów, którzy są odpowiednio blisko miejsca akcji.
9. Po stronie użytkownika renderowana są animacje.

Tak naprawdę jest to jeszcze nieco bardziej skomplikowane, bo z reguły jest tak, że klient - by polepszyć wrażenia użytkownika - rozpoczyna renderowanie pewnych rzeczy jeszcze zanim otrzyma informacje zwrotną z serwera, później jeżeli jest taka potrzeba synchronizuje to co już wyświetla z tym co otrzymał z serwera.

Generalnie - jeżeli to ma być gra czasu rzeczywistego przez sieć to trzeba naprawdę w cholerę niezbyt ciekawych problemów rozwiązać. A praca w środowisku jakim jest przeglądarka dodaje jedynie nowych problemów.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 14:16