Annons

Att utveckla spel har aldrig varit enklare. Spelutvecklingsplattformar som Unity gör det möjligt att skapa allt från enkla 2D-plattformsspelare till helt detaljerade 3D-personskyttar. Enhet är gratis för små utvecklare, och det finns en mängd självstudier om hur du bäst kan använda redigeraren för att prototypa dina idéer.

Att lära sig använda Unity-programmet kommer bara att få dig så långt. Den verkliga kärnan i ditt spel är koden som bestämmer dess beteende. Det kan vara svårt att arbeta ut vilket språk man ska lära sig för spelutveckling, men i fallet med Enhet är det enkelt.

1. Det bästa valet: C #

För alla som börjar med Unity, eller någon med tidigare kunskap om objektorienterad programmering, är C # rätt språk att lära sig för Unity. Faktum är att C # är det enda språket som är värt att lära sig för plattformen, och med goda skäl.

Unity använder Mono, som är en plattformsimplementering av Microsofts .NET-ramverk. C # är det primära språket i .NET, och alla Unitys bibliotek är byggda med C # -kod. Att säga att C # är enhetens språk skulle inte vara en överdrift. Enhet har gjort det klart att de anser att C # är det enda språket som ska användas med motorn framöver.

instagram viewer

Det här är goda nyheter, eftersom C # är ett kraftfullt språk och lätt att lära sig. Enhet är bara en av många goda skäl att lära sig C # 7 praktiska skäl att lära sig C # -programmeringDet finns många programmeringsspråk, så vilket ska du välja att lära dig? Här är flera skäl att lära sig C #. Läs mer , och om du är nybörjare kan du till och med hitta det mer tillgängligt. Att utveckla spel ger struktur för lärandet och projektbaserade mål leder till ökad förståelse för nya ämnen.

Med introduktionen av C # jobbsystem och ECS, Unity driver vad som kan göras med C # längre och längre, och den nya Burst-kompilatorn gör det snabbare än någonsin tidigare.

2. Det nuvarande alternativet: JavaScript

Unity stöder också JavaScript - känd som UnityScript. Sedan lanseringen har JavaScript satt sida vid sida med C # som ett fullt utbyggt Unity-utvecklingsspråk. Unity-skriptreferensen hade exempelkod i både C # och JavaScript för de flesta element i biblioteket.

Detta var användbart för utvecklare som kommer från en JavaScript-bakgrund eftersom trots skillnader i hur koden var strukturerad kunde de använda bekanta syntax. Det var emellertid ett problem.

Även om UnityScript verkar likna JavaScript - så är det inte. UnityScript har klasser, något som JavaScript inte gör. Funktioner i JavaScript som flera variabla deklarationer och valfria halvkolon är inte tillgängliga i UnityScript.

Kanske avgörande, att söka efter JavaScript-hjälp på Unity-projekt har alltid orsakat förvirring eftersom de flesta hänvisade till det som JavaScript snarare än UnityScript. Resultaten för både webbdesign och spelutveckling suddigades ihop, och skillnaden mellan språken var en stridpunkt för rena JavaScript utvecklare.

Kanske överraskande meddelade Unity att de skulle dra tillbaka stödet för UnityScript, och det finns nu en tidslinjen på plats för att avveckla den. Du kan fortfarande använda JavaScript med Unity, men att veta att det kommer att ta slut, varför skulle du göra det?

3. Det gamla tredje valet: Boo

Under Unitys tidiga dagar fanns alternativet att använda Boo - ett Python-liknande språk. Detta är kanske inte förvånande som Rodrigo B. De Oliveira, Boos designer, arbetade för Unity. Språket är kompatibelt med .NET och Mono och skulle vara fullt implementerat med spelmotorn. Vad gick fel?

Inte tillräckligt många människor använde det, antagde antagligen att det bara försökte imitera Python. Med tiden tappade Unity stöd för Boo, och de kommande ändringarna i UnityScript kommer att göra alla gamla Boo-skript värdelösa i Unity. Vissa kanske ser detta som en missad möjlighet, eftersom Boo var ett bra försök på Python-liknande syntax för .NET-programmering.

Älskare av Python har dock ett annat alternativ.

4. Det udda valet: IronPython

Om du vill utveckla spel, Python är förmodligen inte språket för dig 4 skäl till varför Python inte är programmeringsspråket för digPython-programmeringsspråket är extremt populärt, men här är några orsaker till att du kanske vill undvika Python. Läs mer , men det är möjligt. I sin Microsoft Developer Community-blogg beskriver Charlie Calvert hur man kör Python från C #- men det är inte för svaghjärtade. Nästan tio år senare är IronPython fortfarande i aktiv utveckling.

