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źć.
Pierwsze kroki w gamedevie
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
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ąć.
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.