Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Timery w grach przeglądarkowych?
Pulpetto
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 2
Dołączył: 17.02.2013

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


Hej,
zaczęło mnie zastanawiać jak zbudowane są takie gry i chodzi mi tutaj konkretnie o wszelkiego rodzaju odliczanie.
To, że jeżeli ktoś buduje budynek i wtedy idzie powiedzmy do bazy zapytanie wpisujące godzinę końca, a potem przy wyświetlaniu strony JS sobie odlicza i przeładowuje stronę i potem idzie wpis do bazy, jest dla mnie w miarę logiczne (nie wiem czy tak jest w prawdziwych grach ale takie rozwiązanie wpadło mi do głowy).
Natomiast jak to się ma do surowców?
Mamy w bazie ileś tam okularów. Produkcja to 3600 okularów na godzinę. I co teraz w przypadku gier, które dynamicznie pokazują ilość surowców (wydaje mi się, że w Ogame chyba tak było)? Jak to się odbywa? Zwykły licznik JS i...? No bo zapytania do bazy co sekunde wpisujące kolejne ilości zarżnęły by serwer...
Wie ktoś jak to jest zorganizowane?
Go to the top of the page
+Quote Post
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


JS to tylko dodatek. Pobierasz ilość surowców, zapisujesz do cache, jak musisz, odpytujesz serwer (cache np. co 10 min).


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Pulpetto
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 2
Dołączył: 17.02.2013

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


Przez Cache rozumiesz tutaj jakąś zmienną?
Czyli mam ilość surowców w bazie...
Załóżmy, że user zaczyna grę i ma 0 czegoś tam. Póki jest w grze ja trzymam surowiec w zmiennej przez cały czas działania skryptu i modyfikuję to JS i zapisuję do bazy co pewien czas lub podczas requesta o wydanie jakieś tam ilości surowców?
No bo nie rozumiem jednego: tutaj JS to tylko warstwa prezentacji (i nie jest mechanizmem liczenia tych surowców?), a gdzieś w bebechach zmieniam tak naprawdę te ilości?

Jeżeli tak to yb wychodziło na to, że:
w bazie trzymam ilość surowców,
user wchodzi ja odczytuję i trzymam w zmiennych
JS sobie operuje na tych danych - tzn widzi, że tam jakieś cyferki latają ale nie ma to nic wspólnego z realną ilością zapisaną w bazie?
jak chce gdzieś kliknąć to sprawdzam, co? czas? jak wtedy policzyć te surowce jak nie po prostu przepisać wartość którą mam gdzieś tam w JS?
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


http://forum.mmocenter.pl/f64-budowa-gry-v...yrost-4788.html

Dobrze myślisz, po za jednym: nie możesz przepisywać wartości z JS, bo ktoś może tam wpisać co tylko chce, musisz to wyliczać na podstawie różnic czasu, wszystko masz fajnie opisane w linku wyżej.

Ten post edytował Damonsson 24.02.2013, 17:14:20
Go to the top of the page
+Quote Post
Pulpetto
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 2
Dołączył: 17.02.2013

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


Bardzo Ci dziękuję za odpowiedź smile.gif Przydało się smile.gif
Go to the top of the page
+Quote Post
!*!
post
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
Przez Cache rozumiesz tutaj jakąś zmienną?

I tak i nie. Cache takie najprostsze to plik z danymi np. zapisana tablica ze surowcami, zamiast odpytywać bazę, pobierasz zawartość pliku która jest dokładnie tym samym.

Przejrzyj też linki podane tu Temat: Gry w przegladarce można niekiedy pobrać przykłady takiego działania. Szkoda że planeta php nie działa, pamiętam że ktoś robił takie kursy tworzenia gier.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
kitka
post
Post #7





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.02.2013
Skąd: Lublin

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


Ciekawy poradnik. Mam jeszcze pyatnie o zegar. W niektórych grach przeglarkowych zmiana ustawien czasu na komputerze klienta wplywa na odliczanie w grze. jednak w większosci przypadków mimo zakonczenia odliczania(najczesciej budowy czegośtam) sama operacja nie zostaje zakonczona po stronei serwera. Wniosek z tego jest taki ze czas jaki pookazuje sie użytkownikowi jest oparty na zegarze komputera osobistego a serwer ma własny zegar i sobie wszuyystko przelicza. Moje pytanie jest takie czemu stosuje się takie rozwiazanie? Czy synchronizacja czasu z zegarem servera jest az tak trudna?
Go to the top of the page
+Quote Post
Damonsson
post
Post #8





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Trudna nie jest, a wręcz banalna, ale wyobrażasz sobie stronę, która w 1 sekundzie, musi wysłać do serwera zapytanie o czas, wyświetlić go i jeszcze sprawdzić czy jest aktualny? Przy 300 użytkownikach online, musisz to jeszcze pomnożyć razy 300. Jak wydasz 1000zł miesięcznie na jakiś dobry serwer dedykowany, wtedy można myśleć o takim rozwiązaniu smile.gif

Nikt nie zmienia sobie co godzinę czasu w komputerze, więc nie jest to żaden problem przecież.
Go to the top of the page
+Quote Post
!*!
post
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(Damonsson @ 26.02.2013, 00:41:21 ) *
Trudna nie jest, a wręcz banalna, ale wyobrażasz sobie stronę, która w 1 sekundzie, musi wysłać do serwera zapytanie o czas, wyświetlić go i jeszcze sprawdzić czy jest aktualny? Przy 300 użytkownikach online, musisz to jeszcze pomnożyć razy 300. Jak wydasz 1000zł miesięcznie na jakiś dobry serwer dedykowany, wtedy można myśleć o takim rozwiązaniu smile.gif


Chyba ze zastosuje websockets, wtedy czas jest pobierany tylko z serwera i każdy ma ten sam.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
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 Aktualny czas: 22.08.2025 - 11:32