System walk turowych do gry


(Keab99) #1

Chodzi o taki system walk jak w grach typu Final Fantasy oraz http://www.unovarpg.com/login.php .Można to napisać we Flashu lub JS i to w sumie jako tako da radę zrobić, ale mam problem z tym, żeby każdy z graczy otrzymywał aktualny stan walki, czyli ile przeciwnikowi zostało HP itd. Bardzo proszę o porady.


(pain3hp) #2

JS wystarczy. robisz ataki interwałem np 2 sekundy z tym że jeden puszczasz 1 sekundę później, wtedy masz atak co sekundę. Wyświetlanie ataków,hp itd to zwykła modyfikacja html korzystając z DOM, jQuery wiele ułatwi. Oczywiście sprawę komplikują animacje i ile takie planujesz zrobić, dopiero wtedy zastanawiałbym się nad flashem...


(kostek135) #3

Jakbyś nie zrozumiał tego co napisał @pain3hp , to ja mam taki pomysł.

Na serwerze (plik, baza, etc.) przechowujesz zmienne które są odpowiedzialne za stan. Następnie wykorzystując ajax, wysyłasz co jakiś krótki czas żądanie o to czy coś się zmieniło w rozgrywce. Jeśli sie zmieniło odpowiednio reagujesz na to na podstawie zebranych danych. Problemem jest to, że przeglądarka to typowy klient. Serwer nie może od tak nic do niej wysłać (może, ale ponieważ nie było żądania to ona te dane zignoruje). I tu się rodzi pytanie, czy nie lepiej napisać aplikację, która będzie mogła odbierać dane wysłane przez serwer bez żądania, dzięki temu zamiast co i rusz odpytywać serwer, wątek kliencki będzie czekał, aż dostanie dane od serwera.


(Keab99) #4

A samo JS w żadnym wypadku nie wystarczy? Bo JQuery i AJAX słabo znam.


(pain3hp) #5

Przeczytaj jeszcze raz to co napisałem. Pierwsze zdanie.

-- Dodane 17.02.2012 (Pt) 20:49 --

@kostek135, Wynik rozgrywki (lub jego część, gdy gracz ma podejmować operacje taktyczne w trakcie walki na przykład) można by ustalić z góry i przesyłać do klienta w postaci jakiegoś abstrakcyjnego sposobu komunikacji. A resztą powinna się zająć przeglądarka która wyssa zasoby z komputera gracza a nie z serwera, to znacznie odciąży serwer. O ile mówimy o popularnej grze a nie o jednoosobowym pokazie :stuck_out_tongue:


(kostek135) #6

Dobra, chyba źle zrozumiałem. Uznałem, że ta gra ma mieć możliwość player vs player (a raczej dopowiedziałem sobie). Gdzie nie możemy założyć z góry schematu taktyki. W przeciwnym przypadku, gdy mamy jakiś zbiór akcji gracza {p} i zbiór taktyk komputerowego gracza {k}, oczywiście można dostosować algorytmy, by one odpowiadały na daną taktykę i wszystko na raz przesłać do klienta, wtedy wystarczy JS. Ale w p v p gracz może podjąć inną decyzję i musimy wiedzieć jaką, wtedy chyba trzeba już odpytać serwer w tym celu, by odesłać to do drugiego gracza.


(Drobok) #7

Korzystając z js umożliwiasz modyfikację klienta, przez co gra nie jest możliwa (hax na haxie) :slight_smile:

Mając serwer mógłbyś odfiltrowywać zapytania niezgodne / sprawdzać kod klienta, ale bardzo go to obciąży :slight_smile: Dlatego minimum to flash, gdzie modyfikacje są trudniejsze :slight_smile:


(Keab99) #8

No tak, zapomniałem dodać, że gra będzie via www a ten system walki właśnie do player vs player, bo do walki z potworami już mamy gotowy.