Tworzenie gier nigdy nie było łatwiejsze. Platformy do tworzenia gier, takie jak Unity, umożliwiają tworzenie wszystkiego, od prostych platformówek 2D PO w pełni szczegółowe strzelanki 3D FPS. Unity jest darmowy dla małych programistów i istnieje wiele samouczków na temat tego, jak najlepiej używać Edytora do prototypowania swoich pomysłów.
Nauka korzystania z programu Unity pozwoli Ci tylko na razie. Prawdziwym rdzeniem Twojej gry będzie kod, który określa jej zachowanie., Wypracowanie języka, którego należy się nauczyć przy tworzeniu gier, może być trudne, ale w przypadku Unity jest to proste.
1. Najlepszy wybór: C #
dla każdego, kto zaczyna od Unity, lub każdego, kto ma wcześniejszą wiedzę na temat programowania obiektowego, C# jest właściwym językiem do nauki Unity. W rzeczywistości C# jest jedynym językiem, którego warto nauczyć się na platformie i nie bez powodu.
Unity wykorzystuje Mono, czyli wieloplatformową implementację. NET Framework firmy Microsoft. C# jest podstawowym językiem. NET, a wszystkie biblioteki Unity są zbudowane przy użyciu kodu C#., Stwierdzenie, że C# jest językiem jedności nie byłoby przesadą. Unity dały do zrozumienia, że uważają C# za jedyny język używany z silnikiem w przyszłości.
to dobra wiadomość, ponieważ C# jest potężnym językiem i łatwym do nauczenia się. Unity jest tylko jednym z wielu dobrych powodów, aby nauczyć się C#, a jeśli jesteś początkujący, może nawet okazać się bardziej dostępny. Tworzenie gier nadaje strukturę nauce, a cele projektowe prowadzą do lepszego zrozumienia nowych przedmiotów.,
istnieje wiele języków programowania, więc który z nich powinieneś wybrać, aby się uczyć? Oto kilka powodów, dla których warto nauczyć się C#.
wraz z wprowadzeniem systemu zadań C# i ECS, Unity popycha to, co można zrobić z C# dalej i dalej, a nowy kompilator Burst sprawia, że jest to szybsze niż kiedykolwiek wcześniej.
2. Aktualna alternatywa: JavaScript
Unity obsługuje również JavaScript – – – znany jako UnityScript., Od czasu wydania JavaScript stał obok C# jako w pełni funkcjonalny język programowania Unity. Unity scripting reference miało przykładowy kod zarówno w C#, jak i JavaScript dla większości elementów biblioteki.
było to przydatne dla programistów wywodzących się z Środowiska JavaScript, ponieważ pomimo różnic w strukturze kodu mogli używać znanej składni. Był jednak problem.
chociaż UnityScript wydaje się podobny do JavaScript—nie jest. UnityScript ma klasy, coś czego JavaScript nie ma., Funkcje JavaScript, takie jak deklaracja wielu zmiennych i opcjonalne dwukropki, nie są dostępne w UnityScript.
być może, szukanie pomocy JavaScript w projektach Unity zawsze powodowało zamieszanie, ponieważ większość ludzi określała go jako JavaScript, a nie UnityScript. Wyniki zarówno projektowania stron internetowych, jak i tworzenia gier nie zgadzały się ze sobą, a różnica między językami była punktem spornym dla programistów czystego JavaScript.,
być może Unity ogłosiło, że wycofają wsparcie dla UnityScript, a teraz jest harmonogram, aby je zlikwidować. Nadal możesz używać JavaScript z Unity, ale wiedząc, że to się skończy, dlaczego miałbyś to zrobić?
3. Stary Trzeci wybór: Boo
we wczesnych czasach Unity istniała możliwość używania Boo- – – języka podobnego do Pythona. Nie jest to zaskakujące, ponieważ Rodrigo B. de Oliveira, projektant Boo, pracował dla Unity. Język jest kompatybilny z. NET i Mono i będzie w pełni zaimplementowany z silnikiem gry. Co poszło nie tak?,
za mało osób go używało, prawdopodobnie zakładając, że tylko próbował naśladować Pythona. Z czasem Unity porzuciło wsparcie dla Boo, a nadchodzące zmiany w UnityScript sprawią, że wszystkie stare Skrypty Boo staną się bezużyteczne w Unity. Niektórzy mogą uznać to za straconą okazję, ponieważ Boo było świetną próbą stworzenia składni podobnej do Pythona dla programowania. NET.
miłośnicy Pythona mają jednak inną opcję.
4. Dziwny wybór: IronPython
Jeśli chcesz tworzyć gry, Python prawdopodobnie nie jest językiem dla ciebie, ale jest to możliwe., W swoim blogu społeczności programistów Microsoft Charlie Calvert opisuje, jak uruchomić Pythona z C#— ale nie jest to dla osób o słabym sercu. Prawie dziesięć lat później IronPython jest nadal aktywnie rozwijany.
krótko mówiąc, będziesz musiał pobrać biblioteki IronPython z GitHub i odwołać się do nich w swoim projekcie C#. Pozwoli Ci to na wywołanie skryptów Pythona z C# scripts, podobnie jak każda inna biblioteka. IronPython pozwala również na wywołanie bibliotek. NET z Pythona. Tak użyteczna jak to brzmi, ponieważ Unity opiera się na C# ta funkcjonalność nie pomaga.,
IronPython—i IronRuby, to siostrzany projekt łączący C# z językiem programowania Ruby—to fantastyczne projekty, ale nie są praktyczne w użyciu z Unity.
5. Ciekawy wybór: Lua
jedną z lepszych implementacji zewnętrznego języka Unity jest moonsharp – – – interpreter Lua. Ten projekt nie jest zaprojektowany, aby zastąpić C# jako język, bardziej działać jako most. Idealnym przypadkiem użycia MoonSharp byłoby dodanie w sposób umożliwiający graczom tworzenie modów w języku Lua.,
można go również używać do opisywania obiektów i projektowania poziomów oddzielnie od podstawowego kodu gry.
Jeśli już kodujesz w C# i szukasz ciekawego sposobu na interfejs z kodem, MoonSharp jest wart rozważenia. Ponieważ jest on dostępny za darmo w sklepie zasobów Unity, możesz go zaimportować bezpośrednio do swoich projektów.
6. Najlepszy język dla wtyczek: C / C++
pomimo solidnej biblioteki Unity i wszystkich dostępnych narzędzi, które daje C#, czasami możesz chcieć mieć własne wtyczki., Główne powody, dla których ludzie wybierają wtyczki to szybkość lub dostęp do bazy kodowej napisanej już w innym języku. Budowanie tych skryptów w wtyczki DLL oszczędza przeróbki kodu i może poprawić wydajność w niektórych przypadkach.
w większości przypadków C++ będzie językiem używanym do tworzenia wtyczek, ale C będzie działać równie dobrze. Tak długo, jak kod wbudowuje się w bibliotekę DLL, może być umieszczony w folderze wtyczki Unity i odwoływany w kodzie. Prawdopodobieństwo jest jednak takie, że jeśli już czujesz się komfortowo w kodowaniu w C / C++, nauka C# będzie stosunkowo prostym zadaniem!
7., Nowy język dla wtyczek: Rust
Rust jest językiem z dużą ilością szumu wokół niego. Doświadczeni programiści uwielbiają go za niesamowitą ilość kontroli, którą daje, unikając pułapek pisania w mniej bezpiecznych językach, takich jak C++. Rust został stworzony przez Mozillę w 2009 roku, jako sposób dla programistów do szybkiego tworzenia wysokowydajnego oprogramowania.
chociaż nie jest możliwe bezpośrednie pisanie Rusta w Unity, możesz uzyskać dostęp do funkcji i metod napisanych w Rust z kodu Unity. Jim Fleming szczegółowo opisuje, jak to zrobić w swoim poście na Medium.,
Jeśli wydaje się to znajome, to dlatego, że jest to inny sposób na tworzenie natywnych wtyczek. Korzystając z możliwości interfejsu Rusta z innymi językami, można wywoływać funkcje Rusta bezpośrednio z kodu C# używając atrybutu DllImport Unity. Oczywiście, istnieje kilka kroków pomiędzy, i czytanie Jim ' s follow up post wraz z uzyskania dobrego zrozumienia FFI (foreign function interfaces) jest zalecane!
prosty wybór
stosunek Unity do każdego języka, który nie jest C#, jest jasny, a ciągłe ulepszenia Unity opierają się na tej jednomyślności., Połącz to z ciągłym ulepszaniem C# przez Microsoft jako języka, a nauka C# na potrzeby tworzenia gier Unity jest nie do pomyślenia. I pamiętaj, aby sprawdzić Unity Learn dla łatwiejszego sposobu nauki tworzenia gier.
nie jest to jednak jedyna opcja, Unity to tylko jeden silnik, a do wyboru jest wiele opcji oprogramowania do tworzenia gier.
- Programowanie
- JavaScript
- rozwój gier
- C
- jedność
o autorze
Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo żyjącym w Berlinie, w Niemczech. Kiedy nie pisze ani nie jest na scenie, majstruje przy DIY electronics lub code w nadziei, że stanie się szalonym naukowcem.
więcej o Ian Buckley