Jeżeli jesteś nowy w gamdevie to polecam rzucić okiem na ten art gdzie postaram się odpowiedzieć na najczęściej zadawane pytania jeżeli chodzi o gamedev.
Chcę napisać grę od czego zacząć?
Jeżeli nie umiesz programować, to musisz zacząć od nauki programowania, osobiście polecam kursy:
- [cpp0x] solidne podstawy do ogólnego programowania
- [Megatutorial Xion'a] nieco stary, ale bardzo solidny poradnik nastawiony także na programowanie gier
Pamiętaj, że to co widzisz powyżej zapewni ci jedynie minimum tego co musisz wiedzieć, musisz być otwarty na ciągłe doszkalanie się i szlifowanie swoich umiejętności.
Jeżeli umiesz programować na poziomie chociaż tym podstawowym to możesz przystąpić do pisania swojej pierwszej prostej gry.
Pierwsza gra - jak powinna wyglądać?
Pierwsza gra powinna być prosta, zapomnij o tym że to będzie gra 3D, zapomnij o grze multiplayer (sieciowym), nie będzie to też gra RPG. W mojej opinii gra nie powinna być dużo bardziej skomplikowana niż Mario.
Pisanie gier wymaga nieco innego sposobu podejścia do problemu, z jednej strony gamedev wymaga innego podejścia do problemu i jest dość wymagający, z drugiej strony potrafi wiele wybaczyć. To przestawienie się z "normalnego" kodzenia, bywa trudne: napotkasz tutaj na problemy specyficzne wyłącznie dla gamedevu - i właśnie dlatego należy zacząć od czegoś co ma bardzo proste założenia, stosunkowo łatwe do zrealizowania.
Jaki wybrać silnik/bibliotekę do napisania gier?
Pierwszym pytaniem, na które warto odpowiedzieć to: na jakie platformy chciałbyś pisać swoje gry?
Jeżeli wybierzesz platformy mobilne to na Twoim miejscu poszukałbym silników związanych bezpośrednio z platformami (a także językami), na które chcesz wydać grę: Android (Java), iOS (Objective C, Swift). Tutaj możesz się ze mną nie zgodzić: przecież są silniki (np Unity), które pozwalają wydać grę na wiele platform bez zmiany ani jednej linii kodu. Faktycznie - istnieją takie rozwiązania, ale w moim odczuciu nie są idealne i jako gracz wolałbym zainstalować grę niekorzystającą z np NDK w przypadku Androida, bo najpewniej tłumaczenie kodu z innego języka nie będzie idealne, a co za tym idzie możemy otrzymać gorszą wydajność -> krótszy czas działania telefonu na baterii. Osobiście nie polecam, ale należy pamiętać że takie rozwiązania istnieją i może dla Ciebie będą satysfakcjonujące.
W przypadku platformy PC, mogę się nieco więcej wypowiedzieć. Jeżeli lubisz programowanie względnie niskopoziomowe (C), to z czystym sumieniem mogę polecić [SDL], które służy do pisania gier 2D. Jeżeli wolisz programowanie obiektowe (i stricte C++), to fajną opcją wydaje się [SFML], jednak tutaj nie radziłbym zostawać na dłużej, jest to całkiem fajna biblioteka.
Jednakże gry PC to głównie 3D, więc warto się zastanowić czy nie lepiej byłoby zacząć od przystępnego silnika umożliwiającego pisanie gier 2D oraz 3D, mam tu oczywiście na myśli [Unity3D] (C#), oprócz tego z darmowych silników 3D jest jeszcze [UnrealEngine 4] (C++) ale go nie nazwałbym łatwym (dla osób nie mających wcześniej styczności z gamedevem).
Wybrałem bibliotekę/silnik - jak zacząć?
Na oficjalnych stronach wymienionych przeze mnie technologii są bardzo fajne tutoriale + przyjazna dokumentacja + przykłady (wyjątkiem jest SDL: [fajny tut]), także jedyne co musisz zrobić to zanurzyć się w nich, nieco poczytać i możesz zabrać się za pisanie swojej pierwszej gry!
Podsumowanie, lektura dodatkowa
Chciałbym zauważyć, że o każdym z tych akapitów może służyć za temat do całkiem sporych artykułów, także ten poradnik należy traktować jako zebranie tylko tych najbardziej istotnych informacji.
Zachęcam do poczytania przynajmniej paru artów (lub rzuceniem okiem na serwisy) z listy poniżej:
- (PL) [warsztatowe poradniki]
- (PL) autoreklama: [zbiór artów o gamedevie]
- [całkiem fajne tuty z pisania gier od 0]
- [kanał poświęcony tworzeniu gier]
Jeżeli macie jakieś uwagi to zapraszam do komentarzy poniżej