Svenska

Lär dig skapa ett spel #3 - Poäng, Prefabs, Taggar och Triggers

Skrivet av peligon den 30 april 2017 kl 14:27
This post is tagged as: lär dig skapa ett spel, spel, tutorial, unity

Lär dig skapa ett spel #3 - Poäng, Prefabs, Taggar och Triggers

Skriptet score_counter.cs

Extra: Bastyp Collider2D
Varför skrev vi inte CircleCollider2D som argument för metoden OnTriggerEnter2D?
CircleCollider2D är en subklass av basklassen Collider2D. Det är en Collider2D, fast med lite specialiserade egenskaper. Eftersom OnTriggerEnter2D tar in en Collider2D innebär det att den kan hantera alla subklasser till denna, såsom BoxCollider2D och just CircleCollider2D.

Extra - Varför inte alltid inaktivera?
Avaktiverar vi ett objekt så är det ju bara att aktivera det, men om vi förstör det måste vi skapa ett nytt. Oavsett om vi vill ha tillbaka objektet eller inte så skulle vi ju alltid kunna avaktivera det, det passar ju i bägge fallen, är det inte lika bra att göra så? Svaret är nej, ett inaktiverat objekt tar fortfarande plats i minnet, oavsett om inga uträkningar (sker i uppdatering av komponenter) sker. Ett förstört objekt är dock borttaget, och tar inte upp någon plats i minnet efter att det förstörts. Tänk dig att du har en scen med flera hundra små såpbubblor som ska försvinna när de rör vid något. Du vill ju inte att de ska ta plats i minnet efter att de försvunnit, det är onödigt och kan ställa till problem utifall du vill skapa andra objekt som tar upp plats. Avaktivera när du behöver aktivera objektet igen senare, förstör annars objekten så ligger de inte och skräpar.


Tidigare delar
#0 - Introduktion
#1 - Installera och lär dig Unity
#2 - Input

HQ
Lär dig skapa ett spel #2 - Input

Lär dig skapa ett spel #2 - Input

Skrivet av peligon den 9 april 2017 kl 15:28
This post is tagged as: spel, tutorial, unity

Skriptet ball_control.cs (öppna med en textredigerare och kopiera över innehållet till ditt skript i MonoDevelop).

Extraläsning

Metoder och klasser
En klass i programmering är en modell av något skrivet i kod. Den innehåller värden som beskriver den samt metoder, handlingar den kan utföra. Skulle vi ha en klass för en bil skulle vi kanske vilja ha värden för vad den väger, vilken färg det är på lacken, vilket drivmedel den använder och så vidare. Metoderna skulle vara bland andra: starta, gasa, bromsa, växla, stäng av.
En klass är en slags mall, så om vi vill skapa en bil med vissa värden, såsom en gul bil som tar diesel och en en annan som är röd och drivs av bensin så kan vi det med hjälp av klassen.
Klassen i sig är tom på värden, det är vi som skapar en så kallad instans eller ett objekt av typen Bil, och fyller i de värden som den ska ha (färg, drivmedel, etc.).

Metoder är som sagt handlingar som kan utföras.
I vårat ball_control-skript så har vi metoden Update som vi får med i varje skript vi skapar med Unity.
Hela delen med "void Update ()", kallas prototypen, den säger vad för något metoden spottar ut sig när den körts, det kan vara siffror, text, eller lite vad som helst. Till och med ingenting, då namnet föregås av typen void, alltså ingenting. Update är namnet, och i parenteserna så står alla de indata den förväntar sig, återigen ingenting i detta fall. Sedan kommer klammerparenteserna, däri ligger metodens definition, alltså vad den skall utföra.

När vi säger att en viss metod ska köras kallas det för att vi anropar metoden. Vi anropar aldrig Update, för det gör Unity åt oss, varje gång spelet uppdateras (läs om spel-loop och FPS nedan).

Vidare så är Input en klass, med metoden GetKey och i parenteserna tar den in en tangent (egentligen id för en tangent, men det går vi inte in på). Den returnerar sen sant eller falskt, beroende på om tangenten trycks in eller ej.

