onsdag den 12. januar 2011

Spiludvikling SITREP

I den første halvdel af mit sabbatår er det gået rigtig godt med spiludvikling.

I sommers satte jeg mig en række mål, hvoraf spiludvikling, mere specifikt programmering, stod højt på listen. Jeg har været rigtig godt i gang, og takket være 3D Buzz og deres XNA 101 Extreme-videoserie har jeg lært rigtig meget om objekt-orienteret programmering. Der startes ud helt fra bunden, hvor programmeringssprog bliver forklaret generelt, hvorefter der undervises i C#. Senere bliver Microsofts XNA-framework introduceret, hvilket gør det muligt at lave spil til Xbox 360.

Det såkaldte VTM-format (Video Training Module) er en meget effektiv måde at lære på. Det er nærmest som at have sin egen private tutor, som underviser én. Her kan man kan tage sig alt den tid, man har lyst. Man kan pause, spole frem/tilbage, og alting forklares på en enkelt, men dybdegående, facon. Jeg har selvfølgelig lært de basale programmerings-ting om variabler, loops, classes, osv., men derudover har jeg nu også en rimelig god forståelse for begreber som inheritance, polymorphism, constructers, enumerators, casting, reference/value types m.fl.

Her er nogle eksempler fra de ting, jeg har lavet igennem XNA 101-kurset:

Først blev jeg kastet ud i et temmelig omfattende "Hello World"-projekt, som gik ud på at lave et simpelt text-adventure spil helt fra bunden. Det var en ret stor proces, men i sidste ende sad jeg med en lille game engine, som kan bruges til at skrive tekst-spil i. Formålet var "to get your hands dirty" og få noget praktisk erfaring, hvilket jeg må sige, at jeg gjorde i løbet af de knap 10 timers videoer i forbindelse med miniprojektet.


Efter at have spenderet mange timer i med Windows-konsollen var det dejligt endelig at få lov til at lege med noget mere visuelt. De første programmer lavede jeg som events-baserede WinForm-applikationer, hvor simple objekter bevægede sig rundt på skærmen.



Før jeg for alvor fik lov til at kaste mig ud i XNA-verdenen, skulle jeg igennem en række såkaldte "knowledge reviews". Man bliver stillet over for nogle opgaver, som man skal løse på egen hånd ved at gøre brug af alle de ting, man har lært indtil videre. De første opgaver var ganske nemme og ligetil, men som tiden gik, blev de mere og mere omfattende. Jeg har bl.a. sammensat et simpelt Pong-spil, samt en ikke-visuel DAG (Directed Acyclic Graph), hvilket i dén grad satte alle mine OOP-evner på prøve.




Det fedeste er dog, at jeg nu er nået til et stadie, hvor jeg ved hjælp af XNA-framworket kan programmere spil, som kan tage input fra en Xbox 360-controller. Selvom spillene stadig er forholdsvis simple, er det sgu meget cool.


XNA Extreme 101-videoserien er nok et af de bedste køb, jeg har gjort længe. Jeg er praktisk talt gået fra ingenting i sommers til nu at have en ganske god forståelse af C# og objekt-orienteret programmering - og jeg har endda den sidste af de tre volumes tilbage af videoserien. Jeg har set omkring 100 timers videoer om C# og XNA, som indeholder masser af nyttig og dybdegående teori. Vigtigst af alt bliver denne teori konstant afprøvet gennem praktiske eksempler, som illustrere de mange begreber. Jeg er rigtig glad for, at jeg er begyndt på C# i stedet for C++, som jeg forsøgte mig med tidligere. C# er meget lettere at gå til, især på grund af den fremragende IntelliSense-feature i Microsoft Visual Studio Express, som nærmest fungerer som stavekontrol. Godt nok har man mere kontrol over computerens ressourcer med C++, men det kræver så også lige dét ekstra af programmøren, for at tingene kan fungere.

Alt i alt er jeg godt tilfreds med mine fremskridt. Jeg er endnu ingen haj til at programmere, men jeg har fået mange af de basale ting på plads, og programmering virker ikke så skræmmende, som det gjorde tidligere. Det er stadig meget omfattende at blive en god programmør, hvilket jeg heller ikke rigtig stræber efter. Selvom programmering er sjovt og spændende, tvivler jeg på, at det er dén vej, jeg vil gå med min karriere. Alligevel er det en rigtig god ting at vide noget om programmering, uanset hvad man gerne vil inden for spiludvikling.

Udover at have siddet og programmeret derhjemme, var jeg i efteråret til Indie9000-game jam og lave Elastikins i Unity. Derudover var jeg i sidste uge på besøg hos Kiloo Games for at teste deres kommende DSiWare-spil Zoonies: Escape from Makatu. I næste måned planlægger jeg at tage på et 15-uger langt højskoleophold på Vallekilde, som netop er ved at starte deres Game Academy-linje om som den første af sin slags i verden. Jeg skal dog lige besøge skolen først, før jeg tager den endelige beslutning.

1 kommentar(er):

Tobias (Togbis) sagde ...

Det lyder som om du har haft travlt her efter sommerferien. :P
Jeg regner også selv med at tage et sabbat år her efter gymnasiet og har også tænkt mig at bruge en stor del af tiden på at studere spiludvikling - dog hovedsageligt den grafiske side af tingene.

Det lyder spændende med højskolen i Vallekilde.
Skriv endelig dine indtryk af besøget! :)

Tilføj en kommentar

Fandt du indlægget interessant - eller har ham der Gustav ikke fattet en hujende fis - så giv din mening til kende i kommentarfeltet herunder. Jeg ELSKER at få kommentarer, så kom bare med dem! :)