Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ogame - symulacja walk, obsługa czasu, Cron?
My4tic
post 15.01.2006, 21:05:39
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 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


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
bela
post 15.01.2006, 21:15:33
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.


--------------------
Go to the top of the page
+Quote Post
My4tic
post 15.01.2006, 21:24:09
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.
Go to the top of the page
+Quote Post
bela
post 15.01.2006, 21:47:08
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.


--------------------
Go to the top of the page
+Quote Post
My4tic
post 15.01.2006, 21:52:07
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 winksmiley.jpg


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
hwao
post 15.01.2006, 22:27:42
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 biggrin.gif

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
Go to the top of the page
+Quote Post
mike
post 15.01.2006, 22:30:38
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ł.
Go to the top of the page
+Quote Post
My4tic
post 15.01.2006, 22:39:47
Post #8





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Proszę jaśniej biggrin.gif Chyba nie rozumiem... przecież to gra online. Flota leci ileś tam czasu... 'obrońca' sie może zalogować i w tym czasie wysłać flote. Gdy 'agresor' doleci to juz tam nic nie będzie - czyli symulacja musi być prowadzona w czasie kiedy flota uderza. Czyli skrypt symulujący walke musi być uruchomiony w czasie uderzenia więc jakoś ten czas musi być sprawdzany?


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
ActivePlayer
post 15.01.2006, 22:52:16
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
Go to the top of the page
+Quote Post
mike
post 15.01.2006, 22:58:59
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ń?
Go to the top of the page
+Quote Post
My4tic
post 15.01.2006, 23:08:44
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.
Go to the top of the page
+Quote Post
Kas
post 18.01.2006, 16:13:59
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
Go to the top of the page
+Quote Post
Radarek
post 18.01.2006, 17:07:38
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.
Go to the top of the page
+Quote Post
SHiP
post 18.01.2006, 21:25:01
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 tongue.gif


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
Go to the top of the page
+Quote Post
Radarek
post 18.01.2006, 21:44:48
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.
Go to the top of the page
+Quote Post
DeyV
post 18.01.2006, 23:03:34
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 winksmiley.jpg które czekają na złom...

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..."
Go to the top of the page
+Quote Post
Puciek
post 18.01.2006, 23:08:39
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%)
XX---


@DeyV: skomplikowane ale jednak wydajniejsze niz kron tongue.gif


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
mike
post 19.01.2006, 00:56:22
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 winksmiley.jpg które czekają na złom... (...)

No tak całkowicie zapomniałem o reszcie :roll2:
Dawno już w to nie grałem.

Jednak cron.
Go to the top of the page
+Quote Post
Radarek
post 19.01.2006, 01:44:29
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.
Go to the top of the page
+Quote Post
mike
post 19.01.2006, 08:27:49
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 :?: tongue.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:26