C# is een van de populairste programmeertalen die wordt gebruikt om games te maken in de game-engine van Unity. Experiences (games, AR/VR-apps, enz.) die met Unity zijn gebouwd, hebben wereldwijd bijna 3 miljard apparaten bereikt en zijn in de afgelopen 12 maanden 24 miljard keer geïnstalleerd. We spraken met Harrison Ferrone, software engineer, game developer, creatief technoloog en auteur van het boek, “Learning C# by Developing Games with Unity 2019”. We spraken over waarom C# wordt gebruikt voor het ontwerpen van games, de recente Unity 2019.2 release, en enkele tips en trucs tips voor degenen die games ontwikkelen met Unity.
Over C# en Game ontwikkeling
Waarom wordt C# veel gebruikt om games te maken? Hoe verhoudt het zich tot C++? Hoe wordt C# gebruikt op andere gebieden, zoals mobiele en webontwikkeling?
Ik denk dat Unity voor C# heeft gekozen in plaats van Javascript of Boo vanwege de leercurve en de geschiedenis met Microsoft.
In mijn ervaring is C# eenvoudiger te leren dan talen als C++, en die toegankelijkheid is een grote aantrekkingskracht voor gamedesigners en programmeurs in het algemeen. Met Xamarin mobiele ontwikkeling en ASP.NET web applicaties in de mix, is er echt geen houden meer aan de C# taal.
Wat zijn C# scripts? Hoe zijn ze nuttig voor het maken van games met Unity?
C# scripts zijn de codebestanden die gedrag opslaan in Unity, en alles aansturen wat de engine doet. Hoewel er veel nieuwe tools zijn die een ontwikkelaar in staat stellen om een spel te maken zonder hen, zijn scripts nog steeds de beste manier om aangepaste acties en interacties binnen een spelruimte te maken.
Editor’s Tip: Om aan de slag te gaan met hoe je een C# script in Unity maakt, kun je hoofdstuk 1 van Harrison Ferrone’s boek Learning C# by Developing Games with Unity 2019 doornemen.
Over waarom Harrison zijn boek, Learning C# by Developing Games with Unity 2019 heeft geschreven
Vertel ons de motivatie achter het schrijven van je boek Learning C# by Developing Games with Unity 2019. Waarom is het ontwikkelen van Unity-games een goede manier om de programmeertaal C# te leren? Waarom verkiest u Unity boven andere game engines?
Mijn belangrijkste motivatie voor het schrijven van het boek was tweeledig. Ten eerste wilde ik altijd al schrijver worden, dus mijn liefde voor technologie combineren met een levenslange droom was een no-brainer. Ten tweede wilde ik een beginnersboek schrijven dat trouw zou blijven aan een beginnerspubliek, altijd met hen in gedachten.
In termen van het kiezen van games als een medium om te leren, heb ik gemerkt dat het maken van iets interessants en nieuws terwijl je een nieuwe vaardigheid leert, leidt tot een grotere absorptie van de stof en meer plezier in het algemeen. Unity is altijd mijn favoriete engine geweest, omdat de interface zeer intuïtief is en je er gemakkelijk mee aan de slag kunt.
Je hebt 3 jaar ervaring met het bouwen van iOS-applicaties in Swift. Je hebt ook een aantal artikelen en tutorials over hetzelfde op de website van Ray Wenderlich. Onlangs ben je je gaan verdiepen in C++ en Unreal Engine 4. Hoe ben je in game design en Unity ontwikkeling terecht gekomen? Waarom bent u geïnteresseerd geraakt in het bouwen van games?
Ik ben eigenlijk als eerste begonnen met game design en Unity-ontwikkeling, nog voor al die iOS- en Swift-ervaring. Het was mijn hoofdvak op de universiteit, en hoewel ik niet direct na mijn afstuderen een baan in de game-industrie kon vinden, hield ik het toch vast als een passie.
Over het ontwikkelen van games
De nieuwste release van Unity, Unity 2019.2, heeft een aantal interessante functies, zoals ProBuilder, Shader Graph, en effecten, 2D Animation, Burst Compiler, enz. Wat zijn een aantal van jouw favoriete features in deze release? Wat zijn je verwachtingen van Unity 2019.3?
Ik ben echt enthousiast over ProBuilder in deze release, omdat het een enorme tijdsbesparing is voor iemand die zo artistiek uitgedaagd is als ik ben. Ik denk dat tools als deze het speelveld zullen nivelleren voor onafhankelijke ontwikkelaars die misschien geen toegang hebben tot de omgeving of levelbouwers.
Wat zijn enkele essentiële tips en trucs die een game-ontwikkelaar in gedachten moet houden bij het werken in Unity? Wat zijn de do’s en don’ts?
Ik zou zeggen dat het belangrijkste om in gedachten te houden bij het werken met Unity de componentenarchitectuur is waar het op gebouwd is. Als je je eigen scripts schrijft, bedenk dan hoe ze kunnen worden gescheiden in hun individuele functies en structureer ze op die manier – met een doel. Er is niets erger dan een enorm, opgeblazen C# script dat alles onder de zon doet en dat je aan een enkel game-object in je project koppelt, om je vervolgens te realiseren dat het echt moet worden gescheiden in zijn componentendelen.
Wat zijn vandaag de dag de grootste uitdagingen op het gebied van game-ontwikkeling? Wat is je advies voor degenen die games ontwikkelen met behulp van C#?
Het juiste publiek bereiken is altijd uitdaging nummer één in elke industrie, en game-ontwikkeling is niet anders. Dit geldt in het bijzonder voor indie game-ontwikkelaars, omdat ze zich altijd bewust moeten zijn van voor wie ze hun spel maken en hun spellen daarop moeten afstemmen. Wat advies betreft, zeg ik altijd hetzelfde – leer ontwerppatronen en agile ontwikkelmethodologieën, ze zullen nieuwe wegen openen voor professioneel programmeren en projectmanagement.
Rust is aangeprezen als een van de opvolgers van de C familie van talen. De huidige staat van spelontwikkeling in Rust is ook heel bemoedigend. Wat zijn uw gedachten over Rust voor game-ontwikkeling? Denkt u dat grote game engines zoals Unity en Unreal in de toekomst Rust zullen ondersteunen voor game ontwikkeling?
Ik heb geen ervaring met Rust, maar het is onwaarschijnlijk dat grote engines zoals Unity en Unreal een nieuwe taal zullen adopteren vanwege de enorme kosten die gepaard gaan met een omschakeling van die omvang. Dat laat echter ook de mogelijkheid open dat er in de toekomst een andere engine rond Rust wordt ontwikkeld die zich richt op games, mobiele en/of web ontwikkeling.
Over de auteur
Harrison Ferrone is geboren in Chicago, IL, en overal vandaan opgegroeid. De meeste dagen kan je hem vinden in het maken van instructieve inhoud voor LinkedIn Learning en Pluralsight, of tech editing voor de website van Ray Wenderlich. Na een paar jaar als iOS ontwikkelaar bij kleine start-ups, en een Fortune 500 bedrijf, viel hij in een carrière als leraar en keek nooit meer terug. Gedurende dit alles heeft hij veel boeken gekocht, een paar katten aangeschaft, in het buitenland gewerkt, en zich voortdurend afgevraagd waarom Neuromancer niet op meer syllabi van cursussen staat. Je kunt hem volgen op Linkedin, en GitHub.