If, villkorliga uttryck
Frågor och påståenden som enkelt kan svaras med ja/nej respektive sägas vara sanna/falska används väldigt ofta inom programmering. Ett exempel på en fråga som passar är: "är 10 större än 7?", medan frågor som är svårare att svara på och kräver mer nyans-såsom: "är Markoolio finsk eller svensk?" eller: "är det okej att dricka mjölk 2 veckor efter utgångsdatumet?"-inte lämpar sig. Vi vill ha tydliga frågor som besvaras med ja eller nej. Sådana uttryck där vi vill göra något beroende på om något påstående är sant kallas "conditionals", eller villkorliga uttryck.

Spel-loop och FPS
Spel-loop:en är den loop som uppdaterar spelets alla objekt och renderar (ritar ut) dem på skärmen. Det är en loop, så den körs om och om igen. Detta är kärnan i koden för (de flesta) spel som görs. Uppdatera, rendera, uppdatera, rendera. Det simplaste som sker i uppdateringen är att objektens position ändras, men även mer avancerade saker som kollisionsdetektion, hantering av input och all annan logik sköts i uppdaterings-metoden för ett objekt. För dig som inte kan koda alls hade det (kanske) inte varit så kul att göra allt på en gång och skapa en spel-loop. Som tur är gör Unity jobbet åt oss, och ger oss en uppdaterings-metod som är klar att använda. Och utritningen av objektet har sprite-renderaren redan hand om, så det behöver vi inte ens bekymra oss över.
Updaterings-metoden som Unity ger oss, Update, körs varje gång som spelet uppdateras (duh). Hur frekvent spelet uppdateras beror på hur lång tid det tar för enheten som kör spelet (dator, mobil, konsol) att köra alla beräkningar och rita ut allt på skärmen. En utritning av spelets nuvarande läge brukar kallas en "frame", ruta.
Desto längre tid mellan frames desto mindre följsamt blir det. Du har oundvikligen hört talas om FPS, och folk som bråkar om 30 FPS vs 60 FPS.

Spoiler:?poiler:Spoiler:Lite utanför ämnet, men du kan faktiskt göra en personlighetstest som har med FPS att göra. Testet går ut på att titta på en video som är 30 FPS och en som är 60 FPS och sedan ange om du ser skillnad eller inte. Om du enkelt kan se skillnad: grattis! Det säger inget om din personlighet men du har åtminstone normalt fungerande ögon och occipitallob. Om du däremot påstår att du inte kan se skillnad, åtminstone inte utan att anstänga dig ordentligt, så säger det att du har en tendens att ljuga, eller att du tenderar att självmedicinera rätt ofta.

Krafter och normalkrafter
Krafter är det vi gett namnet på de interaktioner som får objekt att ändra hastighet. Gravitationskraft är ett exempel, som i vårat spel får bollen att röra sig nedåt. Bollen dras konstant nedåt, men den stannas av plattformen utan att åka igenom. Då bollen ligger på plattformen så dras den fortfarande ner av gravitationen, och den trycker ner på plattformen. Det är ju självklart kan man tycka, och att den inte åker igenom (så länge fysikmotorn fungerar korrekt) är för att plattformen utövar en så kallad normalkraft på bollen, som är lika stor som gravitationskraften som bollen utöver fast i motsatt riktning. Hade världen inte fungerat såhär hade objekt helt enkelt åkt igenom varandra utan att kollidera.

När bollen rör sig genom luften så saktas den ned, då det kostar lite energi att putta bort luften som är där (nu är det inget som är luft där egentligen i Unity, det bara simuleras genom att bollen saktas ned), luften utövar ju samma kraft som bollen utöver mot luften, fast i motsatt riktning. Luften är dock mycket lättare att flytta på än bollen då den inte har så stor massa per volym (densitet). När vi knuffar bollen får den rörelseenergi, och det lilla som det kostar i energi att röra sig genom luften resulterar i att bollen saktar ned.

Vektorer
Kommer du ihåg när din lärare sa att du en dag skulle kunna dra nytta av att lära dig matte? Den dagen är nu...lite grann i alla fall. En sak du bör ha stött på är koordinatsystem, och du kanske kommer ihåg hur man skriver ut en punkts position. Origo, alltså mitten, skrivs (0, 0), noll på x-axeln, noll på y-axeln. En punkt som ligger fyra steg åt höger och två upp skrivs (4, 2), en som ligger ett steg åt vänster och tre nedåt (-1, -3).
Vektorer skrivs på samma sätt, fast de beskriver inte punktens position utan linjen mellan två punkter, ofta origo och en annan punkt.

