Tworzenie gier - jak się je tworzy? Od czego zacząć?

0

Od nie dawna uczę się programować trochę w javie, trochę w c++. Na razie wszystko idzie łatwo, bez większych problemów.
Jednego nie mogę pojąć jak się tworzy gry tzn. nie chodzi tu o to jak tworzyć jakieś silniki do gier, biblioteki bo to pewnie materiał na książkę.
Szukałem w google, czytałem i nadal nie rozumiem tego procesu do końca, więc mam parę pytań:

W jaki sposób można napisać grę tzn. wiem, że są biblioteki graficzne jak i silniki do gier. Od czego powinienem zacząć ?
Czym różni się pisanie gier na przykład używając allegro,open gl a silniku np. unity 3D ?
Czy z biblioteką graficzną Open GL ES jestem w stanie napisać dobrą grę pod Androida (bo to mnie bardziej interesuje/jeśli ktoś się na tym zna) na miarę gier Rovio znanych z min. Angry Birds (oczywiście w późniejszym etapie nauki Open GL ES) czy może powinienem użyć jakiegoś silnika do gier ?

Główny problem polega na tym, że chcę zacząć pisać gry pod androida, a nie wiem od czego zacząć.
Dotąd napisałem prostą grę za pomocą biblioteki allegro i poruszający się button na androidzie za pomocą innych buttonów, lecz z tą wiedzą daleko nie zajdę. Chce zacząć pisać proste gry za pomocą popularnych bibliotek albo silników, a żeby pisać później w nich coś lepszego.

Przepraszam jeszcze, że moje wypowiedzi mogą być nie spójne i "zagmatwane", lecz problem jaki posiadam jeśli chodzi o pisanie gier jest trudny do opisania. Pewnie będę miał jeszcze jakieś pytania, więc je później dopiszę.

0

W jaki sposób można napisać grę tzn. wiem, że są biblioteki graficzne jak i silniki do gier. Od czego powinienem zacząć ?
Moim zdaniem od biblioteki graficznej.

Czym różni się pisanie gier na przykład używając allegro,open gl a silniku np. unity 3D ?
Alegro to prosta biblioteka do grafiki a OpenGL to zbiór funkcji rysujących w przestrzeni trójwymiarowej.
A silnik ma funkcje wczytujące modele, obrazy, tekstury, operuje na macierzach, posiada kolizje i proste AI obudowane w GUI.

Czy z biblioteką graficzną Open GL ES jestem w stanie napisać dobrą grę pod Androida (bo to mnie bardziej interesuje/jeśli ktoś się na tym zna) na miarę gier Rovio znanych z min. Angry Birds (oczywiście w późniejszym etapie nauki Open GL ES) czy może powinienem użyć jakiegoś silnika do gier ?
Moim zdaniem użyj OpenGL ES.

Główny problem polega na tym, że chcę zacząć pisać gry pod androida, a nie wiem od czego zacząć.
Dotąd napisałem prostą grę za pomocą biblioteki allegro i poruszający się button na androidzie za pomocą innych buttonów, lecz z tą wiedzą daleko nie zajdę. Chce zacząć pisać proste gry za pomocą popularnych bibliotek albo silników, a żeby pisać później w nich coś lepszego.
Zacznij od biblioteki graficznej - OpenGL ES.

1

Wielkie dzięki pomogło, wezmę się za OpenGL ES, tylko jeszcze jedno. Czy mogę czytać artykuły/kursy/książki o OpenGL i potem bez większych problemów przerzucić się na OpenGL ES tzn. Czy jest to dokładnie to samo (składnia itp.) i tylko różni się to tym, iż OpenGL ES jest stworzony z myślą o androidzie, a OpenGL o aplikacjach na windowsa. Są to dokładnie te same "zbiory funkcji rysujących w przestrzeni trójwymiarowej" ?

0

Czy mogę czytać artykuły/kursy/książki o OpenGL i potem bez większych problemów przerzucić się na OpenGL ES
OpenGL ES (Embedded Systems) to okrojona wersja OpenGL. Istnieje wiele różnic pomiędzy nimi - na przykład, nie ma glBegin lub glEnd.
Tutaj jest to ogólnie opisane: http://wiki.maemo.org/OpenGL-ES

OpenGL ES jest stworzony z myślą o androidzie, a OpenGL o aplikacjach na windowsa.
OpenGL ES jest zaprojektowany dla urządzeń mobilnych typu telefony komórkowe, palmtopy i konsole do gier, to oficjalne API dla grafiki 3D w systemach Symbian, Android i iOS.
Natomiast OpenGL to specyfikacja uniwersalnego API do generowania grafiki tzn że jest przenośne a nie pisane z myślą "o aplikacjach na windowsa".

0

Dobra dzięki już wiem co robić, biorę się do roboty mam teraz trochę lektury.

1

