• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Poradnik] Gamedev - jak zacząć?

VPS Starter Arubacloud
+7 głosów
3,718 wizyt
pytanie zadane 12 lipca 2016 w Nasze poradniki przez niezalogowany
edycja 12 lipca 2016

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:

  1. [cpp0x] solidne podstawy do ogólnego programowania
  2. [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:

  1. (PL) [warsztatowe poradniki]
  2. (PL) autoreklama: [zbiór artów o gamedevie]
  3. [całkiem fajne tuty z pisania gier od 0]
  4. [kanał poświęcony tworzeniu gier]

Jeżeli macie jakieś uwagi to zapraszam do komentarzy poniżej

komentarz 12 lipca 2016 przez niezalogowany
Jeśli ktoś chce tworzyć gry 2D, a najlepszą opcją się wydaje raczej SFML (jeśli chodzi o takie biblioteki graficzne), to dlaczego by nie zostawać przy nim dłużej? Oprócz przejścia na silniki (co jednak jest raczej głupie, bo na co komu wielki silnik, na mała grę 2D) czy coś w stylu GameMaker'a, to jednak nie widzę szczególnie lepszej opcji :)

PS: w tytule zamiast "[Poradnik]", jest "[Podanik]" ;)
komentarz 13 lipca 2016 przez niezalogowany
@filipeczek

Dlaczego SFML jest tylko na chwilę? Bo w gruncie rzeczy nie jest ani czymś mega rozbudowanym, że faktycznie pomaga w większych projektach, ani nie jest na tyle niskopoziomowy aby można było faktycznie fajnie się nim pobawić i zrobić coś np mega wydajnie. Niby można używać części funkcjonalności ogl, ale użyta tam wersja jest dość stara.

Może nie zaznaczyłem tego odpowiednio jasno, ale do małych gier zaleciłem liby pokroju SDL, bo tutaj masz rację: Unity użyte do napisania snake'a to overkill.
komentarz 14 lipca 2016 przez niezalogowany
No, można by to zaliczyć do robienia małych gierek, ale na pewno można by zrobić w tym coś fajnego, ale albo trzeba być bardzo dobrym programistom, żeby zrobić tam coś więcej (super przykład: https://www.youtube.com/watch?v=LrEvoKI07Ww oraz inne filmy z kanału "Muzkaw"), albo użyć jeszcze jakieś inne zewnętrzne biblioteki.
komentarz 14 lipca 2016 przez niezalogowany

programistą, a nie programistom

Tylko że te fajniejsze rzeczy to zejście do programowania niskopoziomowego, bliżej karty graficznej

komentarz 14 lipca 2016 przez niezalogowany
No, w sumie tak, przepraszam za błąd (żatko je robie ;)).

No, to już jest wyższy poziom programowania, coś mi się wydaje (w sumie to niższy).
komentarz 14 lipca 2016 przez niezalogowany

przepraszam za błąd (żatko je robie ;)).

A nie "rzadko"?

komentarz 14 lipca 2016 przez niezalogowany

A nie "robię"? :)

1 odpowiedź

0 głosów
odpowiedź 12 lipca 2016 przez Mr. Szanowny Bywalec (2,180 p.)
Witam. chciałbym zając się tworzeniem gier na Android. Poznałem całkiem Jave i jak działa u niej oop, ale jeszcze nie myślałem jakie biblioteki używać aby przenieść się w końcu na aplikacje działające na telefonach. Słyszałem o libgdx, wydaje się całkiem rozsądny ale chciałbym wiedzieć czy ktoś może zna lepsze alternatywy na dzisiejszy dzień. Czy pakiet Swing jest narazie tym co mi wystarcza?
2
komentarz 12 lipca 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
LibGdx jest dość popularny nie sprawia dużo problemów na start. Nie ma sensu zaczynać od tego co robi masę problemów na początku gdy jest się początkującym
komentarz 13 lipca 2016 przez Mr. Szanowny Bywalec (2,180 p.)
A czy pobawić się pakietem Swing i zobaczyć jak mniej więcej działa, czy może szkoda czasu i lepiej analizować LibGdx?
2
komentarz 13 lipca 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
Nie warto bawić się swing jak już to JavaFX
komentarz 13 lipca 2016 przez Mr. Szanowny Bywalec (2,180 p.)
Jestem zielony, ale z JavaFX, czy z LibGtx będę potrzebował dodatkowe narzędzia czy aplikacje? Np. żeby podglądać widok aplikacji itp.

Inne pytanie czy JavaFX jak i LibGtx zapewniają wparcie dla urządzeń mobilnych?
1
komentarz 13 lipca 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
1 tak 2 tak
komentarz 13 lipca 2016 przez Mr. Szanowny Bywalec (2,180 p.)
Chciałbym znać twoje zdanie w sprawie jakiego z tych dwóch wybrać - JavaFX czy LibGtx dla początkującego. I jak już się zdecyduje to jakie dodatkowe rzeczy będę potrzebował i być może jakieś poradniki.
1
komentarz 13 lipca 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
Czy śmiałeś chociaż spojrzeć na Google i poczytać o przeznaczeniu tych technologii? Czy bez myślnie napisałeś ten komentarz?
komentarz 13 lipca 2016 przez Mr. Szanowny Bywalec (2,180 p.)
Patrzyłem na informacje dotyczące tych dwóch rzeczy ale gdy człowiek nie miał z tym styczności jeszcze to ciężko się rozeznać w sytuacji. Rzeczywiście bezmyślnie nadużyłem Twojej chęci pomagania i bardzo chciałbym Ciebie przeprosić. Człowiek nie może być leniwy i liczyć, że wszystko ktoś mu wytłumaczy od samego początku :)  Ale bardzo Ci dziękuję, bo bardzo mi pomogłeś. Teraz wiem za co się zabrać i w jakimi tematami się zająć.
2
komentarz 13 lipca 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
No i gitarka bo masz pokorę :)

Podobne pytania

0 głosów
3 odpowiedzi 4,669 wizyt
pytanie zadane 20 lutego 2016 w Android, Swift, Symbian przez Lolzs Nowicjusz (160 p.)
0 głosów
5 odpowiedzi 4,274 wizyt
pytanie zadane 11 lutego 2016 w C i C++ przez pjural Nowicjusz (140 p.)
0 głosów
3 odpowiedzi 9,620 wizyt
pytanie zadane 9 kwietnia 2016 w Java przez hubot Dyskutant (9,100 p.)

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...