![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie ojciec siedział przy kompie i grał w OGame (www.ogame.pl) i tak zastanawiałem się jak jest zrobiona ta gra.
Chodzi mi o symulacje walk o okreslonym czasie. Np. ktos wysyła flote, która uderza w jakąś tam planete za 45 min. Czy to jest zrobione przez crona? Skrypt uruchamiający się w każdej sekundzie i sprawdzający czy przypadkiem któryś z userów nie atakuje innego? To chyba byloby strasznie obciążające serwer? Mamy np. [czas startu] + [czas lotu] = [czas ataku] > zapis do SQL i cron uruchamiający sie co 1 sek. sprawdza czasy ataków i dalej symuluje walki. Jeszcze zastanawia mnie czy czas wykonania takiego skryptu nie bylby większy od 1 sek. Przy kilku tysiącach userów jak to ma miejsce na OG to chyba tak. Nie wiem czy jasno opisałem o co mi chodzi ale mam nadzieje ze sobie poradzicie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) -- edit -- Jakby kogoś interesowało to przed chwilą znalazłem zlecenie w podobnych klimatach: http://forum.php.pl/index.php?showforum=12 Ten post edytował My4tic 15.01.2006, 21:12:34 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Powiedzmy leci sobie flota. Zainteresowani wynikami są Obońca i Agresor.
Jeśli czas jaki potrzebny jest na dolecenie jeszcze sięnie skończył a nastąpiło żądanie wyników, to pokazana jest informacjia kiedy doleci (data dolotu - data obecna). Nie ważne kto prosi o wyniki. Jesli natomiast czas się skończył to wcale serwer nie musi wykonać algorytmów walki dopóki ktoś o nie nie poprosi. Jesli ktoś to zrobi (nieważne czy Agresor czy Obrońca) to serwer wykonuje algorytmy i pokazuje wynik (który jest też zapisywany). Jeśli o wyniki poprosi kolejny to już widzi wyniki wygenerowane. Do tego nic nie musi chodzić cały czas. Po co ma chodzić serwer, który będzie wykonywał algorytmy w chwili kiedy nikt nie prosi o wyniki tych obliczeń? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 05:03 |