Rent matematiskt är en vektor ett geometriskt objekt som har storlek och riktning. Ett exempel på detta är hastighet, som både har storlek och riktning (storleken här kallas fart). Vi ut går från en bil som bara kör i ett rakt streck, och den rör sig i relation till en startlinje, antingen bakåt eller framåt. Oavsett om den backar eller kör fram i 10 km/h så är farten 10 km. Men hastigheten är -10 km/h om den backar, och 10 km/h om den kör framåt, så vi har både storlek: 10 km/h, och riktning: plus eller minus.

När vi lägger till en kraft som pekar 10 världsenheter åt vänster, så är det i relation till bollens nuvarande position.

Det var allt för denna gången
Är upptagen över påsk, så det är tveksamt om det blir något den helgen, men ska försöka få upp nästa del under vecka 16. Hojta till om det är något som krånglar, om du har några funderingar eller förslag.

Tidigare delar
#0 - Introduktion
#1 - Installera och lär dig Unity

HQ

(Omarbetad) Lär dig skapa ett spel #1 - Installera och lär dig Unity

Skrivet av peligon den 9 april 2017 kl 14:39
This post is tagged as: spel, tutorial, unity

(Omarbetad) Lär dig skapa ett spel #1 - Installera och lär dig Unity

Extraläsning

Kort om "GameObject", spelobjekt i Unity
"Empty"s, tomma spelobjekt, har enbart en så kallad transform, som säger var någonstans i världen ett spelobjekt befinner sig, samt objektets rotation och eventuella skalning. Transform är en komponent. Spelobjekt är en samling komponenter. Alla spelobjekt i Unity består minst en transform-komponent. Komponenter är saker som beskriver spelobjektet: hur spelobjektet ska ritas ut, dennes fysiska attribut, hur det är format, med flera. Allt i din scen är spelobjekt, klicka på kameran så ser du att den inte är mycket mer än en transform-komponent och kamera-komponent.


Avslut
Detta är en omarbetad version, jag valde att göra allt till en stor bild med text istället. Nästa del som handlar om input är redan klar och ska bara publiceras, så den är uppe inom timmen. Förhoppningsvis är det enklare att följa.

Några frågetecken? Lämna en kommentar eller skicka ett meddelande så hjälper jag till.

Tidigare delar
#0 - Introduktion

Lär dig skapa ett spel #1 - Installera och lär dig Unity

Skrivet av peligon den 26 mars 2017 kl 23:40
This post is tagged as: tutorial, unity, spel, lär dig skapa ett spel

Lär dig skapa ett spel #1 - Installera och lär dig Unity

I denna första riktiga delen av serien går vi igenom hur man installerar Unity, vilket är det enda programmet vi kommer att använda oss av (bortsett från ett annat program som följer med Unity). Vi kommer också bekanta oss lite med Unity och skapa något väldigt, väldigt simpelt.

Instruktioner
Video över processen

1. Gå till Unitys nedladdningssida, välj Personal-versionen som är för hobbyverksamhet, vilket är det vi kommer syssla med. På nästa sida klicka på den gröna knappen för att ladda ned så får du den senaste versionen. Jag kör version 5.5.2, men förmodligen gör det inte om du får en nyare version. Utifall att guiden inte stämmer för nyare versioner så hittar du äldre versioner här.

2. Kör installationsprogrammet. När du kommer till steget där du ska välja mellan 64 bitars- och 32 bitars-arkitektur så tar du det som passar din dator, det gör ingen skillnad vare sig nu eller längre fram i serien då vi endast kommer att göra spel till dator. Har du Windows kan du se vilken arkitektur du har i din dator genom att öppna startmenyn och skriva in "dxdiag", kör programmet och titta vad som står för värde för operativsystem.

3. När du ska välja komponenter så ändrar du ingenting. Om du Visual Studio installerat och vill koda i det så rekommenderar jag att du kryssar i "Microsoft Visual Studio Tools for Unity", men det är inget vi kommer använda oss av i den här guiden. Fortsätt installationen som vanligt.

4. När Unity har installerats så startar du upp det. Skapa en Unity-användare, logga in och gå vidare. Frågar den om vilken licens du har så väljer du återigen "Personal". Första gången du startar dyker det upp en enkät om vad du använder Unity till. Fyll i den hur du vill, den spelar ingen roll för oss.

5. Välj att skapa ett nytt projekt, döp det till "my-first-project" (eller vad som helst annat, spelar ingen roll). Välj att projektet ska vara i 2D. Unity analytics spelar ingen roll, du kan stänga av det om du vill.

