Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zwiększanie wartości w bazie wg. czasu
Luke_Star
post 13.01.2007, 12:06:15
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


Ostatnio zzzacząłem grać w Ogame.pl i oczywiscie chyba jak kazdy programista zacząłem analizowac jak to działa. Najbardzije zastanowiła mnie kwestia zwiększania liczby surowców co sekunde. Myślałem że może dałoby sie wykonac taki skrypt przez AJAX'a, tylko jak to miałoby sie do bezpieczeństwa strony. Następnie zastanawiałem sie nad CRON'em ale to byłoby niezbyt delikatne rozwiązanie. Dlatego bardzo mnie męczy jak programiści GameForge poradzili sobie z dynamicznym zwiększaniem liczby surowca dla kilku tysiecy użytkowników naraz nie tracąc przy tym na bezpieczenstwie.


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
dr_bonzo
post 13.01.2007, 13:03:16
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


A moze baza posiada swoj licznik zwiekszany do kilka minut, ew. przeliczany w momencie zakupu budowli z dokladnosci co do sekundy, a u usera jest tylko 'dummy counter', naliczajacy surowne z podobna predkoscia ale nie majacy zadnego wplywu na gre.

Powiedzmy surowce sa naliczane co godzine. Wlasnie teraz. Po 10ciu sekundach kupujesz Costam. Baza nalicza ci surowcow za 10sekund = X i sprawdza czy mozesz kupic, itd. A w ciagu tych 10sekund licznik u usera wzrosl o X. Tylko to komplikuje sprawe przy cogodzinnym updacie bazy -- bo czesci userom juz zostala naliczona pewna ilosc surowca. Ale 50 nowych if() ow powinno wystarczyc smile.gif

Tylko zgaduje bo nie sprawdzalem.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Luke_Star
post 13.01.2007, 17:36:53
Post #3





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


Cytat(dr_bonzo @ 13.01.2007, 13:03:16 ) *
A moze baza posiada swoj licznik zwiekszany do kilka minut, ew. przeliczany w momencie zakupu budowli z dokladnosci co do sekundy, a u usera jest tylko 'dummy counter', naliczajacy surowne z podobna predkoscia ale nie majacy zadnego wplywu na gre.


Tylko że problem polega na tym że baz amsuiałaby sie edytowac co sekunde a tym samym zwiekszac wartość na podstawie np wydobycia. A w takim wypadku baza nei za bardzo wystarczy. To strasznie skomplikowane :/


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
misiek172
post 13.01.2007, 18:14:13
Post #4





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


mi się wydaje, że to napewno CRON


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
Luke_Star
post 13.01.2007, 18:21:27
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


Zdaje sie że CRON nie daje aż tak prędkiego odswieżania, po drugie to dość ostre rozwiązanie


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
dr_bonzo
post 13.01.2007, 18:22:18
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
Tylko że problem polega na tym że baz amsuiałaby sie edytowac co sekunde a tym samym zwiekszac

Luke_Star: wlasnie pisalem o tym ze tak nie musi byc.
CHodzilo i o to ze normalnie wylicza sie wszystko np. raz na godzine a gdy user cos kupuje to na bierzaco wylicza sie tylko dla niego.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Luke_Star
post 13.01.2007, 18:51:39
Post #7





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


Chyba juz rozumiem o co ci chodzi smile.gif


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
andrzejb
post 15.01.2007, 00:25:40
Post #8





Grupa: Zarejestrowani
Postów: 93
Pomógł: 1
Dołączył: 12.08.2005

Ostrzeżenie: (10%)
X----


1.
zainicjowanie zmiennych produktow
kola prince 10 | datetime set now()
hamburger price 10 | datetime set now()
2.
minela 1, 2 , 200 , 1000 sekund odswiezenie strony
kola set price now()-kola.datetime*premia | update datetime set now()
hamburger set price set now()-hamburger.datetime*premia | update date...

Ten post edytował andrzejb 15.01.2007, 00:27:44


--------------------
web lowcy.com.pl gg 1675677
Go to the top of the page
+Quote Post

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: 19.07.2025 - 15:30