![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Ciekawi mnie zagadnienie gier przeglądarkowych (tekstowych), a właściwie tego jak powstają (od strony technicznej). Interesuje mnie czy faktycznie do stworzenia takiej gry wykorzystany został "jedynie" PHP i jakaś baza danych czy skorzystano również z innych narzędzi (silników). Szukając informacji u wujka google mogę stwierdzić, iż powszechnie pisze się o grach przeglądarkowych jako o stercie kodu php i stosie zapytań do bazy. Innymi słowy, że nie jest to nic ponad zwykłego CMSa. Ot weryfikowalny system rejestracji, kilka formularzy i zaprzęgnięty CRON.
Wiem, że w Internecie jest mnóstwo informacji - ale w tym tona śmieci lub informacje od "speców" w stylu "PHP i MySQL styknie". Szczytem moich marzeń byłoby kilka słów od osób mających zielone pojęcie/doświadczenie w tej materii, na temat silników (np. Vallheru) i rzucenie kilku haseł, którym warto się przyjrzeć z bliska. I jeżeli ktoś stworzył takie cudo to mógłby się pochwalić ile czasu i energii w to włożył. Podzielenie się sprawdzonym (podkreślam sprawdzonym) linkiem z polskojęzyczną lub angielskojęzyczną zawartością mile widziany (IMG:style_emoticons/default/smile.gif) . |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Napisze tak... Twoje rozwiązanie już dąży w kierunku Real Time, a to na samym php jest w zasadzie niewykonalne. Tu trzeba by już kombinować pod kątem albo JAVA by uzyskać możliwość nie tylko w kierunku klient-> serwer, ale już full duplex, czyli także informacje idące w druga stronę, czyli zainicjowane przez sam serwer. Inaczej będziesz zmuszona do tworzenia czegoś w stylu AJAX ustawiony na wykonywanie się w pętli co ileś sekund. Im krótszy okres tym większy realizm, ale też mocne obciążenie serwera. Dlatego myślałbym o czymś w stylu:
plansza, grafika, animacje itp preloadowane, w miarę możliwości statyczne lub ściągane tylko w ostateczności. Sam AJAX zaś odpowiadałby za przesyłkę minimalnej ilości danych zmieniających się, czyli przykładowo ruch jednostek lub jakakolwiek akcja uchwycone w znaczniki czasu. Takie trochę pseudoturowe. Akcja miała by czas trwania jako wielokrotność okresu między odświeżeniami. W ten sposób przeciwnicy byliby częściowo uodpornieni na prędkość łącza. Tura 5-10 sekund pozwalałaby wykonać w miarę jakąś ilość rozkazów. Przy czym rozkazy z obu stron szły by nieco "na ząbki", znaczy początki/końce odświeżania wypadały by w środku tur przeciwnika, co pozwalało by odbierać przez bazę i aktualizować naprzemiennie ruchy wojsk wroga. Może zaprezentuję tok: Robię ruchy, które lecą do bazy z AJAXa, a jako zwrotka dostaję pozycję wszystkich wojsk na mapie które uległy zmianom wraz z określeniem dokąd idą lub jaką akcję wykonują. Jeśli nie robiłbym nic, to i tak co pewien okres (owe 5-10s) dostaję odświeżone informacje o działaniach. Jako że każdy ruch to wielokrotność "tury", to mogę szacować kiedy dana jednostka zakończy działanie, dojdzie na określoną pozycję (koszta ruchu i akcji), co pozwala samemu podjąć pewne działania. Przy czym zmiany te byłyby samoaktualizowalne. O co mi chodzi? Ano fakt, że jeśli jednostki obie są w tym samym czasie w ruchu względem siebie to dystans się zmienia w każdej turze co pozwala im podjąć działania względem siebie w innym niż wyliczony czas. Strzały w końcu też lecą choćby i strzał w pozycję pewną może się zakończyć chybieniem jeśli przeciwnik zszedł z linii strzału lub zwiększeniem obrażeń jeśli się zbliżył bo "idzie po naszej linii strzału". Szarża kawalerii może się zaś nadziać na nadbiegających pikinierów, przez co straty konnicy będą większe. To już pole do pomysłowości jak algorytmy walki zaimplementować (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 11:07 |