![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wybacz, o rozwiązanie nie tego problemu mi chodziło. Miałem na myśli obsługę mapy. Ale co do samego strzału, to myślę, że da się to w dużej mierze uprościć:
Cytat 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. Nie wiem jak skomplikowana będzie gra ols1994, ale nie porywajmy się z motyką na słońce. Jak sam wspomniałeś, przeglądarka to niezbyt ciekawe miejsce na tego typu ewolucje, dlatego pójdźmy po najmniejszej linii oporu. 1. Wciśnięcie strzału będzie owocowało zapytaniem do bazy. Każdy gracz ma określoną siłę strzału. 2. Po co wysyłać ruch pocisku, a raczej informację o tym do innych graczy? Zakładamy, że to prosta gra, nie mogą więc "nadziać" się na zbłąkaną strzałę, czy pocisk. Również sama animacja w tym przypadku jest zbędna. Można by to rozwiązać tak jak w Heroes of Might and Magic, czyli widzimy się na mapie tylko chodząc, a walka toczy się w zupełnie innej perspektywie i środowisku. Cytat 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. 3. Naciśnięcie przycisku strzału wysłało zapytanie do bazy, teraz samo php generuje losowo celność i obrażenia tegoż strzału z użyciem danych o sile rażenia gracza. pkt. 8 i 9 odpada, bo mamy od tego inne środowisko. Absolutnie nie twierdzę, że nie masz racji. Mamy po prostu w głowach gry o zupełnie innym stopniu zaawansowania. Ten post edytował DiH 4.06.2011, 23:12:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 00:46 |