utveckling av spel har aldrig varit enklare. Spelutvecklingsplattformar som Unity gör det möjligt att skapa allt från enkla 2D-Plattformsspel till fullt detaljerade 3D-förstapersonsskyttar. Unity är gratis för små utvecklare, och det finns en mängd tutorials om hur man bäst kan använda redigeraren för att prototypa dina idéer.
att lära sig att använda Unity-programmet kommer bara att få dig hittills. Den verkliga kärnan i ditt spel kommer att vara den kod som bestämmer dess beteende., Arbeta ut vilket språk att lära sig för spelutveckling kan vara svårt – – – men när det gäller enhet är det enkelt.
1. Det bästa valet: C #
För alla som börjar med enighet, eller någon med tidigare kunskaper i objektorienterad programmering, C# är rätt språk att lära sig för enhet. Faktum är att C# är det enda språket som är värt att lära sig för plattformen, och med god anledning.
Unity använder Mono, vilket är en plattformsoberoende implementering av Microsofts.NET framework. C # är det primära språket i. net, och alla Unity bibliotek är byggda med C # – kod., Att säga att C # är språket i enighet skulle inte vara en överdrift. Unity har klargjort att de anser C # vara det enda språket för användning med motorn framåt.
det här är goda nyheter, eftersom C# är ett kraftfullt språk och lätt att lära sig. Unity är bara en av många goda skäl att lära sig C#, och om du är nybörjare kan du till och med hitta den mer tillgänglig. Att utveckla spel ger struktur till lärande, och projektbaserade mål leder till större förståelse för nya ämnen.,
det finns många programmeringsspråk, så vilken ska du välja en att lära dig? Här är flera skäl att lära sig c#.
med införandet av C# – jobbsystemet och ECS Driver Unity 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änt som UnityScript., Sedan utgåvan har JavaScript satt sida vid sida med C # som ett fullt utrustat enhetsutvecklingsspråk. Enighet scripting hänvisning hade exempelkod i både C# och JavaScript för de flesta delar av biblioteket.
det här var användbart för utvecklare som kommer från en JavaScript-bakgrund, eftersom de trots skillnader i hur koden strukturerades kunde använda välbekant syntax. Det fanns dock ett problem.
medan UnityScript verkar likna JavaScript—det är det inte. UnityScript har klasser, något som JavaScript inte., Funktioner i JavaScript som flera variabeldeklarationer och valfria semi-colons är inte tillgängliga i UnityScript.
kanske avgörande, sökning efter JavaScript-hjälp på Unity-projekt har alltid orsakat förvirring som de flesta kallar det JavaScript snarare än UnityScript. Resultaten för både webbdesign och spelutveckling suddas ihop, och skillnaden mellan språken var en tvist till rena JavaScript-utvecklare.,
kanske inte överraskande meddelade Unity att de skulle dra tillbaka stöd för UnityScript, och det finns nu en tidslinje på plats för att avveckla den. Du kan fortfarande använda JavaScript med Unity, men att veta att det kommer att sluta, varför skulle du?
3. Det gamla tredje valet: Boo
i Unitys tidiga dagar fanns det möjlighet att använda Boo—ett Pythonliknande språk. Detta är kanske otroligt som Rodrigo B. De Oliveira, Boos designer, arbetade för Unity. Språket är kompatibelt med. NET och Mono och skulle genomföras fullt ut med spelmotorn. Vad gick fel?,
inte tillräckligt många människor använde det, sannolikt förutsatt att det bara försökte imitera Python. Med tiden släppte Unity stöd för Boo, och de kommande ändringarna till UnityScript kommer att göra alla gamla Boo-skript värdelösa i Unity. Vissa kan se detta som ett missat tillfälle, 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 är Python förmodligen inte språket för dig, 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ärtad. Nästan tio år senare är IronPython fortfarande i aktiv utveckling.
kort sagt måste du ladda ner IronPython-biblioteken 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 något annat bibliotek. IronPython tillåter också att ringa. NET-bibliotek från Python. Så användbart som det här låter, eftersom Unity förlitar sig på c# denna funktionalitet hjälper inte.,
IronPython—och IronRuby, det är syster projekt som förbinder C # med Ruby programmeringsspråk – – – – är fantastiska projekt, men de är inte praktiskt för användning med enighet.
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 för att skapa spelmods på Lua-språket.,
Du kan också använda den för att beskriva objekt och designnivåer separat från din kärnspelskod.
om du redan kodar i C# och letar efter ett intressant sätt att interagera med din kod, är MoonSharp värt att överväga. Eftersom den är tillgänglig gratis på Unitys Asset store kan du importera den direkt till dina projekt.
6. Bästa språk för Plugins: c / c++
trots den robusta Unity bibliotek och alla tillgängliga verktyg C# ger, ibland kan du vill ha dina egna plugins., De främsta anledningarna till att människor väljer plugins inkluderar hastighet, eller tillgång till en kodbas som redan skrivits på ett annat språk. Att bygga dessa skript i DLL plugins sparar remaking kod och kan förbättra prestanda i vissa fall.
i de flesta fall kommer c++ att vara det språk som används för att skapa plugin, men C skulle fungera lika bra. Så länge koden bygger in i en DLL kan den placeras i Unitys plugin-mapp och refereras i kod. Sannolikheten är dock, om du redan är bekväm kodning i c / c++, att lära C # skulle vara en relativt enkel uppgift!
7., Nytt språk för Plugins: Rust
Rust är ett språk med mycket buzz runt det. Erfarna programmerare älskar det för den otroliga mängden kontroll det ger samtidigt som man undviker fallgroparna 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 rost i Unity direkt, kan du komma åt funktioner och metoder skrivna i Rust från din Unity-kod. Jim Fleming täcker 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 inbyggda Plugins. Genom att utnyttja Rusts förmåga att kommunicera med andra språk kan du ringa Rust-funktioner direkt från C# – kod med Unitys dllimport-attribut. Naturligtvis finns det flera steg däremellan, och att läsa Jims uppföljningspost tillsammans med att få en god förståelse för FFIs (utländska funktionsgränssnitt) rekommenderas!
ett enkelt val
Unitys inställning till vilket språk som helst som inte är C# är tydligt, och de ständiga förbättringarna av enighet är beroende av denna singeltänkande., Koppla detta med Microsofts fortsatta förbättring av C # som språk, och lärande C# för Unity spelutveckling är en no-brainer. Och var noga med att kolla in Unity Learn för ett enklare sätt att lära sig spelutveckling.
detta är inte ditt enda alternativ men enighet är bara en motor, och det finns gott om spelutvecklingsprogramvarualternativ att välja mellan.
- programmering
- JavaScript
- spelutveckling
- c
- Unity
om författaren
Ian Buckley är frilansjournalist, musiker, artist och videoproducent som bor i Berlin, Tyskland. När han inte skriver eller på scenen mixtrar han med DIY-elektronik eller kod i hopp om att bli en galen vetenskapsman.
mer från Ian Buckley