Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> "profesionalne" stworzenie większej gry., Czy jest sens -> w czym -> jak
Adi32
post
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Meritum to 3 pytania zawarte w podtytule.

Od jakiegoś czasu w wolnych chwilach robię proste gierki w JS.
Czasami jak mi się nudzi lubię pograć w jakąś strategie.

Niestety żadna z gier w jakie grałem nie była "idealna", zawsze czegoś brakuje, zawsze mam wrażenie, że zrobiłbym coś lepiej itd...

Rozplanowałem punktowo gierkę którą chciałbym zrobić. Ciężko opisać jaka miałaby być ale byłoby to coś podobnego co "Master of The Secret Sea" (online, dobrze zaczęta, szybko się nudzi) jednak o wiele bardziej rozwinięte. Większy świat, więcej możliwości itp.

Zdaje sobie sprawę, że aby nauczyć się robić cokolwiek w tym kierunku potrzeba wiele czasu.

Kiedyś w podobny sposób postanowiłem nauczyć się PHP, aby zrobić sobie stronę i teraz pracuje w tym fachu także myślę, że jakieś szanse mam.

1. Jak jest lepiej (łatwiej, szybciej itp.) robić taką grę pod przeglądarkę, czy pod windows?
2. W jakiej technologii?
3. Do tej pory wszystko co robiłem polegało na tym, że ruszamy elementem na stronie i coś tam robimy. A teraz chodzi o coś takiego gdzie element jest na środku a otoczenie się rusza... To jest dla mnie jak na razie największą zagadką...

Ten post edytował Adi32 3.09.2012, 14:06:46
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%)
-----


1. szybciej jest w tym w czym czujesz się mocniejszy
2. patrz wyżej, choć jeśli wybierzesz w przeglądarce, to oczywiste że HTML5 i tagi z niego, canvas, audio, video, websockets (lub ajax long polly).
3. musisz stworzyć tzw. strefę buforową czyli zakładając najprymitywniejszy wariant:

  1. <div id="world">
  2. <div id="buffor">
  3. <div id="player">player</div>
  4. </div>
  5. </div>


#world - wiadomo, generowana mapa, drzewa, krzaki, morze i inne pierdoły
#buffor - to właśnie osobny sektor w którym znajduje się gracz, poruszasz i/lub tylko nim we wszystkich kierunkach, obliczając to na podstawie rozmiarów #world. Taka strefa może pełnić też i nawet powinna inne założenia, jak ukrywanie tego czego nie widać (po co zajmować pamięć przeglądarki), możesz stworzyć w nim efekt FoW(fog of war) i wiele innych... takich stref może być więcej, w zależności od rozbudowania...
#palyer - nic innego jak postać w grze, z reguły sprite poruszający się wedle kierunku jaki obraliśmy, zawiera animacje i jest statyczny (choć nie musi, bo może przesuwać się względem bufora np. gdy skończy się mapa, aby przejść do końca planszy.
Go to the top of the page
+Quote Post
Adi32
post
Post #3





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


!*! byłem pewien, że jeżeli zabierzesz głos w tym temacie to napiszesz "nie ma sensu", a tu miłe zaskoczenie (IMG:style_emoticons/default/smile.gif)
Wydaje mi się, że wybiorę przeglądarkę. Na pewno będzie to dla mnie łatwiejsze.

Jednak dalej - nie wiem nic o profesjonalnym stworzeniu czegoś takiego, inaczej mówiąc byłbym w stanie zrobić w JS ale nie miałoby to nic wspólnego z profesjonalizmem.
Dzięki za info o strefie buforowej, wiele mi to rozjaśnia jednak nie wiem nic o zastosowaniu tego...
Go to the top of the page
+Quote Post
!*!
post
Post #4





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

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


