Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Obsługa wydarzeń czasowych w grach MMO
Forum PHP.pl > Forum > Przedszkole
Shadowrunner
Witam!

Czy ktoś orientuje się lub mógłby mi podpowiedzieć na jakich zasadach obsługuje się np. wykonywanie jakiegoś skryptu odpowiadającego za wykonanie konkretnej funcji w momencie kiedy użytkownik aplikacji internetowej nie jest zalogowany?

Konkretnie chodzi o to że od podstaw piszę własną grę przeglądarkową MMORPG/RTS i zastanawiam się na tym jak np. wykonać mechanizmy odpowiadające za: wybudowanie budynku po X czesie, dokonanie ataku po przybyciu za Y minut/godzin armii którą gracz wysłał w pewnym momencie itd.

Na razie jestem na etapie takim, że wymyśliłem sposób jak robić to trochę "pod górkę" i "na około" - metodami statycznymi - tj. poprzez zapisanie w bazie danych daty rozpoczęcia, daty zakończenia i podawanie czasu trwania np. budowy czy pozostałego czasu do "finalizacji" najazdu na postawie parównywania tych dwóch dat za każdym razem kiedy gracz wchodzi na stronę odpowiadającą za budowę czy najazdy i wyświetlania mu tej informacji - zaś w przypadku, kiedy gracz wejdzie na stonę już po zakończeniu takiej "akcji" to aplikacja przekierowywuje go do stronki gdzie może sobie "odebrać" produkcję czy zobaczyć wyniki starcia (i np. dopiero w tym momencie są wykonywane skrypty odpowiadające za potyczkę czy dopisywane są do bazy danych na końcie gracza informacje o powiększeniu się "stanu budowlanego").

Ale interesuje mnie to np. jak to jest rozwiązywane w sposób dynamiczny i bez obecności gracza np. w takim OGame, że zlecamy budowe, a ona sama sobie już chula, gdzieś tam jakoś odpalona naa serwerze, obojętnie od tego czy gracz jest zalogowany czy nie - jak odpalać takie skrypty bez obecności użytkownika. Bo czytałem gdzieś tu na forum że to wykonywania zadań z harmonogramu słuzy Cron, ale to są zazwyczaj na sztywno ustalone terminy a tu mamy do czynienia z dynamicznie przydzielanym okresem czasu po którym dany skrypt - np skrypt ataku naszej armii na bazę przeciwnika ma być wykonany?

Potrzebuję pomocy jakiegoś mózgowca któryby mi to objasnił na jakich zasadach to działa, a może ktoś ma gotowy kod do takich mechanizmów, co trzeba mieć żeby takie rzeczy robić - bo chciałbym za wszelka cenę uniknąć korzystania z jakiś zewnętrznych programów, Javy, JS czy tym podobnego badziewia winksmiley.jpg ...

Anybody? worriedsmiley.gif
drPayton
Ale Cron może zadania wykonywać równie dobrze na przykład co minutę...
Shadowrunner
Cytat(drPayton @ 17.09.2008, 12:15:16 ) *
Ale Cron może zadania wykonywać równie dobrze na przykład co minutę...


A czy Cron zmajstruje mi odpalenie skryptu na określoną godzinę którą aplikacja zadamu mu w momencie kiedy gracz wyśle najazd? I czy może to zrobić dla n liczby użytkowników - nie będzie konfliktów jak w tym samym momencie 1000 graczy winksmiley.jpg prześle dane na którą godzinę ma skryp odpalić, nie będzie się ciął i wieszał jak będzie musiał powiedzmy wykonać jakieś 10000 odpaleń różnych skryptów w krótkim przedziale czasu? Nie znam się na działaniu crona, z ciekawości tak się pytam czy to będzie odpowiednie narzędzie dla gry MMO...

A jesli tak, to znaczy że istnieje duże prawdopodobieństwo że OGame i inne tego typu gry też robią te swoje myki w oparciu o crona, tak?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.