Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: gra w php + flash
Forum PHP.pl > Forum > PHP
usb
Witam.

Php ucze sie od niedawna ale juz przynajmniej mocne podstawy znam tego jezyka. Zrobilem juz kilka ciekawych skryptow od 0 i zdaly naprawde swietnie egzamin w praktyce. Np. skrypt kontrolujacy prace pracownikow call center. I juz nikt nie przekraczal przerw od tamtej pory winksmiley.jpg

Przyszedl mi pewien pomysl na zrobienie prostej gierki z wykorzystaniem flash'a, ktorego dobrze znam (AS 2.0 w stopniu srednim), php oraz mysql do przechowywania danych. Gra cos w stylu WoWa(budowanie postaci, grinding, zdobywanie broni, pierscieni itp) Oczywiscie wygladaloby to tak ze jest mapka z lekko zaznaczonymi polami po ktorych sie porusza gracz (cos ala szachy w wielkim wydaniu) Walki narazie bez zbednych animacji raczej wiadomosci tekstowe pokazujace ile obrazen zadalismy, krytyczne ciosy, nietrafienia itp. Wszystko oczywiscie na bazie statystyk gracza, moba, ktore skladaja sie na posiadane przedmioty, skile itp. Po wyjsciu z gry oczywiscie stan postaci oraz jego lokalizacja bylaby zapisywana.

Wczesniej laczylem juz flasha z php ale raczej to nie byly gry ale z reguly jak mam jakis pomysl to zanim zaczne cos pisac wszystko ukladam sobie w glowie i zastanawiam sie nad kodem czy podolam. Mysle ze jest to wykonywalne ale chcialem sie zapytac czy ktos mial doswiadczenie z laczeniem flasha z php i czy ta kombinacja bedzie dobra?
aiv
Wszystko zależy od wybranej technologii łączenia obu języków. W przypadku gier musisz brać pod uwagę dwie rzeczy:
- szybkość
- bezpieczeństwo

Szybkość wiadomo po co. Jeżeli mówimy o walkach itp to gracz nie może czekać, aż serwer mu odpowie.
Bezpieczeństwo to temat który często jest gwoździem do trumny gier sieciowych. Musisz tak przesyłać dane żeby mieć 100% pewność ich integralności. Wszystkie obliczenia muszą być wykonywane tylko i wyłącznie na serwerze.

Biorąc powyższe pod uwagę, PHP oparte o HTTP może nie zdać egzaminu.
Jeżeli planujesz sukces swojej gry (a chyba każdy tak zakłada tworząc coś nowego) musisz wziąć pod uwagę duże wykorzystanie serwera. Jeżeli koniecznie chcesz napisać coś w PHP to mógłbyś napisać serwer swojej gry oparty o porty tcp/udp. Wydajność nie będzie tak duża jak serwer napisany w C/C++ ale na początek pewnie wystarczy.
usb
Jezeli bedzie ktos gral w ta gre to pewnie ja i kilku moich znajomych:) Wiec przeciazenia zbytnio nie bedzie. Sama walka bedzie sie toczyla na zasadzie tur, cos jak w herosach smile.gif W przypadku nie wykonania ruchu w ciagu 30 sek (np. atak, obrona, ucieczka, skile, czary) to traci sie kolejke. Bardziej zastanawiam sie od strony bezpieczenstwa i spojnosci. Ja to widze tak: Animacja flash wysyla zmienna ze np. ktos zrobil jakis ruch ruch czy cokolowiek innego, php to oblicza korzystajac ze statystyk poszczegolnego gracza wyciagajac to z bazy danych - wszystko po stronie serwera a sam wynik idzie spowrotem do filmu flasha pokazujac zadane ciosy, ubywajace zycie bedace odzwierciedleniem wyniku zapisanego w bazie danych odnosnie ile zycia zostalo czy tez ile many zuzyto smile.gif
aiv
Jeżeli zrobisz to na bazie HTTP to to będzie strasznie wolno działać. Nie wiem co na to serwer na którym będziesz chciał to odpalać, ale po zakończeniu odbierania danych z serwera HTTP następuje rozłączenie. Wygodniej było by napisać jakiś prosty serwer TCP i malutki protokolik na potrzeby gry.
usb
no zobaczymy, poki co place za serwer to wymagam smile.gif Jak bedzie rzeczywiscie zrywac to wtedy pomysle. Poki co zastanawiam sie i juz doczekac sie nie moge jak zaczne kod pisac i czy to zda egzamin. Na poczatku cos prostego zrobie zeby zobaczyc jak hula komunikacja miedzy flashem a php.

Zastanawiam sie jak zrobic ruch. Widze to tak: zawodnik klika na pole xx-xx flash ta informacje przekazuje, php wyciaga z bazy info gdzie teraz jest i oblicza ile jest pol do xx-xx (np. 3 pola) w zaleznosci od statystyk zajmie mu to ok 10 min i wysyla info do flasha i wtedy po 10 min przeskakuje flash na klatke w filmie odpowiedzialna za przekazanie zmiennej do php i wtedy php zapisuje biezaca pozycje do bazy itc. W przypadku gdy ktos zamknie strone, badz odswiezy to ruch zostanie anulowany bo w bazie bedzie pierwotna pozycja, nie zmieniona przez kluczowa klatke po 10 min. Walka bedzie nieco prostrza bo w przypadku walki zostana porownane statystyki obu graczy badz moba z graczem i na podstawie tur zadawane akcje i obliczenia beda zalezaly od statow, od broni, rasy czy klasy postaci.
aiv
Zainteresuj sie takimi tematami:
- flex zamiast AS 2.0
- istnieja metody injectowania kodu AS do Flasha. Moze to byc pomocne
usb
ok dzieki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.