Skoro chcesz pisać gry, to może lepiej użyj do tego silnika (nie tylko graficznego) zamiast (na początku) dłubać w OpenGL. W skrócie, chcesz pisać gry, to zamiast pisać api pozwalające stworzyć grę, lepiej poświęcić zapał na pisanie samej gry, nieprawdaż? Później (o ile w między czasie nie zmienisz zdania na temat pisania gier...) i tak będziesz zmuszony sięgnąć do samego OpenGL...ale branie tego na pierwszy ogień wydaje się być dziwnym pomysłem.
Teraz, jaki engine wybrać....mogę polecić Ci tylko 1, z którym miałem kontakt Cocos2d-x. Cocos jest wieloplatformowym silnikiem do gier 2d, pozwala na prostą kompilację pod różne platformy (nie tylko android). Cocos dzieli się bodajże na 2 frameworki: natywny C++-owy i jakiś webowy. Sam cocos zbudowany jest właśnie na OpenGLu. Po więcej informacji odsyłam tutaj: http://www.cocos2d-x.org/

1

Napisanie sensownej rzeczy w OGL (na desktopy) zajmuje kolo roku nauki. Jesli chcesz tworzyc zarzadzanie grafika przez tyle czasu, nie widzac praktycznie zadnych efektow pracy, to okej. Ja jednak polecam jak kolega wyzej zaczac od gotowcow, powoli sie uczac wszystkich tych zawilosci.

0

Rok... no to może zmienię zdanie. Po drugie, też za bardzo nie rozumiem, czemu ma służyć OpenGL po za tworzeniem grafiki trójwymiarowej.
EDIT:
Ale nie wiem czy dobrze rozumiem z powyższych wypowiedzi "OpenGL służy do pisania api" oznacza, że za pomocą OpenGL tworzy się na przykład taki silnik ? Bo chyba dokładnie tej wiedzy mi brakowało. Tzn. Za pomocą OpenGL tworzę wczytywanie tekstur animacje grafikę,renderowanie buffory. Za pomocą jeszcze innych bibliotek audio, sterowanie. I łącze to w silnik ?
Wiem, że to pytanie może być śmieszne/kompletnie mijające się z prawdą, ale muszę zrozumieć do czego to dokładnie służy i może wtedy wybiorę od czego zacznę.

0

No mniej więcej tak. Za pomocą OpenGL możesz napisać swój silnik graficzny a później używając tego silnika możesz napisać grę. Przy czym na napisanie dobrego silnika graficznego trochę Ci zejdzie :P (fizyka, efekty cząstek, mgła, wczytywanie tekstur itp).

0

OpenGL to po prostu biblioteka graficzna. Poziom abstrakcji tej biblioteki jest dość niski przez co zbudowanie bardziej złożonej sceny wymaga dużego nakładu w postaci kodu. Jeśli chciałbyś pisać grę bezpośrednio w OpenGL, to musiałbyś zdefiniować sobie pewne api , które wykorzystałbyś pisząc już samą grę. Silnik graficzny udostępnia Tobie już takie api (o wiele bardziej rozbudowane i na pewno bardziej skalowalne).

0

znacza, że za pomocą OpenGL tworzy się na przykład taki silnik

Na silnik składa się wiele elementów, poruszane to było w tym temacie:
Programowanie gier/silników
w pdf (http://www.cse.chalmers.se/edu/year/2012/course/TDA361/Designing%20a%20PC%20Game%20Engine.pdf) masz przykładowy schemat.
W uproszczeniu - OpenGL może być częścią silnika, ale nie musi - może być to równie dobrze DirectX, lub oba te silniki (jeżeli np. chcemy aby silnik był wieloplatformowy).
Również polecam Ci wybór już istniejącego silnika i naukę jego obsługi. Zanim jednak zaczniesz - możesz się wprawić np. w takim XNA (co prawda to już trup, ale na necie jest mnóstwo tutoriali) - małym nakładem możesz napisać prostą grę 2d lub 3d. Poznasz dzięki temu podstawowe pojęcia związane z programowaniem gier. Jak chcesz zajrzyj np. tutaj:
http://channel9.msdn.com/Series/Kurs-tworzenia-gier-w-XNA

0

Ok dzięki teraz już wiem na jakiej zasadzie to działa pobawię się trochę tym silnikiem "Cocos2d-x", bo nadal interesuje mnie tworzenie gier pod androida, jednocześnie będę uczył się o OpenGL lub OpenGL ES

0

OpenGL do rysowania po ekranie i operowania na macierzach.
Do obsługi okna, myszy, klawiatury może być GLUT.
Do ładowania plików graficznych np: DevIL
Do dźwięku OpenAL.

Mówię tu o aplikacjach deskopowych bo nie wiem jak to jest z OpenGL ES.

1

Jeszcze napomkne, ze jak chcesz zobaczyc jak jest zbudowana gra, w ktora faktycznie ludzie graja (grali w wiekszej liczbie przypadkow), to polecam blog Fabiena: http://fabiensanglard.net/.

Jest tam sporo code reviewow z przedstawieniem architektury danej gry (wszystko w formie milej dla oka ;P).

0

Dobra dziękuję wszystkim, widzę ze sporo lektury przede mną. Na pewno skorzystam ze stron, które podaliście, dowiem się może dzięki temu czegoś więcej na temat procesu tworzenia gry.

0

Ja się dołączam do podziękowań bo sam chce stworzyć własną grę. Na razie pracuję nad rozgrzewkowym projektem którego źródła w wersji prepreprealfa 0.0.0.0.0.0.1 można znaleźć na forum.

1 użytkowników online, w tym zalogowanych: 0, gości: 1