![]() |
![]() |
![]()
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% |
|
|
![]() |
![]()
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 ![]() Tylko zgaduje bo nie sprawdzalem. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 129 Pomógł: 2 Dołączył: 17.01.2005 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. 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% |
|
|
![]()
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
|
|
|
![]()
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% |
|
|
![]()
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.
|
|
|
![]()
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
![]() -------------------- Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
-------------------------------------- Portal Literacki: ( |||------- ) 30% |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 1 Dołączył: 12.08.2005 Ostrzeżenie: (10%) ![]() ![]() |
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
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:30 |