6. Välkommen till Unity! Låt det inte skrämma bort dig med sina främmande rutor och genomgående gråbleka färgtema. Den mörkgråa rutan i mitten är scen-vyn. Här ser du din scen, vilket man kan säga är din bana, och det är här du kommer sitta mest. Vi återkommer till den strax.
Till vänster har du en hierarki-vy, här ser du alla objekt som är i en scen. Med objekt så menar jag alla saker och ting som är i spelet, såsom spelare, fiender, plattformar, livsmätare, allt. I nedkanten har vi projekt-vyn och konsol-vyn. Konsolen behöver du inte bry dig om. I projekt-vyn har du en "Assets"-mapp, en mapp som innehåller alla tillgångar du har i projektet, såsom bilder och sprites, ljudfiler och annat du vill importera. Även prefabs sparas här, något vi tar upp i nästa del. Till höger ser du inspektions-vyn, här visas information om det aktiva objektet, alltså det objektet du jobbar med.


Observera
Varje gång vi skapar ett objekt, se till så att inget annat objekt är markerat i hierarki-vyn. Skapar man ett objekt medan ett annat är markerat/aktivt så blir det ett barn till det objektet. Om vi flyttar ett objekt som har barn-objekt så påverkas barnens position. För att undvika detta, klicka någonstans i hierarki-vyn där det är tomt, för att avmarkera objekt, innan varje gång du lägger till ett objekt (förutom vid duplicering, då måste ett objekt vara markerat).

7. Det är dags att ta ett steg in i Unity. I scen-vyn finns inte mycket förutom en ikon i form av en kamera, och en ram som visar kamerans synfält. Kameran finns i hierarkivyn med namnet "Main Camera". Detta är ju inte särskilt spännande, så vi lägger till ett objekt. Högerklicka i hierarki-vyn, någonstans under "Main Camera" och välj "Create Empty", vilket skapar det simplaste av objekt som vi kan ha: tomma objekt. Objektet dyker upp i hierarki-vyn samt scen-vyn, och får namnet "GameObject", spelobjekt. Objektet är markerat i scen-vyn med en grå cirkel, och det ligger precis där kameran är, mitt i bild. Objektet är dock så pass innehållsfattigt att det inte har något som säger hur det ska ritas ut, och är därför osynligt. Med vårt spelobjekt markerat (om du råkat avmarkera det så är det bara att klicka på det i hierarki-vyn) tar vi en titt i inspektions-vyn. Där ser vi en transform-komponent.

Kort om "GameObject", spelobjekt i Unity
"Empty"s, tomma spelobjekt, har enbart en så kallad transform, som säger var någonstans i världen ett spelobjekt befinner sig, samt objektets rotation och eventuella skalning. Transform är en komponent. Spelobjekt är en samling komponenter. Alla spelobjekt i Unity består minst en transform-komponent. Komponenter är saker som beskriver spelobjektet: hur spelobjektet ska ritas ut, dennes fysiska attribut, hur det är format, med flera. Allt i din scen är spelobjekt, klicka på kameran så ser du att den inte är mycket mer än en transform-komponent och kamera-komponent.

