Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gra przeglądarkowa, a sposób prezentacji świata
Forum PHP.pl > Inne > Hydepark
SlimShady
Hej,

śledząc już kilka lat tematykę gier przeglądarkowych, codziennie staram się odnajdywać innowacyjne rozwiązania. Wszystko po to, by gra w sieci była znacznie ciekawsza, od takiej, którą zwykle kupujemy w empiku lub pobieramy z pirate bay'a. W dzisiejszej dobie, gdzie potężne korporacja tworzą projekty gier 3D opierające się na wodotryskowych silnikach graficznych, trudno jest w ogóle w jakimkolwiek stopniu dorównać im poprzez grę tekstową, przypominającą te z ubiegłych 30 lat. Jednym z atutów takich gier, jest społeczność. Baza ogromnej liczby ludzi, z którymi można rywalizować lub współpracować, na nie ważne jakim sprzęcie, ważne, aby był z przeglądarką i łączem sieciowym. Jednak grafiką i wodotryskami nie każdy żyję, a wciąż możemy zauważyć sporo gier, które nie tym przyciągają, lecz choćby rozwiniętą fabułą, lub po prostu czymś, czego jeszcze nie było. Ogromnym przykładem poprzedniego zdania, może być tytuł, który w ostatnim czasie narobił dużo hałasu. Mowa oczywiście o MineCraftcie, który nie ma grafiki opartej na silniku Frostbite, czy CryEngine, a jedyne co ma, to innowacyjność. I jak się okazuję, to właśnie ona jest kluczem do sukcesu. Jednak w świecie gier przeglądarkowych, nadal jesteśmy mocno ograniczeni i ta innowacyjność kurczy się do bardzo małego grona twórców. No bo, choć mamy już takie coś jak HTML5, a Java Sun i Flash istnieją nie od dziś, to jednak programista operujący zaledwie PHP i JavaScript, nie będzie 'najedzony'. Potrzeba jakiś pomysłów, by móc przedstawić świat gry w nietypowy sposób. Możliwości jest kilka, mapę można generować w technologi 3D - co w samym PHP jest raczej nie realne i nie wartę świeczki. Schodząc trochę niżej, można oprzeć ją o 2D, co jest już o wiele bardziej racjonalne. Widok z góry, lub 2D perspektywy bocznej, to dość prosta sztuka, największą przeszkodą jest jednak optymalność. Ruch postaci można wyrazić na kilka sposób, choćby za pomocą strzałek, przesuwających postać o jedną kratkę wybranego kierunku. Rozwiązanie to jest bardzo zasobożerne, wliczając w to ruch innych graczy na mapie, a takich operacji zapisu np. do bazy, byłoby co krok. Można sięgnąć do królowej nauk - matematyki, oraz wykorzystać jakieś algorytmy, jak np. dijkstra, czy a*, które dzięki nie 'co kratkowemu' chodzeniu, znacznie zoptymalizują naszą grę. Do tego można wzbogacić kod o przeróżne zabawki, cache'owanie ścieżek, procedury mysql, czy coś tam jeszcze.. Jednak cały ten szereg operacji nie wydaję się być najlepszym rozwiązaniem, procesy te to wyższa szkoła, bardzo trudne i czasochłonne rzeczy. Więc programista, który robi to co robi, z czystego hobbyzmu, a nie ma ukończonych żadnych studiów, raczej sam sobie nie poradzi.. Tak oto, pozostaję mu szukać sposobów, by praca była przez niego wykonalna, a dająca jeszcze lepszy efekt. Idąc dalej z możliwościami tworzenia świata, są jeszcze takie wynalazki jak mapy isometryczne, można zastosować technologię, którą ma np. Google Map Street View (klikanie na element drogi i 'żywe' przechodzenie w ten obszar) lecz wszystko to, mnie nie satysfakcjonuję.. A może znajdzie się ktoś taki tutaj, kto kiedykolwiek miał, lub ma jakiś ciekawy pomysł i zechcę się podzielić smile.gif zapraszam do refleksji, choć zakładam, że pewnie mało kto to przeczytał tongue.gif
!*!
Z tego co pamiętam unreal engine i quake 2 śmigają pod JS aż miło, więc te "ograniczenie" to dawno i nieprawda.
Oczywiście asm.js http://www.youtube.com/watch?v=BV32Cs_CMqo to nie to samo co sam wenGL które jeszcze kuleje, ale nie jest źle. Kwestia tego ile masz pieniędzy i co chcesz zrobić ;)