I jeszcze jedna rzecz, musisz się zastanowić jak to napisać ,tzn. chodzi mi o to jak chcesz stworzyć świat gry, jakim sposobem.
Kiedyś szukałem podobnych rzeczy, znalazłem http://jgen.googlecode.com/svn/branches/ma...itor/index.html jednak było to tak ubogie i nie działało w każdej przeglądarce, a autor porzucił prace, więc napisałem własny silnik z edytorem który pozwala mi tworzyć gry podobne do warcrafta2, openttd czy fallout2 jednak z braku czasu i większej ilości gotówki zbyt wolno powstaje chociażby demo (IMG:style_emoticons/default/wink.gif)
Akurat w tym przypadku wybrałem tworzenie map tradycyjne na div, img... canvas do tego typu rzeczy mimo iż "nowszy" jest zbyt powolny przy dużych ilościach, używam go tylko do efektów np. ognia, dymu czy wody.

Wspomniana strefa buforowa... może to Ci naświetli http://gamequeryjs.com/documentation/first...utorial-step-1/ chodzi o to że świat gry jest głównym pojemnikiem, gracz przed monitorem widzi tylko bufor, cała reszta jest nieaktywna, z chwilą poruszania się, elementy się zmieniają na widoczne (tu musisz też zaplanować system kolizji).
Go to the top of the page
+Quote Post
Adi32
post
Post #5





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Strona z tutorialem strefy buforowej to chyba to czego szukałem. Będzie na pewno bardzo przydatna.

Cytat
I jeszcze jedna rzecz, musisz się zastanowić jak to napisać ,tzn. chodzi mi o to jak chcesz stworzyć świat gry, jakim sposobem.


A jakie są?

Dodam, że gra nie będzie polegała tylko na poruszania się.
Będzie system walki (chyba podobny jak w grze którą wymieniłem bo nie mam innego pomysłu)
System handlowania, który będzie zakładał różne waluty (różne porty w różnych pseudokrajach przyjmujące różne waluty i różne przeliczniki)
i inne
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(Adi32 @ 3.09.2012, 15:58:02 ) *
A jakie są?

Tak jak napisałem, albo robisz to na div/img albo w canvas. Chyba że cała mapa byłaby jednym wielkim obrazkiem, co też nie byłoby złe, pod warunkiem że mapa byłaby bardzo mała, bo po co czekać aż załaduje się jeden wielki obrazek, jak można podzielić go na setki mniejszych (tzw. tiles) i załadują się tym sposobem szybciej.

Zaplanuj pierw całą mechanikę, to jak gra ma działać, chyba że skorzystasz z gotowego silnika. Handel, walka, życie to dodatki które i tak piszesz w fazie końcowej, całej produkcji... pierw potrzebny jest dobry silnik który to obsłuży.
Go to the top of the page
+Quote Post
Adi32
post
Post #7





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Jeden wielki obrazek definitywnie odpada.

Nie wiem czy elementy miałyby być rozłożone losowo czy na stałe, chyba bardziej na stałe ale chciałbym mieć coś w rodzaju bazy danych elementów.
W bazie zawierałyby się pozycje x y miasta, tak samo chyba wysp?

Silnik miałby być taki, aby łatwo było dodawać nowe rzeczy. Jest taki gotowy?
Go to the top of the page
+Quote Post
!*!
post
Post #8





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

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


Trudno o dobry gotowiec, szczególnie że jak piszesz coś rozbudowanego to z gotowca i tak wywalisz/przepiszesz/dopiszesz 98% rzeczy... Popatrz na jGen, masz tam przykłady działania (przejdź na stronę główną, bo podałem link do edytora tylko), napisz do autora, może robi coś nowego, ogólnie facet bardzo dobrze to zaplanował, podpatrz kod bo mechanizm sprite czy trzymania wszystkich obiektów jest dobrze pomyślany.

Jak zdecydujesz się na budowę map przy pomocy właśnie kafli, to masz wiele możliwości, od generowania bezpośrednio dokumentów html (co z czasem może być kłopotliwe), do plików XML które generują właśnie widok html, który wrzucasz w cache... Baza elementów? Tzn? chodzi o edytor? Tu nie plątałbym w to nawet bazy danych, tylko zwykły odczyt plików z katalogu, w końcu na mapie i tak nie będzie to niczym innym tylko divem/ z tłem czy samym obrazem.

