Do tematu natchnął mnie pewien post na forum. Autor wątku poszukiwał wiedzy, jak zostać programistą C#, oraz jak zacząć przygodę z Unity3d. Ścieżek jest pewnie kilka, ale ja przedstawię wam tą, która według mnie jest optymalna.
Swoją przygodę możesz zacząć w dwóch punktach. Pierwszy z nich, stawia cię w nieco uprzywilejowanej sytuacji. Mianowicie, jesteś już programistą. Piszesz w jakimś języku. Nie ważne czy to C++, JAVA, PHP czy cokolwiek innego. Wtedy, możesz pominąć pierwszy etap i przejść od razu do drugiego.
Jeżeli nie znasz żadnego języka programowania, wypadałoby najpierw jeden poznać, co by czytanie dokumentacji nie stanowiło czarnej magii. Jeżeli wiążesz przyszłość z Unity3d, warto wybrać C#. Jednak tutaj muszę cię ostrzec. Nie da się nauczyć programowania. Programowanie to ciągła nauka. Języki się rozwijają i zmieniają (na szczęście nie codziennie), pojawiają się nowe narzędzia, biblioteki, funkcje itp. a inne przestają być używane. Programowania w danym języku uczysz się, tak długo jak masz z nim styczność. Nie ma sytuacji, że przeczytasz książkę i stwierdzisz “jestem programistą C#”. Dzięki książką i tutorialom poznasz składnię języka co jest dobrym startem. Jednak siła programowania skupia się na doświadczeniu, na tym jak umiesz język wykorzystać.
Idąc dalej, poznanie C#, nie sprawi, że umiesz pisać skrypty w Unity3d. Ale nie bój się! Unity to tak naprawdę nowa, rozbudowana biblioteka, z nowymi klasami i funkcjami. Wystarczy poznać te najważniejsze, a potem rozwijać umiejętności.
Jeszcze małe słowo wstępu. Zastanawia cię pewnie, co musisz umieć, żeby nadawać się do pracy w Unity, albo do bycia programistą? Oto moja subiektywna lista:
- Analityczne, logiczne myślenie – Programowanie to nie ekspresjonistyczna sztuka. Ważna jest chłodna analiza i logiczne myślenie. To bardziej jak budowanie z klocków, niż malowanie obrazów.
- Chęć do nauki – Jak wspomniałem, programując, ciągle się uczysz. Jeżeli masz z tym trudność, możesz nie podołać.
- Cierpliwość – Często będzie się zdarzać, że coś nie działa i nie wiadomo czemu. Trzeba szukać.
- Język Angielski – Duże zasoby wiedzy skryte są w anglojęzycznych zakamarkach internetu. Jeśli chcesz je odkryć, musisz w miarę kojarzyć ten język. Dodatkowo dokumentacja (czyli zbiory funkcji z opisami co robią), są pisane w tym języku, a w czasie pisania programów, dokumentacja to Twój najlepszy przyjaciel.
- Chęć do poszukiwań – Czasami znalezienie rozwiązania wymaga odrobiny poszukiwań, wiedzy ludzi mądrzejszych od ciebie. Jeżeli nie chce ci się tego robić, kiedyś zwyczajnie utkniesz.
OK, tyle. Lecimy z drogą do zostania programistą C# dla Unity3d! Podzielimy to na dwa etapy. Jeżeli znasz już jakiś język programowania, możesz pominąć pierwszy etap. Ja znając inne języki, pominąłem go i teraz w sumie dobrze się odnajduje w tym wszystkim.
Etap I: Poznaj C#!
Pierwszym elementarnym krokiem, będzie poznanie składni języka. Tutaj może przydać się jakaś książka, albo internetowy kurs. W kursie pod linkiem, po prawej stronie jest menu z kategoriami, omawiającymi po kolei wszystkie elementarne rzeczy. Powinieneś to wszystko przerobić.
Nigdy nie kopiuj kodu! Kod z kursów czy tutoriali zawsze przepisuj. Lepiej go zrozumiesz i zapamiętasz!
Kiedy przerobisz całość, powinieneś umieć odpowiedzieć na pytania typu:
- Co to jest zmienna, a co to stała?
- Jakie są typu zmiennych
- Czym jest instrukcja warunkowa i do czego służy
- Czym są pętle i jakie rodzaje pętli istnieją
- Czym jest klasa i funkcja
- Czym są klasy abstrakcyjne
- Czym jest zmienna statyczna
- Jak wykonywać operacje arytmetyczne i logiczne
Oczywiście wypadałoby też, umieć tą wiedzę zastosować. Tym samym przechodzimy do kolejnego punktu nauki języka. Napisz swój własny, prosty program. Mój znajomy uwielbia do tego celu stosować przelicznik walut. Czemu? Bo wykorzystuje większość rzeczy, jakie wykorzystasz przy tworzeniu dowolnego oprogramowania, czyli:
- Stworzenie interfejsu użytkownika
- Pobieranie danych od użytkownika i wyświetlanie ich
- Operacje arytmetyczne
- Pobieranie danych z internetu (kursy ze strony NBP)
- Operacje na plikach i parsowanie (dane ze strony NBP są w formie pliku XML)
Oczywiście, może być to dowolny inny program, ważne żebyś napisał go sam. Jeżeli masz problem, pytaj ludzi na forach. Tylko nie pytaj “Jak zrobić to i to, dajcie kod”. Twoje pytanie ma wyglądać: “Próbuję zrobić to i to, mam taki kod, który powinien zadziałać w taki, a taki sposób. Próbowałem już tego i tego, ale dalej nie działa, jakieś sugestie?”. Ważne, żebyś najpierw sam spróbował, potem poszukał samodzielnie wiedzy, która pomoże rozwiązać problem, a jeśli wszystko zawiedzie, wtedy pytał.
Jeżeli doszedłeś tutaj, znaczy że C# znasz na minimalnym poziomie i możesz ruszyć na poznawanie Unity3d.
Etap II: Zaprzyjaźnij się z Unity3d!
W sumie kroki w tym etapie, będą bardzo podobne, jak w poprzednim. W przypadku Unity, trzeba poznać dwie rzeczy. Po pierwsze sam program i to, co można tam zrobić, a po drugie wszystkie te bogate klasy i funkcje, które oferuje. Nie przerażaj się. Nie musisz znać wszystkich. Jednak jest trochę funkcji, które są tak podstawowe, że bez nich niewiele zrobisz. Przykładowo kolizje – tworzysz nimi eventy, interakcje między obiektami, reagujesz na to co się dzieje.
Najlepszą metodą, żeby poznać tak podstawowe funkcję, będzie przerobienie jakiegoś kursu. Tutaj oczywiście mogę polecić mój kurs. Oczywiście, może być dowolny inny, który ci przypasuje. Uważaj tylko na literaturę drukowaną. W Polsce jest ona często drukowana ze sporym opóźnieniem i przez to jest nieaktualna.
Powtórzę to co wcześniej: Nigdy nie kopiuj kodu! Kod z kursów czy tutoriali zawsze przepisuj. Lepiej go zrozumiesz i zapamiętasz!
Jeżeli masz za sobą cały kurs, możesz wziąć się za napisanie swojej gry. Tylko nie rób super hiper MMO, które pobije WoWa. Nie wyjdzie ci to, namęczysz się, a na koniec szlag cię trafi i rzucisz wszystko. Wybierz coś prostego. Coś co możesz wykonać w skończonym czasie. Snake, Packman, Arkanoid, Pong. Wzoruj się na tych bardzo prostych, starszych grach. Najważniejsze: Masz tą grę ukończyć w 100%!
Najważniejsze znów jest to, żebyś kod napisał samodzielnie, poszukując wiedzy w internecie. Czy pytając ludzi na forach, czy nawet wysyłając mi wiadomość. Masz nie tylko rozwiązywać problemy, ale też je rozumieć.
Etap III: Wszystko zależy od Ciebie!
Jeżeli przebrnąłeś przez to wszystko, powinieneś mieć już jakieś pojęcie o C# oraz Unity3d. Wiesz z czym to się je, jak to działa i ile pracy kosztuje wykonanie prostej gry. Teraz od Ciebie zależy, czy się tym zajmiesz, czy poznasz inny język, czy zajmiesz się uprawą marchewki. Sam zdecyduj co dalej.