edycja:
A jak chcesz poznać tworzenie gry od środka http://forum.php.pl/index.php?showtopic=213161
SlimShady
No wiesz, jakoś słyszałem już o tym UE w JavaScript, a link do gammo jest mi dobrze znany, sam udzielam się na podobnym forum wink.gif

Jednak myślałem o czymś bardziej z godłem tej strony, coś w PHP i JavaScripcie wink.gif
!*!
Możesz napisać grę w PHP używając openGL, tylko pytanie po co, skoro są o wiele lepsze rozwiązania i bardziej wydajne. Poza tym w dobie "chmur" można odpalić w przeglądarce wszytko, chociażby GTA4 czy NFS.

Masochistów którzy łączyliby PHP z JS w tym celu, raczej nie znajdziesz smile.gif
SlimShady
wiesz, nie chodzi mi o technologię 3D, czy tworzenie drugiego NFS lub GTA. gdybym miał stworzyć taką grę, to oczywiste, że nie użyłbym PHP, ani JS.
szukałem raczej pomysłu, w jaki można by przedstawić mapę świata, pomijając 3D, tak aby było to wykonywalne bez zbędnych bibliotek i języków, w czystym PHP + ew. animację w JavaScripcie.
!*!
Było już kilka tematów o tym. Używasz canvas i ogranicza Cie jedynie wyobraźnia.
buliq
Dobrym przykładem jest nieudany projekt vimspark (link w ggogle). Niby taki innowacyjny ale widać iż jest nie wypałem (jak widzicie zalogowanych graczy np w statystykach, a w grze ich nie ma biggrin.gif)
PrinceOfPersia
Cytat
Rozwiązanie to jest bardzo zasobożerne, wliczając w to ruch innych graczy na mapie, a takich operacji zapisu np. do bazy, byłoby co krok. (...) Do tego można wzbogacić kod o przeróżne zabawki, cache'owanie ścieżek, procedury mysql, czy coś tam jeszcze.. Jednak cały ten szereg operacji nie wydaję się być najlepszym rozwiązaniem, procesy te to wyższa szkoła, bardzo trudne i czasochłonne rzeczy.

Ale mówisz teraz o massive multiplayer. Nie każda gra przeglądarkowa to MMO. Robiąc grę jednoosobową albo np. z rozgrywką turową na 2 osoby - sprawiasz, że kod PHP staje się dość uproszczony, a zadanie całkiem możliwe do wykonania. Bo odpada ci synchronizacja ruchów tysięcy graczy po stronie serwera, co byś musiał robić przy MMO.

Problemem nie jest zaprogramowanie grafiki w grach przeglądarkowych (to z powodzeniem nawet amatorzy robią od ładnych paru lat), problemem jest tryb multiplayer, szczególnie massive.

EDIT:
no i ja bym się nastawiał na to, żeby robić jak najwięcej po stronie przeglądarki (JavaScript, Flash, Java, whatever), bo jednak w PHP animacji nie zrobisz.
Spawnm
Cytat
Problemem nie jest zaprogramowanie grafiki w grach przeglądarkowych (to z powodzeniem nawet amatorzy robią od ładnych paru lat), problemem jest tryb multiplayer, szczególnie massive.

Osobiście powiedział bym że tak grafika jak i massive są problemami. Jednak aby stworzyć grywalną grę gdzie wystąpi ryzyko wielu graczy trzeba najpierw znaleźć kogoś kto zrobi atrakcyjna grafikę która się sprzeda. A to już jest problem.
!*!
Cytat(Spawnm @ 10.07.2013, 12:21:07 ) *
Jednak aby stworzyć grywalną grę gdzie wystąpi ryzyko wielu graczy trzeba najpierw znaleźć kogoś kto zrobi atrakcyjna grafikę która się sprzeda. A to już jest problem.


To jest akurat bardzo duży problem, wiem z doświadczenia. O ile agencji graficznych produkujących web design czy ulotki z plakatami na profesjonalnym poziomie (w pełnym i pozytywnym znaczeniu tego słowa) jest "kilka", to znalezienie takiej która specjalizuje się np. w modelach 3d z pełnym teksturowaniem, graniczy z cudem.
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.