8. Med vårt spelobjekt markerat, klicka på "Add Component" under transform-komponenten. Klicka på "Rendering" och sedan "Sprite Renderer"-vips så dyker en Sprite-renderings-komponent (lite långt att skriva så vi nöjer oss med "Sprite-komponent" upp. Den innehåller en del attribut. Det vi är intresserade av är Sprite-attributet. Vi klickar på cirkeln längst till höger. I menyn finns det en fåtal sprites att välja på. De är egentligen skapta för GUI, men vi norpar den vid namn "Knob", helst utan att fnissa. Voilà, vårt objekt ritas nu ut i scen-vyn. Om du inte ser det så behöver du zooma in eftersom kamera-ikonen är i vägen, så scrolla för att zooma in manuellt eller så dubbelklickar på objektet i hierarki-vyn så slipper du göra jobbet.
Luta dig tillbaks ett tag och känn dig stolt över din skapelse, för att sedan gå vidare till nästa steg.

9. Nu börjar det likna något. Klicka på play-knappen i menyn ovanför scen-vyn, och scen-vyn byts mot spel-vyn. Vårt första spel är äntligen klart! Tack och hej, serien är över! Nej då, så mycket har vi inte åstadkommit ännu, och det ändå vi möts av i spel-vyn är en vit liten prick i ett hav av blått. Ingenting händer, men spelet är igång, det är bara det att vi inte sagt hur något ska fungera. Avsluta spelet och gå tillbaka till scen-vyn genom att klicka på play-knappen igen.

Det första vi vill är att få till lite rörelse på skärmen. Vi gör det enkelt med hjälp av lite gravitation. I inspektions-vyn så lägger vi till ytterligare en komponent, en av typen "Physics 2D" -> "Rigidbody 2D". Detta är en komponent som beskriver ett 2D-objekts fysik, och har en massa läskiga attribut. Som tur är behöver vi inte ändra något, så vi nöjer oss med att observera att där finns ett attribut vid namn "Gravity Scale" som är satt till 1, alltså normal gravitation. Klicka på startknappen, och förundras av den ca 1 sekund långa åsynen av din fallande boll. Aj då, vi behöver lite gränser i världen. Avsluta spelet.

10. Det är dags att skapa ett nytt spelobjekt, vi högerklickar i hierarki-vyn och lägger till en "2D Object" -> "Sprite". Detta bevarar oss från mödan att lägga till Sprite-renderings-komponenten själva, den följer med denna typ av objekt. Vi klickar återigen på cirkeln till höger om Sprite-komponentens Sprite-fält och väljer en sprite som finns i menyn.

Om du är ambitiös så kan du högerklicka på "Assets" i projektvyn och välja "Create" -> "Sprites" -> "Square". Spara den som "platform_sprite" (vi håller oss till namnsättning på engelska), markera ditt nya objekt och dra din sprite från projekt-vyn upp till Sprite-fältet och släpp.

Flytta ner din kub genom att aktivera flyttverktyget i uppe till vänster (det till höger om handen), eller tryck på W. Ditt objekt har nu omringats av färgglada pilar. Dra i den gröna pilen för att ändra positionen endast i Y-axeln, alltså låst vertikalt. Färgerna är: grönt för Y, rött för X och blått för Z (vi bryr oss inte om Z-axeln då vi jobbar i 2D). Observera att värdet för Y-position ändras i transform-komponenten. Vill man så kan man skriva in värden manuellt, för precisa flyttningar.

Flytta ned objektet så att det är i nedkanten av kamerans synfält, utan att vara utanför. Var exakt du placerar dina objekt spelar ingen roll. Tryck sedan på knappen för skalning, näst längst till höger i samma meny, eller tryck R. Här ser vi något liknande, fast med kuber istället för pilar. Dra i ren röda kuben för att skala objektet i x-led, horisontellt. Dra tills den blir bred nog att täcka bredden i kamerans synfält. Grattis, du har skapat en plattform!
Klicka på plattformen i hierarki-vyn, högerklicka och välj "Rename", alternativt tryck F2 (Windows) eller Enter (OS X). Skriv "Platform" och tryck enter. Så, lite bättre namn. Gör detsamma för det andra objektet, döp det till "Ball".

11. Nu har vi kommit en bit, bäst vi sparar vårt arbete. I menylisten allra längst upp väljer vi "File"->"Save Scenes" (CTRL/CMD+S). För att spara måste vi namnge vår scen. Döp den till "test-scene". Framöver kan vi snabbt spara scenen. Spara ofta så slipper du förlora ditt arbete om något skulle hända.

12. Sätter vi igång spelet nu kommer bollen falla igenom plattformen som om den inte vore där. De hade inte vetat att de skulle kollidera med varandra. För att de ska kunna krocka måste de båda ha en beskrivning på hur de är formade. Vi börjar med plattformen, och lägger till "Physics 2D" -> "Box Collider 2D". Du ser nu en grön rektangel kring din plattform. Det är så omvärlden kommer uppfatta ditt objekt, så även om sprite:n för plattformen går utanför rektangeln eller innanför så är den gröna rektangeln som bestämmer. Om du vill kan du anpassa variablerna Size X och Y för att få den att stämma någorlunda bättre med din plattform.
Vi gör detsamma för bollen, fast med en "Circle Collider 2D". Anpassa "Radius" under komponenten tills den gröna cirkeln är ungefär i samma storlek som din boll, det behöver inte vara så noggrant gjort. Starta spelet med startknappen. Bollen faller och landar på plattformen. Sådär ja!

13. Vi avslutar med att göra det lite mer intressant. Markera din plattform, högerklicka och välj "Duplicate" för att skapa en kopia av plattformen (CTRL/CMD+D). Flytta upp plattformen (W) och välj rotationsverktyget (E), rotera det genom att dra i någon av de yttre cirklarna. Sätt det lite snett någonstans en bit under bollen så att den studsar lite åt sidan när de krockar, duplicera plattformen och lägg den någonstans där bollen kommer krocka med den. Lägg till så många du vill. Starta och se vad som händer.

Det var allt för den här gången, se till att spara när du är klar.
Den här delen blev lite försenad, i framtiden ska jag försöka släppa delar senast 20:00, men förhoppningsvis eftermiddagen. Några frågetecken? Lämna en kommentar eller skicka ett meddelande så hjälper jag till.
Nästa gång blir det att fixa så att vi kan styra bollen.

Tidigare delar
#0 - Introduktion

Lär dig skapa ett spel #0 - Introduktion

Skrivet av peligon den 25 mars 2017 kl 23:49
This post is tagged as: unity, tutorial

Lär dig skapa ett spel #0 - Introduktion

Tjenamors, tänkte dra igång en bloggserie där vi lär oss hur man gör ett spel.
Jag har valt att kalla den här första delen för del 0 då spelmakandet inte börjar förrän nästa del. Här pratar vi istället om vem och vad serien är till för.

Målet med denna serie är att du ska lära dig göra ett enkelt spel genom att följa enkla steg
Den är för till för dig som är nyfiken av att skapa ett spel, som kan lite grann om ämnet eller ingenting alls, som har en spelidé som du vill förverkliga, eller dig som är lite uttråkad på helgen och bara vill ha något att göra.
Jag bestämde mig för att skapa den här bloggen då jag inte sätt något i den här stilen på Gamereactor, och tänkte att det skulle vara trevligt att ha en då det säkert är många här som är intresserade av att göra spel.

Vad krävs?
Det är menat att serien ska vara lätt att följa för vem som helst, men det finns ett fåtal krav. Du bör ha datorvana, en relativt modern dator (vi kommer inte göra något som är särskilt intensivt) som kör Windows 7 (eller senare) alternativt Mac OS X 10.8 (eller senare).

Är det svårt?
För att göra det lätt för alla så tar vi små, försiktiga steg, så att det aldrig blir mer jobbigt än vad det är kul.
Tanken är att varje del i serien kommer ta mellan 10-30 minuter att genomföra, beroende på hur snabbt du jobbar.
Då det är en introduktion till spelskapande och vi vill hålla det enkelt så har jag valt att inte fokusera på detaljerna och jag kommer försöka att inte gå in på det tekniska mer än nödvändigt. Du kommer inledningsvis känna dig helt vilse vad gäller vissa delar, såsom programmeringen, men det är väntat. I sådana tillfällen är det bara att följa instruktionerna-kunskapen kommer efter hand. Blir det någonsin för mycket så hjälper jag till.

Om spelet vi kommer skapa
Det kan vara bra att ha stora drömmar och grandiosa idéer om vad du vill uppfylla, men du får tygla dina ambitioner något, för här kommer vi bara göra något simpelt. Spel är en konstform som ingen annan då den kombinerar flera av de traditionella konstformerna, bland annat komponerande, målning och berättande. Spel är interaktiva, och hur interaktionen sker mellan spelare och spel, det som kallas gameplay, är en konstform i sig.
Med det sagt kommer vi alltså inte göra det jobbigt för oss med ljud, modellering/ritande eller ens berättande, istället fokuserar vi på det som är unikt för spel: interaktion och gameplay. Alla resurser såsom bilder och eventuella ljud vi använder oss av kommer jag tillhandahålla, så att du kan fokusera på det som relevant.

Hur vi skapar spelet
Skulle vi vilja göra saker "ordentligt" så skulle vi programmera ihop en spelmotor själva. Då hade serien tagit runt 5 år att göra klart. Det hade varit lärorikt för min del såväl som de 2 personer som hade följt med ens halvvägs.
Jag vill dock inte skrämma iväg någon genom att göra saker onödigt svåra, så vi använder oss av de verktygen som finns. I den här serien använder vi oss av Unity, och håller oss till det.

I nästa del som släpps imorgon så sätter vi igång och installerar Unity, samt skapar ett enkelt objekt som senare kommer bli våran spelare.