Kort sagt måste du ladda ner IronPython-bibliotek från GitHub och referera till dem i ditt C # -projekt. Detta gör att du kan ringa Python-skript från C #-skript ungefär som du skulle göra i något annat bibliotek. IronPython tillåter också ringer .NET-bibliotek från Python. Lika användbart som det här låter, eftersom Unity förlitar sig på C # hjälper inte denna funktion.

IronPython — och IronRuby, det är systerprojekt som länkar C # till Ruby-programmeringsspråket - är fantastiska projekt, men de är inte praktiska för användning med Unity.

5. Det intressanta valet: Lua

En av de bättre implementeringarna av ett externt språk för Enhet är MoonSharp—En Lua-tolk. Detta projekt är inte utformat för att ersätta C # som ett språk, mer fungera som en bro. Det perfekta användningsfallet för MoonSharp skulle vara att lägga till på ett sätt för spelare i ditt spel att skapa spellägen på Lua-språket.

Du kan också använda den för att beskriva objekt och designnivåer separat från din kärnspelkod.

Om du redan kodar i C # och letar efter ett intressant sätt att gränssnitta med din kod, är MoonSharp värt att överväga. Eftersom det är tillgängligt gratis på Unity's Asset-butik, kan du importera det direkt till dina projekt.

6. Bästa språket för plugins: C / C ++

Trots det robusta Unity-biblioteket och alla tillgängliga verktyg som C # ger, kanske du ibland vill ha dina egna plugins. De främsta orsakerna till att människor väljer plugins inkluderar hastighet eller tillgång till en kodbas som redan är skriven på ett annat språk. Genom att bygga dessa skript i DLL-plugins sparar ny omvandlingskod och kan i vissa fall förbättra prestandan.

I de flesta fall är C ++ det språk som används för att skapa plugin, men C skulle fungera lika bra. Så länge koden byggs in i en DLL kan den placeras i Unitys plugin-mapp och hänvisas till i kod. Sannolikheten är dock att om du redan är bekväm att koda i C / C ++, att lära sig C # skulle vara en relativt enkel uppgift!

7. Nytt språk för plugins: Rust

Rost är ett språk med mycket surr runt det. Erfarna programmerare älskar det för den otroliga mängden kontroll det ger samtidigt som man undviker fallgroparna med att skriva på mindre säkra språk som C ++. Rust skapades av Mozilla 2009, som ett sätt för utvecklare att snabbt utveckla högpresterande programvara.

Även om det inte är möjligt att skriva Rust in Unity direkt, kan du komma åt funktioner och metoder skrivna i Rust från din Unity-kod. Jim Fleming beskriver hur man gör det i detalj i sitt inlägg på Medium.

Om detta verkar bekant beror det på att det här är ett annat sätt att skapa infödda plugins. Genom att utnyttja Rusts förmåga att gränssnitt med andra språk kan du ringa Rustfunktioner direkt från C # -kod med hjälp av Unity's DllImport attribut. Naturligtvis finns det flera steg emellan, och läser Jims uppföljningsinlägg tillsammans med att få en god förståelse av FFI: er (främmande funktionsgränssnitt) rekommenderas!

Ett enkelt val

Enhetens inställning till alla språk som inte är C # är tydlig, och de ständiga förbättringarna till Unity förlitar sig på denna enfaldighet. Koppla ihop detta med Microsofts fortsatta förbättring av C # som ett språk, och att lära sig C # för Unity-spelutveckling är en icke-brainer. Och se till att kolla in Unity Lär dig för ett enklare sätt att lära dig spelutveckling Unity Learn är det enklaste sättet att behärska spelutvecklingVill du börja utveckla dina egna spel? Unity Learn är det bästa och enklaste sättet att lära sig och behärska det du behöver veta. Läs mer .

Detta är dock inte ditt enda alternativ, Unity är bara en motor och det finns gott om spelutvecklingsprogramvara 5 gratis verktyg för spelutveckling för att göra dina egna spelGratis spelutvecklingsprogramvara är ett bra sätt att börja göra videospel. Vi har sammanställt marknadens bästa spelprogramvara. Läs mer att välja ifrån.

Ian Buckley är frilansjournalist, musiker, artist och videoproducent bosatt i Berlin, Tyskland. När han inte skriver eller på scenen tänker han på DIY-elektronik eller kod i hopp om att bli en gal forskare.