Pierwsze kroki w gamedevie

projektowanie-gier
gamedev

#1

Witam
postanowiłem rozpocząć przygodę z programowaniem gier i mam kilka istotnych pytań na które trudno było mi znaleźć gdziekolwiek odpowiedź
Mianowicie od czego dokładnie rozpocząć naukę. czy powinienem wykuć najpierw cały język programowania ( planuję uczyć się c#) od deski do deski bez odniesienia w silniku? Może powinienem poznać daną część języka potrzebną mi do tworzenia w unity. A może tworzyć od razu w unity i na bieżąco ogarniać język i poznawać nowe rzeczy?
kiedyś wybrałem tę trzecią opcję i pamiętam że nie czułem się usatysfakcjonowany ani pewny w tym co robię. czułem że tylko powtarzam schematy z tutoriali i że o wszystkim zaraz zapomnę.
Dodam jeszcze że interesuje mnie głównie programowanie 2d. Głównie z powodu tego co dzieje się w większych firmach gamedevowych wewnątrz. w przyszłości planuję raczej programować samemu dla siebie lub w małej firmie co sprowadza mnie głównie do produkcji 2d. Nie stawiam obecnie programowania jako głównego źródła zarobku.
Przepraszam jeśli temat ten pojawiał się już na forum, nie mogłem takowego znaleźć.


#2

Cześć,

Proponowałbym taki flow:

  • C# konsola: naucz się swobodnie pisać ify, pętle, metody i obiekty. Używać bibliotek. Generalnie w zależności od chęci możesz zrobić jakąś grę tekstową lub pokusić się o prostego roqualike. Ucz się praktyk programistycznych ale logikę gry pisz po swojemu.

  • Jak już stworzysz grę z kilkunastoma klasami i będziesz świadomy co się w kodzie dzieje, to możesz zacząć rozglądać się za bibliotekami, dla 2D w C# masz kilka opcji:
    Godot(wsparcie dla C# dodane niedawno, w pełni darmowe)
    Unity(dużo materiałów i gotowców)
    MonoGame(Xna)
    SDL. Net
    Dwa poniższe to low-level biblioteki jak chcesz mieć dużą kontrolę prawie nad wszystkim :slight_smile:
    Cokolwiek wybierzesz, zacznij od tworzenia prostych gier, staraj się pisać logikę samemu, albo dobrze rozumieć co wklejasz i dlaczego(sporo gotowców nie koniecznie jest jakościowa pod względem praktyk pisania kodu). Generalnie na początku z biblioteki powinieneś wykorzystywać możliwość wyświetlania Spritów, ewentualnie elementy UI i Math. Resztę powinieneś pisać samodzielnie, aż nie poczujesz że rozumiesz temat i dalsze brnięcie to już tylko specjalizowanie się w danym zagadnieniu, wtedy możesz poszukać biblioteki/skryptów które robią to co chcesz osiągnąć.


#3

Sam wybór języka to IMO mniejszy problem. Zależy czy znasz podstawy czyli korzystanie z if-ów, pętli, tworzenie funkcji, korzystanie ze zmiennych i też znajomość algebry. Jeśli nie to tutoriale dla początkujących. Jeśli łapiesz podstawy programowania to przeniesienie się z jednego na drugi język nie jest trudne. Jeśli nie uczysz się, żeby załapać fuchę w corpo to możesz wdrożyć się w język skryptowy jednego z darmowych, mniejszych silników gier jak defold albo godot. Mogę polecić godota, bo sam w nim dłubię i nie narzekam. Szykują nową wersję 4.0 i to może być coś bardzo fajnego. Warto obczaić. Ogólnie mniej teorii a więcej praktyki. Przepisuj tutoriale, modyfikuj dla własnych potrzeb i analizuj kod. To, że zapomnisz nie szkodzi, bo możesz odświeżyć informacje, ale podstawy będziesz znał i wiedział dlaczego ten kod działa.