Pozycja miasta x i y też możesz rozwiązać różnie... ja używam określenia w PX, jest wygodniejsze od umieszczania pozycji konkretnego elementu i chyba nawet szybsze.

Ten post edytował !*! 3.09.2012, 15:29:03
Go to the top of the page
+Quote Post
bim2
post
Post #9





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Obejrzyj sobie http://www.youtube.com/watch?v=iZ5ky19IqC0

Grą narazie zastopowana, bo to wydaje się proste. Kod silnika gry po stronie przeglądarki przepisywałem z 3 razy. Oparte całośc na obrazkach + kafelkach. Licze odleglosc klikniecie od miejsca gdzie gracz stoi i wiem w co kliknąłeś. Ogólnie masakra. Jest multi tak że widać innych graczy ale działa to jak działa. Duże problemy z wydajnością. Ja to robiłęm 3 lata a i tak dużo zostało do zrobienia.

Odradzam zabawy w takie coś ;d
Go to the top of the page
+Quote Post
!*!
post
Post #10





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

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


Cytat(bim2 @ 7.09.2012, 00:19:25 ) *
Licze odleglosc klikniecie od miejsca gdzie gracz stoi i wiem w co kliknąłeś.



Klikasz czy poruszasz strzałkami? Jak to rozwiązałeś, napisałeś własny algorytm A czy coś bardziej prostszego?
Go to the top of the page
+Quote Post
bim2
post
Post #11





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


I to i to.
Algorytm już pokazywałem tutaj na forum.
http://hernas.pl/art/5-SearchWay/

Prosta sprawa ten algorytm i wydajny niezależnie od wielkości mapy.

Gra jest uruchomiona.
Rejestracja: http://epicknight.com/Epicknight-registerForm/
Logowanie: http://epicknight.com/Epicknight-loginForm/


Ten post edytował bim2 7.09.2012, 18:47:15
Go to the top of the page
+Quote Post
Adi32
post
Post #12





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


3 lata mówisz? Ale nie siedziałeś nad tym non stop?
Jaki miałeś poziom wiedzy kiedy zaczynałeś tworzyć grę?
Na pewno nauczyłeś się czegoś ciekawego w trakcie tworzenia gierki?

Go to the top of the page
+Quote Post
bim2
post
Post #13





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


No nie cały czas. Po szkole sobie kodziłem powoli i w wakacje. Dużo nauki Javascript i Html (IMG:style_emoticons/default/smile.gif) Od strony serwera to nie za dużo. Poznanie algorytmów, obliczeń itd. Dużo pomogło w rozwoju wyobraźni i potem nie miałem problemów w szkole z czymkolwiek z matmy (IMG:style_emoticons/default/tongue.gif)

Poziom wiedzy taki że tworzyłem sobie już na zlecenie strony. Pracowałem wcześniej na 5gb bazy danych liczbowych więc z optymalizacją mysql nie miałem problemów. Zawsze się czegoś nauczysz więc warto. Jeśli masz chęci i czas.

Ja mam zamiar to dokończyć bo niewiele zostało i sprzedać komuś jako gotowy silnik gry.

Btw. To pociągło mnie do nauki Javy aby stworzyć MapEditora: http://hernas.pl/art/3-EpicknightDev/ Teraz spokojnie jak czegoś potrzebuje na potrzeby swoje to samemu sobie w Javie kodze. ;]
Go to the top of the page
+Quote Post
redeemer
post
Post #14





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Abstrahując od technologii to jeśli chodzi o sam design gry to polecam książkę "Grywalizacja" (org. "Gamification by Design: Implementing Game Mechanics in Web and Mobile Apps"). Podobno dobre też jest "The Art of Game Design: A Book of Lenses", ale jeszcze nie czytałem.
Go to the top of the page
+Quote Post
bim2
post
Post #15





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Design nie jest moją borszką. Plany były większe do tego projektu ale musiał zejśc na bok, a deign był zamówiony. Ale dzięki za polecenie, z chęcia przeczytam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
!*!
post
Post #16





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

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


