Reklame
At udvikle spil har aldrig været lettere. Spiludviklingsplatforme som Unity gør det muligt at skabe alt fra enkle 2D-platformspillere til fuldt detaljerede 3D-personers shooters. Enhed er gratis for små udviklere, og der er et væld af tutorials om, hvordan du bedst kan bruge redaktøren til at prototype dine ideer.
At lære, hvordan man bruger Unity-programmet, kommer dig kun så langt. Den virkelige kerne i dit spil vil være den kode, der bestemmer dets opførsel. Det kan være svært at finde ud af, hvilket sprog man skal lære til spiludvikling - men i tilfælde af enhed er det enkelt.
1. Det bedste valg: C #
For alle, der starter med Unity, eller enhver med tidligere viden om objektorienteret programmering, er C # det rigtige sprog at lære for Unity. Faktisk er C # det eneste sprog, der er værd at lære for platformen, og med god grund.
Unity bruger Mono, som er en tværplatform-implementering af Microsofts .NET-ramme. C # er det primære sprog på .NET, og alle Unitys biblioteker er bygget ved hjælp af C # -kode. At sige, at C # er enhedssprog, ville ikke være en overdrivelse. Enhed har gjort det klart, at de betragter C # som det eneste sprog, der skal bruges med motoren fremover.
Dette er gode nyheder, da C # er et magtfuldt sprog og let at lære. Enhed er kun en af mange gode grunde til at lære C # 7 praktiske grunde til at lære C # -programmeringDer er mange programmeringssprog, så hvilket skal du vælge et at lære? Her er flere grunde til at lære C #. Læs mere , og hvis du er nybegynder, kan du endda finde den mere tilgængelig. Udvikling af spil giver struktur til læring, og projektbaserede mål fører til større forståelse af nye fag.
Med introduktionen af C # jobsystem og ECS, Enhed skubber hvad der kan gøres med C # længere og længere, og den nye Burst-kompilator gør det hurtigere end nogensinde før.
2. Det nuværende alternativ: JavaScript
Unity understøtter også JavaScript - kendt som UnityScript. Siden frigivelsen har JavaScript siddet side om side med C # som et fuldt udstyret enhedsudviklingssprog. Reference til Unity-scripting havde eksempelkode i både C # og JavaScript for de fleste elementer i biblioteket.
Dette var nyttigt for udviklere, der kom fra en JavaScript-baggrund, da de trods forskelle i den måde, koden var struktureret på, kunne bruge kendt syntaks. Der var dog et problem.
Mens UnityScript ligner JavaScript - er det ikke. UnityScript har klasser, noget JavaScript ikke gør. Funktioner i JavaScript som flere forskellige variabeldeklarationer og valgfri semi-colons er ikke tilgængelige i UnityScript.
Måske afgørende, at søgning efter JavaScript-hjælp til Unity-projekter altid har skabt forvirring, da de fleste omtalte det som JavaScript snarere end UnityScript. Resultaterne for både webdesign og spiludvikling blev uskarpe, og forskellen mellem sprogene var et pointer til ren JavaScript-udviklere.
Måske overraskende meddelte Unity, at de ville trække støtte til UnityScript tilbage, og der er nu en tidslinje på plads for at nedlægge den. Du kan stadig bruge JavaScript sammen med Unity, men vel vidende om, at det kommer til at ende, hvorfor ville du så?
3. Det gamle tredje valg: Boo
I de tidlige dage af Unity var der muligheden for at bruge Boo - et Python-lignende sprog. Dette er måske ikke overraskende, da Rodrigo B. De Oliveira, Boos designer, arbejdede for Unity. Sproget er kompatibelt med .NET og Mono og ville være fuldt implementeret med spilmotoren. Hvad gik galt?
Ikke nok mennesker brugte det, antagede sandsynligvis, at det blot forsøgte at efterligne Python. Over tid faldt Unity understøttelse af Boo, og de kommende ændringer til UnityScript vil gøre alle gamle Boo-scripter unyttige i Unity. Nogle kan se dette som en ubesvaret mulighed, da Boo var et stort forsøg på Python-lignende syntaks til .NET-programmering.
Elskere af Python har dog en anden mulighed.
4. Det ulige valg: IronPython
Hvis du vil udvikle spil, Python er sandsynligvis ikke sproget for dig 4 grunde til, at Python ikke er programmeringssproget for digPython-programmeringssprog er ekstremt populært, men her er et par grunde til, at du måske ønsker at undgå Python. Læs mere , men det er muligt. I sin Microsoft Developer Community-blog skitserer Charlie Calvert hvordan man kører Python fra C #- men det er ikke for svage hjerter. Næsten ti år senere er IronPython stadig i aktiv udvikling.
Kort sagt skal du downloade IronPython-biblioteker fra GitHub og henvis dem til dit C # -projekt. Dette giver dig mulighed for at kalde Python-scripts fra C #-scripts, ligesom du ville gøre for et hvilket som helst andet bibliotek. IronPython tillader det også opkald. NET-biblioteker fra Python. Så nyttig som dette lyder, da Unity er afhængig af C #, denne funktion hjælper ikke.
IronPython — og IronRuby, det er søsterprojekt, der forbinder C # med Ruby-programmeringssprog - er fantastiske projekter, men de er ikke praktiske til brug sammen med Unity.
5. Det interessante valg: Lua
En af de bedre implementeringer af et eksternt sprog for Enhed er MoonSharp—En Lua-tolk. Dette projekt er ikke designet til at erstatte C # som et sprog, mere fungere som en bro. Det perfekte brudssag til MoonSharp ville være at tilføje på en måde for spillere af dit spil at oprette spiltilstande på Lua-sproget.
Du kan også bruge det til at beskrive objekter og designniveauer separat fra din kerne-spilkode.
Hvis du allerede koder i C # og leder efter en interessant måde at interface med din kode, er MoonSharp værd at overveje. Da det er tilgængeligt gratis på Unity's Asset-butik, kan du importere det direkte til dine projekter.
6. Bedste sprog til plugins: C / C ++
På trods af det robuste Unity-bibliotek og alle de tilgængelige værktøjer, som C # giver, kan du nogle gange have lyst til dine egne plugins. De vigtigste grunde til, at folk vælger plugins, inkluderer hastighed eller adgang til en kodebase, der allerede er skrevet på et andet sprog. Opbygning af disse scripts i DLL-plugins gemmer genindtagelseskode og kan forbedre ydeevnen i nogle tilfælde.
I de fleste tilfælde vil C ++ være det sprog, der bruges til oprettelse af plugin, men C vil fungere lige så godt. Så længe koden indbygges i en DLL, kan den placeres i Unitys plugin-mappe og henvises til i kode. Sandsynligheden er dog, hvis du allerede er komfortabel med at kode i C / C ++, at det at lære C # ville være en relativt simpel opgave!
7. Nyt sprog til plugins: Rust
Rust er et sprog med en masse brummer omkring det. Erfarne programmerere elsker det for den utrolige mængde kontrol, det giver, samtidig med at man undgår faldgruberne ved at skrive på mindre sikre sprog som C ++. Rust blev oprettet af Mozilla i 2009 som en måde for udviklere at hurtigt udvikle højtydende software.
Selvom det ikke er muligt at skrive Rust i Unity direkte, kan du få adgang til funktioner og metoder skrevet i Rust fra din Unity-kode. Jim Fleming dækker hvordan man gør det i detaljer i sit indlæg på Medium.
Hvis dette synes velkendt, skyldes det, at dette er en anden måde at oprette indfødte plugins på. Ved at udnytte Rusts evne til at interface med andre sprog kan du kalde Rustfunktioner direkte fra C # -kode ved hjælp af Unity's dllimport attribut. Der er naturligvis flere trin imellem og læse Jims opfølgningsindlæg sammen med at få en god forståelse af FFI'er (udenlandske funktionsgrænseflader) anbefales!
Et simpelt valg
Enhedens holdning til ethvert sprog, der ikke er C #, er klar, og de konstante forbedringer af Unity er afhængige af denne enfoldighed. Par dette sammen med Microsofts fortsatte forbedring af C # som sprog, og det at lære C # til udvikling af enhedsspil er en no-brainer. Og sørg for at tjekke ud Enhed Lær for en lettere måde at lære spiludvikling på Unity Learn er den nemmeste måde at mestre spiludvikling påVil du begynde at udvikle dine egne spil? Unity Learn er den bedste og nemmeste måde at lære og mestre, hvad du har brug for at vide. Læs mere .
Dette er dog ikke din eneste mulighed, Unity er kun en motor, og der er masser af spiludvikling software muligheder 5 gratis spiludviklingssoftwareværktøjer til at lave dine egne spilGratis spiludviklingssoftware er en fantastisk måde at starte fremstilling af videospil på. Vi har samlet den bedste spilsoftware på markedet. Læs mere at vælge imellem.
Ian Buckley er freelance journalist, musiker, kunstner og videoproducent bosiddende i Berlin, Tyskland. Når han ikke skriver eller er på scenen, tænker han med DIY-elektronik eller kode i håbet om at blive en gal videnskabsmand.