Strona 1 z 1

[PHP] Programowanie gier

: pn lis 09, 2009 1:11 pm
autor: piaggio
Cześć.
Ostatnio zainteresowałem się zrobieniem własnej gry opartej na PHP, coś w stylu Plemion albo Ikariama. Chciałem się Was zapytać, w jaki sposób zrealizować to, że dane automatycznie aktualizują się po wyjściu z konta (np. budujemy domek, wychodzimy z konta, a za dwie godziny bez konieczności wejścia na konto, czyli uruchomieniu jakiegoś konkretnego skryptu PHP przez gracza, dane automatycznie aktualizują się i zapisują gotowy domek). Jest to do zrobienia za pomocą samego PHP? Czy trzeba napisać program uruchamiany na serwerze, który będzie co jakiś czas aktualizował dane wszystkich niezalogowanych użytkowników?
Drugie pytanie, czy mieliście styczność z książką "PHP. Programowanie gier" (autor: Matt Rutledge). Jeśli tak to czy jest warta polecenia?
Pozdrawiam i dzięki za pomoc.

Re: [PHP] Programowanie gier

: wt lis 10, 2009 10:15 pm
autor: SzamanGN
Odp 1:
Automatyczna aktualizacja danych w grze po wylogowaniu się - ja bym zrobił tak:
1. Ustaliłbym jakie dane należy przy jakich warunkach aktualizować, np.:
1.1. Przy wybraniu dowolnej akcji gry - naliczanie zasobów.
1.2. Przy wybraniu akcji POJEDYNEK - ustalenie współczynników atakującego i broniącego się, określić wynik pojedynku, ustalić aktualne stany wszystkich parametrów graczy (przekalkulować straty, zyski, zaktualizować współczynniki doświadczenia, życia, itp.).
1.3. I tak dalej.
1.n. Jeżeli gracz loguje się - aktualizacja wszystkich parametrów.
Im więcej ustalisz/przewidzisz warunków, tym łatwiej zapanujesz nad aktualizacjami parametrów.

To na początek!

Re: [PHP] Programowanie gier

: śr lis 11, 2009 2:10 pm
autor: szczypior
Ja bym po prostu użył CRON'a, wywołującego odpowiednie skrypty.

Re: [PHP] Programowanie gier

: śr lis 11, 2009 7:23 pm
autor: SzamanGN
Jeżeli chodzi o CRONa, to:
1. Jedna operacja na bazie danych, to z reguły kilka zapytań, dla ułatwienia analizy załorzymy, że jest ich 3.
2. Jeżeli jest duża ilość graczy, to jeżeli wykonasz zadanie CRONem jeden raz na godzinę i masz 1000 zarejestrowanych graczy, to masz: 24 x 1 x 3 x 1000 = 72000 dodatkowych zapytań do bazy danych.
3. Jeżeli gracz nie będzie się logował przez kilka dni (np.: 5), to zostanie wykonane niepotrzebnie 24 x 5 x 3= 360 zapytań do bazy danych.

Oczywiście, to tylko moje przemyślenia, bo ja staram się wyeliminować niepotrzebne operacje na bazie danych (ogranicza to obciążenie bazy danych), co przyśpiesza pracę z bazą danych.