Cytat(bim2 @ 7.09.2012, 19:46:24 ) *
I to i to.
Algorytm już pokazywałem tutaj na forum.
http://hernas.pl/art/5-SearchWay/

Prosta sprawa ten algorytm i wydajny niezależnie od wielkości mapy.

Gra jest uruchomiona.
Rejestracja: http://epicknight.com/Epicknight-registerForm/
Logowanie: http://epicknight.com/Epicknight-loginForm/


Nieźle, nie wyrzucaj tego z serwera tak prędko, jak znajdę czas przyjrzę się bliżej (IMG:style_emoticons/default/wink.gif)
Mi zajęło trochę ogarnięcie jak taki sam algorytm przerzucić na "widok" izometryczny... oraz jak napisać "sprite" który obraca się we wszytkich 8 kierunkach do tego.

Ten post edytował !*! 8.09.2012, 12:01:56
Go to the top of the page
+Quote Post
prowseed
post
Post #17





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

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


http://www.ludumdare.com/ - masz do inspiracji ; )
Go to the top of the page
+Quote Post
Theqos
post
Post #18





Grupa: Zarejestrowani
Postów: 49
Pomógł: 8
Dołączył: 5.12.2008

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


Cytat(Adi32 @ 3.09.2012, 15:02:40 ) *
Niestety żadna z gier w jakie grałem nie była "idealna", zawsze czegoś brakuje, zawsze mam wrażenie, że zrobiłbym coś lepiej itd...
(...) jednak o wiele bardziej rozwinięte. Większy świat, więcej możliwości itp.

Nic nie jest idealne (IMG:style_emoticons/default/tongue.gif) Muszę cię zmartwić, ale to co chcesz, czyli większe, bardziej rozwinięte, więcej... itd. to nie jest problem umiejętności tylko czasu i ilości pracy jaki trzeba na to poświęcić. Nawet programowanie to jest tylko wycinek pracy jaki byś musiał w to włożyć. Ja teraz robię dość prostą grę zręcznościową z małym zespołem, zawodowo po 8 godzin dziennie. I siedzimy nad tym już 8 miesięcy, a plan przewiduje, że do końca pozostało jeszcze 2. No i mamy trochę więcej doświadczenia niż przesuwanie elementu po ekranie (IMG:style_emoticons/default/wink.gif) Na pocieszenie powiem, że też tak zaczynałem, chciałem stworzyć lepszą grę niż w tą w którą grałem i najlepiej odrazu super MMO czy RPG (IMG:style_emoticons/default/wink.gif)

Ogólnie moje rady są takie, najpierw odpowiedź sobie na pytanie czy chcesz programować silniki do gier, czy robić gry. Jeżeli interesują cię algorytmy podziału przestrzenii, grafy, poszukiwanie ścieżki, triangulacja, symulacja płynów, AI i inne dziwne algorytmy, implementacje systemu komponentów, eventów, procesów itd. to prawdopodobnie zainteresuje cię tworzenie silnika do gier. Jak chcesz zrobić grę to polecam zacząć na przykład od moddingu, zrób questa do Skyrima i zobacz ile to roboty. Albo wykorzystaj jakiś gotowy silnik np. Unity i stwórz jakąś prostą grę od początku do końca.

Jak chcesz obejrzeć sobie kod (JS) czegoś podobnego do tego co chcesz stworyć http://browserquest.mozilla.org/ https://github.com/mozilla/BrowserQuest

Go to the top of the page
+Quote Post
!*!
post
Post #19





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

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


Cytat
Jak chcesz zrobić grę to polecam zacząć na przykład od moddingu, zrób questa do Skyrima i zobacz ile to roboty.

Albo cokolwiek co jest na silniku od ID'S, np. tech3 (quake3, ET, TCE), tech4 (q4,doom3), lub Source od valve (HL2) dobre edytory map mają te produkcje...

Theqos - co to za zręcznoścówka? Coś pod przeglądarkę, chmura czy natywne?
Go to the top of the page
+Quote Post
rzymek01
post
Post #20





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


Warto obejrzeć http://www.youtube.com/watch?v=_RRnyChxijA
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 01:32