![]() |
![]() |
![]()
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 ![]() -- 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 -------------------- Załóż konto na dropbox.
|
|
|
![]() |
![]()
Post
#2
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Chyba łatwiej odpalić serwer aplikacji, niekoniecznie napisany w php, ale też tam można. Jest on odpalony z shella i chodzi na okrągło. Jest w nim pętla, w praktyce nieskończona dzięki której skrypt działa ciągle.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Serwer aplikacji? Czyli pod samym php cięzko będzie coś takiego zrobić? Chyba troche nieoptymalnie...
-------------------- Załóż konto na dropbox.
|
|
|
![]()
Post
#4
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Czemu? Poszukaj projektu Hive. Był laurentem konkursu Zenda, w dodatku napisany przez Polaka.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki. Na pewno poczytam o tym. Jakby ktoś miał jeszcze jakieś pomysły to będę wdzięczny
![]() -------------------- Załóż konto na dropbox.
|
|
|
![]()
Post
#6
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Co wy... to jest ogame
![]() Poprostu jak ktos wywoluje akcje zwiazana z iloscia floty a do tej pory symulacja nie zostala przeprowadzona zostaje ona wygenerowan i dane zostaje zupdejtowane IMHO |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Uważam podobnie jak ~hwao.
Szczeże ątpię żeby tam jaieś serwery chodziły. Po prosu zawsze keidy jest żądanie pokazania jakiejś operacji wszystkie algorytmy sę puszczane w ruch i widac tylko ich wyniki. Sam właśnie pisze podobna grę i takie rozwiązania będe stosował. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Proszę jaśniej
![]() -------------------- Załóż konto na dropbox.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
http://forum.php.pl/index.php?showtopic=30...ndpost&p=177338
tu juz ktos cos o tym pisal... ale nie czytalem dokladnie |
|
|
![]()
Post
#10
|
|
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ń? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... słusznie :-) Chyba już poźno bo dopiero teraz złapałem o co chodzi :-) Dzięki.
-------------------- Załóż konto na dropbox.
|
|
|
![]() ![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 425 Pomógł: 0 Dołączył: 28.05.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale przecież Obrońca może w czasie lecenia floty wroga np. rozbudowac obronę i efekt stracia będzie inny, prawda?
-------------------- nospor, jestem z Wami.
Alpha IT |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
No pewnie ze bedzie inny, bo przeciez "symulacja" walki zostanie przeprowadzona przy pierwszym rzadaniu wyniku (zalogowaniu), ale juz po dotarciu floty do celu. Czyli dopoki flota leci mozesz sobie spokojnie budowac obrone i bedzie to uwzglednione podczas symulacji walki.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
No tak tylko załużmy że jest taka sytuacja
mike_mech wysyła do mnie 100 cieżkich myśliwców zostało 5 minut do ich wyladowania na mojej planecie. Ja buduje 200 dzialek i wylogowuje sie... Ani ja ani mike_mech nie gramy przez kilka dni. następnie wchodze loguje sie, generuje mi sie walka tyle że juz z działkami które napewno nie zdążyły by sie wybudować w 5 minut ;] I mike_mech dostaje w dupe ![]() Problem dotyczy również resztek po walce w przestrzeni EDIT: Moim zdaniem obnliczanie wyników starć nie zależy tylko od agresora i obrońcy a od każdego gracza. Po prostu za kazdym razem sprawdzane jest czy nie ma w bazie zadnej walki która powinna sie wygenerować. Jesli jest to jest generowana... Ten post edytował SHiP 18.01.2006, 21:28:10 -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Niekoniecznie. Przeciez skrypt symulujacy ma dostep do tego kiedy zaczales budowac dzialka obronne i o ktorej walka miala sie rozpoczac. Wtedy tych dzialek nie bierze do symulacji.
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Niestety - nie może to wyglądać w sposób przedstawiony przez mike_mech'a
W tym konkretnym przypadku dlatego, ponieważ zainteresowanych jest więcej, niż tylko ageresor i obrońca. Są jeszcze sepy ![]() Chyba że odpowiednie sprawdzanie podpięte byloby zarówwno pod odpowiednie zachowania agresora i obrońcy, ale - dodatkowo - również pod akcję podglądu galaktyki każdego, kto wejdzie do odpowiedniego układu. Jeśli jednak poszlibyśmy tym tropem - musielibyśmy odpalać całą kolejkę zdarzeń związanych z danymi osobami i planetami w okreslonym ukladzie. Troszkę to skomplikowane by było... -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#17
|
|
![]() TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%) ![]() ![]() |
@DeyV: skomplikowane ale jednak wydajniejsze niz kron
![]() -------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(DeyV @ 2006-01-18 23:03:34) Są jeszcze sepy ![]() No tak całkowicie zapomniałem o reszcie :roll2: Dawno już w to nie grałem. Jednak cron. |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Albo jakis programik, ktory robi za symulator wszystkich czynnosci, na okraglo uruchomiony, jak jest cos do zasymulowania to robi to, a wynik zapisuje do bazy, jak nie ma to czeka.
|
|
|
![]()
Post
#20
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Radarek @ 2006-01-19 01:44:29) Albo jakis programik, ktory robi za symulator wszystkich czynnosci, na okraglo uruchomiony, jak jest cos do zasymulowania to robi to, a wynik zapisuje do bazy, jak nie ma to czeka. Skrypt w creon'ie :?: ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:26 |