Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn...

29
Stageverslag Sticky Studios 25 januari 2013 Game Technology Informatica Hogeschool van Amsterdam Simon Karman

Transcript of Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn...

Page 1: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

Stageverslag Sticky Studios

25 januari

2013 Game Technology – Informatica – Hogeschool van Amsterdam Simon Karman

Page 2: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

2

VOORWOORD

Dit is het stageverslag van Simon Karman. Ik volg de studie Game Development met als richting Game

Technology op de Hogeschool van Amsterdam. Dit verslag is geschreven tijdens mijn stage in het derde jaar van

de opleiding. Ik heb dit verslag geschreven om mensen te kunnen informeren wat ik allemaal gedaan en

geleerd heb en ook zodat school mij kan beoordelen op mijn activiteiten op mijn stage.

Ik wil Sticky Studios bedanken voor de geweldige stage en de kans die ze me hierdoor geboden hebben om me

verder te kunnen ontwikkelen tot Game Developer.

Veel lees plezier,

Simon Karman

Page 3: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

3

INHOUDSOPGAVE

Voorwoord .............................................................................................................................................................. 2

Samenvatting .......................................................................................................................................................... 5

Nederlands.......................................................................................................................................................... 5

Engels .................................................................................................................................................................. 5

Lijst van Symbolen en Verklarende Woordenlijst ................................................................................................... 6

Inleiding ................................................................................................................................................................... 7

Hoofdtekst .............................................................................................................................................................. 8

Het Sollicitatie gesprek ....................................................................................................................................... 8

Voorbereiding ................................................................................................................................................. 8

Het Gesprek .................................................................................................................................................... 8

Na Afloop ........................................................................................................................................................ 9

Sticky Studios .................................................................................................................................................... 10

Eerste dag ......................................................................................................................................................... 11

Verwachtingen ............................................................................................................................................. 11

Werkplek ...................................................................................................................................................... 11

Bedrijfsstructuur ............................................................................................................................................... 12

Collega’s ............................................................................................................................................................ 13

Werkzaamheden ............................................................................................................................................... 14

Algemenen taken ......................................................................................................................................... 14

Hulp bij problemen ....................................................................................................................................... 14

Afspraken en Opleveringen .......................................................................................................................... 14

Extra taken ................................................................................................................................................... 14

Specifieke problemen met oplossing ................................................................................................................ 15

Probleem 1: De scrollselector ...................................................................................................................... 15

Probleem 2: Grid Eilandjes ........................................................................................................................... 16

Probleem 3: De Peasants.............................................................................................................................. 17

Meerdere Problemen ................................................................................................................................... 17

Page 4: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

4

C# en Unity ....................................................................................................................................................... 18

Programmeertalen in Unity .......................................................................................................................... 18

Component Based Programmeren ............................................................................................................... 18

JSON Files ..................................................................................................................................................... 19

Unity EditorScripts ........................................................................................................................................ 19

Coroutines en het Yield-Keyword ................................................................................................................. 20

Lambda Expressions / LINQ .......................................................................................................................... 24

Uitjes met het werk .......................................................................................................................................... 26

Conclusies ............................................................................................................................................................. 28

Bijlagen .................................................................................................................................................................. 29

Bijlage a: Het Logboek ...................................................................................................................................... 29

Bijlage B: Amerika ............................................................................................................................................. 29

Bijlage C: Mijn website...................................................................................................................................... 29

Bijlage D: Website Sticky Studios ...................................................................................................................... 29

Bijlage E: Reflectieverslag ................................................................................................................................. 29

Page 5: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

5

SAMENVATTING

NEDERLANDS

Ik ben Simon Karman, een Game Developer. Wat ik er leuk vind is om games te programmeren. Voor mijn

opleiding, Game Development op de Hogeschool van Amsterdam heb ik in de eerste helft van het 3e jaar stage

gelopen.

Toen ik begon met het zoeken naar een stage bedrijf heb ik hiervoor een portfolio website gemaakt waarop

werk van mij te bekijken is. Ik heb een aantal bedrijven gemaild en ben bij Sticky Studios op gesprek geweest.

Dit was een leuk gesprek en ik heb hier toen een stage aangeboden gekregen.

Sticky Studios is een bedrijf dat spellen ontwikkeld. Ze ontwikkelen casual, viral en advergames. Ik mocht

meteen aan de slag voor een van de grootste entertainment bedrijven van de wereld, Walt Disney. Hier heb ik

ongeveer drie kwart van mijn stage periode aan besteed. Ook ben ik een week naar Amerika geweest. De

overige tijd heb ik besteed aan andere projecten, meer gericht op films.

Ik heb bij Sticky vooral veel geprogrammeerd. Ik ging elke dag met plezier naar mijn werk. Ik heb veel trucjes in

Unity geleerd en ik begrijp een stuk beter hoe Unity in de achtergrond werkt. Hetzelfde geldt voor de

programmeer taal C#.

Naast dat het werk leuk was was het ook erg gezellig met de collega’s we hebben vaak vrijdag avond na het

werk gezellig nagepraat en gegamed en we zijn een aantal keer Utrecht in gegaan.

Al met al een super coole stage geweest!

ENGELS

I'm Simon Karman. I am a Game Developer and really like to program games. For my study I had to do an

internship during the first half of the 3rd year.

I started to look for an internship company. I used a portfolio website where work of me can be viewed. I have

emailed a number of companies and Sticky Studios invited me. It was a nice conversation and I got offered an

internship.

Sticky Studios is a company that develops games. They developed casual, viral and advergames. My first

assignment was a project for one of the biggest entertainment companies in the world, Walt Disney. I worked

on this project for about three quarters of my internship. I have also been to America for one week. The rest of

the time I spent on other projects, focused more on movies.

I mostly programmed at Sticky. I enjoyed going to my work every day. I have learned many tricks in Unity and I

understand how Unity works in the background way better. The same goes for the programming language C#.

Besides that the work was fun, it was also very pleasant with colleagues. We also played some games on Friday

evening after work or we would go to Utrecht Neude to drink some beers.

All in all a super fun internship!

Page 6: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

6

LIJST VAN SYMBOLEN EN VERKLARENDE WOORDENLIJST

In onderstaande tabel is een verklarende woordenlijst opgenomen.

Woord Verklaring

Sticky Studios Het bedrijf waar ik stage loop

Sticky De korte benaming voor het bedrijf waar ik stage loop

Stageperiode De periode die ik stage gelopen heb van 10 sept 2012 tot 25 jan 2013

C# De programmeer taal waarin ik heb gewerkt

Unity De Game Engine waarin ik heb gewerkt

Pitchen Een manier om werk binnen te halen bij opdrachtgever doormiddel van een korte ontmoeting of presentatie

Daarnaast zal ik in mijn verslag soms stukken programma code plakken om iets te kunnen illustreren. Hiervoor

zal ik de volgende opmaak gebruiken.

(dit is een willekeurig stuk code dat ik heb geschreven)

Page 7: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

7

INLEIDING

In dit verslag vertel ik hoe ik mijn stage heb ervaren. Wat ik leuk vond en wat ik minder leuk vond. Ook wil ik

kijken wat ik geleerd heb en of mijn bevindingen overeenkomen met mijn verwachtingen vooraf.

Ik heb bij het schrijven van dit verslag geprobeerd de chronologie te volgen. Maar ook te zorgen voor een

logische opbouw.

In dit verslag zal ik eerst iets vertellen over hoe ik bij Sticky Studios terecht ben gekomen. Hoe de sollicitatie is

verlopen en waar het bedrijf Sticky Studios zich mee bezig heeft gehouden en wat de bedrijfsactiviteiten van

Sticky Studios zijn.

Hierna zal ik ingaan op de verwachtingen die ik van tevoren had en wat in het begin van mijn stage gedaan heb.

Ik zal wat vertellen over mijn werkplek en over de collega’s met wie ik gewerkt heb en hoe het bedrijf Sticky

Studios qua structuur in elkaar zit.

Hierna zal ik uitleggen wat ik in mijn stage periode allemaal gedaan heb en tegen welke problemen ik hierbij

ben opgelopen en hoe ik deze problemen heb opgelost.

Vervolgens zal ik een opsomming geven van de uitjes die we met het werk hebben gehad. Dit was natuurlijk

gewoon erg gezellig!

Als laatste onderdeel heb ik een algehele conclusie over mijn stage opgenomen.

De literatuurlijst, bronnen en bijlage zijn aan het einde van mijn stageverslag te vinden te vinden.

Page 8: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

8

HOOFDTEKST

HET SOLLICITATIE GESPREK

Toen ik ben begonnen met het zoeken naar een stage bedrijf heb ik rond gekeken op internet. Toen ik een

aantal leuke vacatures had gevonden heb ik deze bedrijven gemaild. In deze mail heb ik mijn motivatie

neergezet en tevens mijn site meegestuurd waarop ze werk van mij kunnen bekijken. Ook heb ik geprobeerd

zoveel mogelijk contactinformatie mee te sturen.

Nadat ik een aantal bedrijven een email gestuurd had werd ik door een bedrijf terug gebeld. Dit bedrijf was

Sticky Studios. We hebben toen een afspraak gemaakt voor een sollicitatie gesprek.

VOORBEREIDING

Als voorbereiding op het sollicitatie gesprek heb ik op de site van Sticky Studios rond gekeken. Ik heb gezocht

naar informatie over werknemers, opdrachtgevers, hun motto en doelstellingen en natuurlijk de games die ze

gemaakt hebben.

Ook heb ik me voorbereid op vragen waar ik goed in ben, waar ik me in wil ontwikkelen en ook waar ik minder

goed in ben.

Door al deze voorbereidingen ging ik met een goed gevoel naar het sollicitatie gesprek toe.

HET GESPREK

Het sollicitatiegesprek bij Sticky Studios heb ik gevoerd met David, de producer, en Tom, de lead programmeur.

Jeroen, de eigenaar van het bedrijf, was die week in Amerika en kon dus niet aanwezig zijn bij het gesprek.

In het gesprek hebben we het vooral gehad over wat ik graag zou doen binnen het bedrijf en wat de

bedrijfsactiviteiten zijn en of dit bij mij aansprak. Tom was daarnaast erg te spreken over het stuk source code

dat ik had opgestuurd. Hij vond het er goed uit zien en dit was volgens mij een redelijk doorslaggevende factor.

Wat David zich ook afvroeg was waarom ik pas zo kort voor de stage (2 weken voor het begin) naar Sticky

Studios had gemaild. Hierop heb ik toen geantwoord dat ik normaal altijd goed op tijd ben met dit soort

belangrijke zaken maar dat het afgelopen half jaar op school nogal druk was geweest en ik op vakantie was

gegaan dus aan het begin van de vakantie een aantal weken rust genomen had. Dit was verder geen probleem.

Het was een plezierig gesprek en er was eigenlijk meteen wel een klik. Aan het einde van het gesprek zei David

dat hij geen beslissing kon nemen over het aannemen van mij, maar dat hij wel een positief advies aan Jeroen

door kon geven.

Page 9: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

9

NA AFLOOP

Een paar dagen na de sollicitatie ben ik door David teruggebeld. Hij zei me toen dat hij me de stage wilde

aanbieden voor het komend half jaar. We hebben toen meteen een nieuwe afspraak gemaakt om te bepalen

wanneer ik kon beginnen, om Jeroen te ontmoeten en om wat afspraken te maken.

AFSPRAKEN

We hebben afspraken gemaakt zoals hoelang een werkdag duurt, wanneer de pauzes zijn en dergelijke.

Ook heb ik een rondleiding gekregen door het bedrijf en heb ik Jeroen ontmoet. Jeroen heeft vervolgens mijn

stage contract ondertekend. Ik moest tevens een contract voor Sticky Studios ondertekenen, namelijk de NDA

(Non-Disclosure Agreement).

Ik heb zelf ervaren dat ik liever iets meer duidelijkheid had gehad over de afspraken en dergelijke binnen het

bedrijf. Uiteindelijk is het allemaal goed gekomen, maar ik had graag iets meer informatie gehad over

werktijden, snipperdagen en de stagevergoeding. Allemaal dingen waar ik zelf niet over ben begonnen omdat

ik dit ‘raar’ vond om te doen, zo bij een eerste ontmoeting. Waarschijnlijk zal ik dit een volgende keer wel

vragen als de situatie dat toelaat.

NON-DISCLOSURE AGREEMENT

Voor Sticky Studios heb ik een NDA ondertekend. Dat houd in dat ik niks mag doorvertellen wat ik doe bij Sticky

Studios. Dit was natuurlijk meteen heel officieel voor mij en dit heeft ook wel echt een indruk achter gelaten

dat ik niks door mag vertellen.

Hoewel ik de reden van een NDA wel begrijp vond ik het wel jammer vond was dat ik niet aan vrienden en

familie kon vertellen met welke coole dingen ik me bezig hield. Ook mag ik niet veel op mijn website zetten.

Page 10: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

10

STICKY STUDIOS

Sticky Studios is een Game Studio gevestigd in

Utrecht, met een contact persoon in New York.

Het is een Game Studio die zich vooral richt op

het maken van games in een korte tijdspanne.

Sticky Studios maakt dus producten die

bedoeld zijn om andere bedrijven of producten

bekender te maken door middel van spel.

Een quote van de Sticky Studios website:

Sticky Studios is a games studio focused on delivering powerful game experiences, compelling story-lines and

captivating visuals with truly engaging game play. We produce a variety of game types, including viral, social

and serious games for a wide range of platforms. We are located in Utrecht and New York. 1

Een aantal voorbeelden van games die Sticky Studios heeft ontwikkeld zijn:

- Madagascar 3

- Wrath of the Titans

- Hess Racer

Dit zijn vooral games die voor films worden gebruikt om ze te promoten, of zoals bij Hess Racer een product

promoten. In onderstaande lijst is te zien voor welke bedrijven Sticky Studios al aan de slag is geweest.

1http://www.stickystudios.com/studio/

Page 11: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

11

EERSTE DAG

VERWACHTINGEN

Toen ik de eerste dag op weg ging had ik eigenlijk van tevoren niet zo’n goed idee wat ik moest verwachten. Ik

wist dat Sticky Studios in Unity werkte en daar had ik ook al wel wat ervaring mee. Aangezien er nog geen

computer voor mij beschikbaar was moest ik de eerste week mijn eigen laptop meenemen zodat ik hierop kon

werken.

Wat ik verder verwachtte was dat ik vooral bij collega’s ging meekijken wat ze aan het doen waren en dat ik

software op mijn laptop moest installeren.

WERKPLEK

De plek waar alle werknemers zitten is een grote ruimte met tafels en computers. Verder is er nog een zithoek,

een keukentje, een server room en een vergaderruimte.

Toen ik voor het eerst binnen kwam kreeg ik van David een plek toegewezen. Hier heb ik toen mijn laptop

neergezet. Ik ben toen rond gaan lopen en heb bij alle werknemers gevraagd hoe ze heten, wat ze doen binnen

het bedrijf en aan welke game ze aan het werkten.

Hierna heb ik de standaard programma’s die bij Sticky

Studios gebruikt worden geinstallereerd

(Unity/Thunderbird).

Ook hadden we met alle programmeurs samen een

scrum achtige meeting, waarin we bespraken wat de

programmeurs deze week allemaal gingen doen.

Bij deze meeting kreeg ik ook meteen een taak

toegewezen. In Unity ben ik aan de slag gegaan met de

GUI elementen van een project. Ik ben toen begonnen

met de simpele klus om buttons andere art te geven.

Marc een collega van mij die ook stagiaire is heeft mij

goed op gang geholpen met het project en hoe alles in

z’n werk gaat met de UnityAssetServer en dergelijke.

Dit was een erg leuke eerste dag waarop ik met

iedereen kennis heb gemaakt. Ik vond het vooral cool

dat ik meteen werd gezien als een collega en direct aan

de slag kon met een project.

Page 12: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

12

BEDRIJFSSTRUCTUUR

Bij Sticky Studios werkten 17 mensen in de tijd dat ik er stage heb gelopen. Hieronder heb ik een schema

gemaakt van de bedrijfsstructuur.

Jeroen is de directeur en oprichter van Sticky Studios. Hij

heeft het bedrijf samen met Mikel opgericht. Mikel is de

hoofdartist en Tom de hoofdprogrammeur.

Binnen Sticky werken we met scrum. Dit heb ik ook op school gehad en het was dus makkelijk inspringen en

goed toe te passen. Omdat het bedrijf via korte sprints en scrum werkt is iedereen eigenlijk gewoon met alle

projecten bezig en is er niet echt per project een organisatiestructuur. Verder heeft iedereen ook gewoon wat

te zeggen bij alle projecten.

Als je dus leuke ideeën of dergelijke hebt kan je dit bespreken en kijken wat anderen hiervan vinden. Als

mensen niet uit een probleem binnen een project komen dan komen er soms ook meetings waar het hele

bedrijf bij is om te kijken wat er kan gebeuren om dit op te lossen.

Met Marc en Tom in Florida, Orlando

Page 13: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

13

COLLEGA’S

Ik heb eigenlijk over de gehele periode bij Sticky Studios steeds met andere mensen samen gewerkt. Dit was

erg leuk om met bijna iedereen een project samen te hebben gedaan.

In het begin toen ik bij Sticky Studios kwam werken heb ik veel met Marc en Tom gewerkt aan een interactieve

applicatie voor in een attractie. Marc heeft mij in het begin op weg geholpen en laten zien waarmee ik aan het

werk kon. Het project was al een heel erg groot en complex dus het was erg goed om samen met hem hierover

te kunnen praten. Als ik er met Marc niet uit kwam dan vroegen we vaak aan Tom hoe het in elkaar zat. Ook

Dave had een aantal onderdelen van de interactieve applicatie voor in een attractie gemaakt en ik heb toen

ook een aantal keer met hem overlegt.

Ik ben ook met Marc en Tom naar Amerika geweest. Dit was erg gezellig en een mooie ervaring. Heel erg gaaf

om als stagiaire naar Amerika te mogen. Ik heb een apart verhaal geschreven over wat ik heb gedaan in

Amerika. Zie hiervoor bijlage B.

Er was nog een ander project dat met de interactieve applicatie voor in een attractie te maken had. Daar heeft

Berry veel aan gedaan hier heb ik uiteindelijk ook nog wat taken voor uitgevoerd.

Mijn werkplek was naast Bob aan de tafel. Met Bob maakte ik vaak even een praatje en we bekeken even bij

elkaar waar de ander mee bezig was en hoe het ging met het werk. Ook legde Bob me uit hoe dingen qua art

werken voor het project waar hij op dat moment mee bezig was. Erg interessant!

Natuurlijk met de lunch en de uitjes vaak met iedereen gepraat. Er waren dus niet echt collega’s die ik nooit

sprak of niet zag.

Ongeveer op de helft van mijn stage kregen we te horen dat Jeroen zijn eerste kind, Daan, had gekregen. We

hebben Daan toen met z’n allen een haaien pyjama gegeven.

Aan het einde van de stageperiode heb ik aan aan een paar andere projecten gewerkt. Ik ging meedoen in een

project waarbij ik met Nikos en Jeroen samenwerkte om een test-applicatie te maken die Jeroen in Amerika

zou gaan pitchen. Later toen Nikos op vakantie was heb ik deze applicatie zelf voor Jeroen afgemaakt.

Een ander project waar ik aan heb gewerkt was samen met Dennis, Ramana, Bastian en Jordi. Eigenlijk zo’n

beetje de rest van het bedrijf. Omdat we op het zelfde project zaten met zo’n grote groep hebben we veel

vergaderd. Dit zodat we wat beter bij konden houden waar iedereen mee bezig was.

Naast dat ik met al deze mensen heb samen gewerkt heb ik natuurlijk ook veel met David te maken gehad.

David was eigenlijk de persoon die zorgde dat alle projecten goed bleven lopen en dat iedereen met de goede

dingen bezig was. Hij zorgde ervoor dat we niet teveel taken en feedback over ons heen kregen en hij heeft er

voor gezorgd dat iedereen aan het begin van de week bezig ging met zijn of haar taken voor die week. Ook

hield David in de gaten of iedereen tijdens de week op schema bleef. Voor administratieve zaken als vrije

dagen, vakanties en declaraties moest je ook bij David zijn. Hiervoor moest je vaak wel even een

herinneringsmailtje sturen.

Voor het salaris en de verwerking van loonsgegevens moest je bij Jitske zijn. Dit is de vriendin van Jeroen en die

deed de personeelszaken.

De personen die ik nog niet genoemd heb en met wie ik dus wat minder te maken heb gehad zijn allemaal

artists.

Page 14: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

14

WERKZAAMHEDEN

ALGEMENEN TAKEN

Mijn voornaamste taak was programmeren. Maar om goed te kunnen programmeren in een groep moet je veel

overleggen. Als je tegen problemen aan loopt moet je dit proberen op te lossen en het goed kunnen

bespreken. Ook sta je bij sommige taken extra onder druk omdat je met afspraken en opleveringen bezig bent.

Daarnaast zijn er natuurlijk altijd extra taken die binnen het bedrijf die moeten gebeuren.

HULP BIJ PROBLEMEN

Als ik problemen had of dingen waar ik niet uitkwam kon ik altijd hulp vragen aan Tom. Naast Tom kon ik qua

projectgerichte vragen terecht bij David.

Als ik bijvoorbeeld wilde weten wat iemand anders vond van de manier hoe ik een probleem wilde oplossen,

dan ging ik naar Tom of David om te kijken of dit qua kwaliteit of tijdsbesteding goed was om aan te pakken.

Uit dit soort gesprekken haal je vaak veel informatie hoe iemand anders een probleem zou oplossen. Zo kom je

samen tot een idee en dan kan je verder gaan met het uitwerken.

AFSPRAKEN EN OPLEVERINGEN

Op het moment dat er een oplevering was of een deadline voor een belangrijk project dan gingen we in overleg

met z’n allen om te bespreken wat er allemaal nog moest gebeuren en wat de taakverdeling was.

Aan het begin van de week spraken we af wat we aan het einde van de week gingen opleveren. Je had dus

ongeveer een week de tijd om je taken af te ronden. Het was dan ook belangrijk dat je redelijk accuraat kon

inschatten hoe lang je dacht bezig te zijn met een taak. Dit vond ik in het

begin wel erg lastig. Dit was vooral lastig omdat ik op school nooit echt

voor ik iets ging programmeren hoefde na te denken of het wel kon en hoe

lang een opdracht duurde. Op school weet je namelijk dat de opdrachten

die je krijgt te doen zijn en ook binnen een bepaalde tijdspanne. Op mijn

stage heb ik geleerd dat dit op echte opdrachten wat minder van

toepassing is.

Het inschatten van tijdsbestedingen van opdrachten ging richting het einde

van de stage wel beter en ik durfde ook wat makkelijker preciezere

inschattingen te maken.

EXTRA TAKEN

Naast dat iedereen gewoon z’n werk deed waren er natuurlijk ook taken zoals de vaatwasser in ruimen of de

tafel dekken voor de lunch. Deze taken werden altijd gewoon netjes verdeeld en dit was goed geregeld.

Ik heb een tijdje elke dag op moeten letten dat de koffiezetter uit ging. Dit natuurlijk in verband met

brandgevaar. Door zo’n klusje voel je je meteen betrokken bij een bedrijf en dat je naast dat je er werkt ook

gewoon een collega bent met wie je samen een werkomgeving onderhoudt.

Aan het einde van mijn stageperiode, toen Marc en Lars weg waren moest ik ook wat vaker tussen de middag

boodschappen doen of de tafel dekken voor de lunch.

Page 15: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

15

SPECIFIEKE PROBLEMEN MET OPLOSSING

PROBLEEM 1: DE SCROLLSELECTOR

Dit probleem gaat over de scroll selector die ik tijdens de eerste dagen bij Sticky Studios heb gemaakt. De scroll

selector is een GUI element dat zich bevind aan de rechterkant van het beeld. In de scroll selector kan worden

gekozen tussen verschillende textures, wielen of accessoires. Dit doe je door middel van het scrollen over de

items in beeld. Deze items bewegen vervolgens in de richten van je vinger naar boven of beneden. Het

middelste item dat op het beeld staat is dan geselecteerd.

HET PROBLEEM

De Scroll selector die ik had geschreven was niet goed op verschillende plekken toe te passen en de status van

de Scroll selector was niet duidelijk zichtbaar. Ook was het niet duidelijk hoe je hem aan moest passen.

WIE WAREN ER BETROKKEN

Tom was hierbij betrokken, omdat hij wat ideeën had over hoe de scroll selector in elkaar zou moeten zitten en

hij mij de opdracht had gegeven.

Marc was hierbij betrokken omdat hij de score moest implementeren bij het kiezen van een specifiek item uit

de scroll selector en hij was hiervoor geïnteresseerd in de huidige staat van de scroll selector.

WAT HEB IK GEDAAN

Ik ben met Tom gaan overleggen wat er moest gebeuren. Tom heeft mij uitgelegd dat het in Unity in de meeste

gevallen niet handig is om met overerving te werken. Unity is een component based programma en het is dus

ook makkelijker en het werkt beter om je eigen classes ook zo op te bouwen. Ik heb toen met Tom een schema

gemaakt hoe dit probleem op te lossen en hoe mijn code te herschrijven.

Hieronder een foto van het schema dat we getekend hebben. Het was al een erg complex programma waarin ik

de scroll selector gebouwd heb. Daardoor is het diagram zo groot geworden en was het ook belangrijk om het

te fixen.

Het diagram (niet te lezen maar om aan te geven hoe groot/complex het probleem was)

Aan het begin moest ik erg aan het componentbased programmeren wennen maar ik pakte dit bij later

problemen goed op. Ik vond het zelf erg fijn dat ik met Tom kon overleggen om een probleem te bespreken en

analyseren.

Page 16: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

16

PROBLEEM 2: GRID EILANDJES

In het spel waar mensen over een grid rondlopen zat een probleem. Het grid waar de poppetjes overheen

liepen werd op plekken waar objecten, zoals gebouwen en bergen, staan verwijderd. De verwijdering van het

grid gebeurde wanneer connecties elkaar niet konden bereiken.

HET PROBLEEM

Het probleem met deze manier van verwijderen was dat de connecties die in een huis liggen nog blijven

bestaan. Grid navigators konden hierdoor in het huisje of in de bergen spawnen.

WIE WAREN ER BETROKKEN

Bastian was hierbij betrokken als maker van het grid en ik heb hem geholpen met de oplossing van dit

probleem.

WAT HEBBEN WE GEDAAN

Uiteindelijk hebben we er voor gekozen om een punt op het grid te kiezen dat altijd in het ‘goede’ deel van het

grid zit. We hebben toen door middel van recursief functie een lijst opgebouwd van alle bereikbare punten in

het grid vanaf de start node. De punten in het grid die niet voorkwamen in deze lijst werden verwijderd.

Hieronder het stuk code met de recursieve functie dat we hiervoor hebben gebruikt:

De AddToChain functie roept zichzelf aan om eigen connecties toe te voegen. De recursie gaat niet oneindig

door omdat bij het toevoegen wordt gecheckt of het punt reeds is toegevoegd.

Page 17: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

17

PROBLEEM 3: DE PEASANTS

In een ander spel waar ik aan gewerkt heb heb ik me bezig gehouden met het gedrag van de poppetjes die

rondlopen. Een van deze poppetjes was de peasant. Voordat deze werd gespawned wordt zowel het geslacht

als de kleding gekozen.

HET PROBLEEM

De peasants werden, als ze dood werden geslagen vervangen door een ‘dood’ model. Dit model had niet het

zelfde geslacht en ook niet de zelfde kleren. Hierdoor veranderden de peasants als je ze dood slaat.

WIE WAREN ER BETROKKEN

Dennis was hierbij betrokken omdat Dennis de code had gemaakt waarop iemand dood gaat.

WAT HEB IK GEDAAN

Om dit probleem op te lossen heb ik met Dennis overlegd. We zijn hier samen mee aan de slag gegaan, omdat

hier onze code samen kwam.

Ik had het idee om te zorgen dat de peasant niet werd vervangen door een ‘dood’ model maar dat de peasant

werd gekopieerd naar een nieuwe prefab. Hierdoor hoef je niet op te slaan welke kleren de peasant aan heeft

om een nieuwe op te bouwen, maar gebruik je gewoon het oude model en voeg je de geluiden en animaties

toe.

Erg handig om met een collega te overleggen en te bespreken hoe we het kunnen oplossen en ook meteen op

te lossen.

We hebben deze oplossing kunnen toepassen op meerdere poppetjes waardoor het ontwikkelingsproces

vereenvoudigd werd.

MEERDERE PROBLEMEN

Natuurlijk waren er nog veel meer problemen waar ik alleen of samen met iemand een oplossing voor

gevonden heb. Programmeren is nou eenmaal oplossingen zoeken voor problemen. Ik heb deze niet allemaal in

het verslag op genomen om dat ik de drie problemen die ik hierboven benoemd heb representatief vond voor

de stageperiode bij Sticky Studios.

Page 18: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

18

C# EN UNITY

Ik heb de hele stage periode in C# met Unity gewerkt. Hierin heb ik natuurlijk allerlei verschillende technieken

en trucjes geleerd.

Ik heb hieronder een aantal belangrijke dingen die ik geleerd heb beschreven. Het zijn vooral technische

beschrijvingen van wat ik heb geleerd. Ze zijn dus wellicht vooral interessant voor programmeurs.

PROGRAMMEERTALEN IN UNITY

In Unity zitten meerdere programmeer talen. Deze talen kunnen voor het grootste deel met elkaar praten. Ook

werken alle talen voor elk platform. Hierdoor is het mogelijk om bijvoorbeeld C# code te runnen op een

iPhone.

Hoe dit werkt is dat Unity eigenlijk elke programmeer taal omzet naar de zelfde taal. Deze taal heet IL. De

Intermediate Language. Een IL-taal is een taal met één computeropdracht per regel. Deze taal kan vervolgens

voor elke verschillende machine in machine code worden omgezet.

Als je echter build naar flash wordt de gehele code omgezet naar ActionScript. Hierdoor zijn in flash ook

sommige functie onbruikbaar omdat dit niet omzetbaar is of niet is omgezet in de Unity Engine van

Actionscript.

COMPONENT BASED PROGRAMMEREN

Unity is een component based engine. Dit houdt in dat elk object in de game wordt opgebouwd uit

verschillende componenten en dat elk van deze componenten op zichzelf kan operen en acties kan uitvoeren.

In het plaatje hieronder heb ik een eenvoudig voorbeeldje gemaakt in Unity 4.0. Ik heb een auto object

gemaakt met daarop vier verschillende componenten.

De verschillende componenten kunnen los van elkaar opereren en zijn dus ook weg te halen of uit te zetten. Op

deze manier kan je dus bijvoorbeeld een nieuwe auto maken die de component ‘VeranderSnelheidDoorInput

(Script)’ niet heeft. Dit zou dan een auto zijn die niet bestuurd wordt door de speler maar wel op dezelfde

manier met de game wereld omgaat en handelingen uitvoert.

Page 19: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

19

JSON FILES

JSON files gebruiken we bij Sticky heel vaak als configuratie files. Deze file zijn makkelijk uit te lezen en op te

bouwen. Dit kan dus ook gedaan worden door mensen die niets van programmeren af weten. Ook is het

makkelijk om, nadat je de build gemaakt hebt, nog dingen te kunnen aanpassen zonder voor deze

aanpassingen op nieuw te moeten builden.

Een JSON file lijkt qua principe erg op een XML file. Een JSON kan omgaan met vier verschillende datatypes.

- Hashtable. De hashtable geef je aan door middel van { en }. De hashtable bevat een lijst met keys met

bijbehorende value. Tussen de key en de value staat een dubbele punt en elk lijst item word

gescheiden door een komma.

- List. De list geef je aan door middel van een ( en ). Een list bevat een lijst met values gescheiden door

een komma.

- Integer. Een geheel getal.

- String. Je kan een string aangeven door middel van de tekst te omvatten met dubbele quotes (“text”)

Een voorbeeld JSON

Deze JSON bestaat uit een HashTable met hierin twee key-value paren. De eerste is de key personen met

daarin als value een lijst. Deze lijst is opgebouwd uit vier string. De tweede is het huisnummer met als waarde

een integer.

Er is op internet al veel code te vinden die JSON files kunnen uitlezen. Bij Sticky gebruikten we een zelfgemaakt

stuk code. Deze code kan een JSON file omzetten naar informatie, maar ook informatie omzetten naar een

JSON file. Hierdoor was het erg goed te gebruiken en snel toepasbaar.

Zet deze waarde maar even in een JSON – David Sampimon

UNITY EDITORSCRIPTS

Een ander heel krachtig principe is dat je in Unity je eigen EditorScripts kunt schrijven. Als je een EditorScript

wilt maken dan moet je het script in een map met de naam Editor opslaan. Al deze scripts komen in een los

project te staan en dit project wordt uitgevoerd terwijl je in de Editor bezig bent.

Hierdoor kan je code die je niet nodig hebt in de build maar wel wilt kunnen gebruiken om je level op te

bouwen makkelijk gescheiden houden van code die daadwerkelijk in game wordt gebruikt. Ook door de editor

te veranderen (v.b. windows en menutjes toevoegen) kan je bepaalde processen vereenvoudigen.

Page 20: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

20

COROUTINES EN HET YIELD-KEYWORD

In Unity zit een Coroutines systeem. Dit systeem is erg handig voor het animeren van game elementen en

andere tijdgebaseerde events. Omdat ik altijd graag wil weten hoe zoiets werkt achter de schermen ben ik dit

gaan uit zoeken en heb ik het aan een aantal collega’s gevraagd. Wat ik heb geleerd is dat dit geen zwarte

magie is, maar dat deze coroutines een slimme toepassing zijn van het yield-keyword.

YIELD KEYWORD

Om goed te kunnen begrijpen hoe Coroutines werken is het handig om eerst te weten wat het yield keyword

doet. Het yield-keyword is een keyword dat gebruikt wordt om collecties op te bouwen. Een functie waarin een

het yield-keyword wordt gebruikt moet een IEnumerable, IEnumerable<T>, IEnumerator, or IEnumerator<T>

als return type hebben. Elke keer als je yield return aanroept geef je eigenlijk het volgende element terug uit de

collectie. Op deze manier kan je heel makkelijk een collectie opbouwen vanuit code.

VOORBEELD YIELD-KEYWORD

We moeten System.Collections.Generic importeren omdat we een IEnumerable<T> gaan returnen.

Vervolgens maken we een hele simpele functie die een groep personen beschrijft. Dit is dus de collectie van

personen die opgebouwd wordt uit door middel van het yield-keyword.

Vervolgens kunnen we met foreach de collectie doorlopen en per persoon de gegevens printen.

Page 21: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

21

De output van dit stuk code staat hieronder. Zoals je ziet wordt op basis van de yield return een collectie

opgebouwd. Bij de yield break zeg je tegen de foreach-loop dat de collectie klaar is. Hierdoor wordt persoon

‘niemand’ met leeftijd 0 niet geprint.

Een handige toepassing kan in dit voorbeeld zijn om alle personen die aan een bepaalde voorwaarde voldoen

te printen. De voorwaarde die ik in dit geval gebruikt is dat je een minimale leeftijd moet hebben.

In het volgende stuk code doorlopen we weer de groep van personen en ‘yield-en’ we elk persoon die voldoet

aan de minimum leeftijd.

Als we door deze collectie heen willen lopen met als minimum leeftijd 19 jaar oud kunnen we weer een foreach

gebruiken.

De output van dit stuk code zal dus alleen nog personen bevatten die voldoen aan de minimum leeftijd.

Voldoen ze niet aan deze voorwaarde, dan wordt

hun yield return niet aangeroepen en dan

bevinden ze zich niet in de opgebouwde

collectie.

Page 22: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

22

SNELHEIDSVOORDELEN

Het mooie van dit alles is dat door de manier waarop yield werkt, je niet de hele collectie hoeft te doorlopen

voordat je dingen kunt doen met de collectie. Wat ik hiermee bedoel is dat wanneer je bijvoorbeeld alleen de

eerste ‘x’ aantal personen uit de groep nodig hebt, je dan niet de hele collectie hoeft te doorlopen.

Hieronder staat de code voor het uitlezen van een ‘x’ aantal personen uit de groep van personen. Ik blijf

nieuwe personen returnen tot dat we het verwachte aantal personen hebben geyield. Dan kunnen we breaken

met yield break.

In het bovenstaande voorbeeld heb ik ook een log toegevoegd om te kunnen zien hoeveel personen de

applicatie daadwerkelijk doorloopt bij het uitlezen van alleen de eerste persoon uit de groep.

We kunnen deze functie aanroepen door de AantalUitGroep te doorlopen met als parameter 1. Dit zal dus

alleen de eerste persoon uit de groep yielden.

De output van deze code staat hier onder. Je kunt zien dat de enige persoon die de code uit de collectie

gehaald heeft ‘Simon’ is. De code hoeft namelijk niet eerst de hele lijst van GroepPersonen op te bouwen om

de eerste persoon te kunnen uitlezen. Met dit voorbeeld zal dit qua tijdsbesparing niet zoveel uitmaken, maar

je kan je waarschijnlijk wel voorstellen dat bij lijsten van duizenden objecten het wel heel erg handig kan zijn

dat je, om de eerste twee objecten te bekijken, niet eerst alle objecten hoeft te doorlopen.

Page 23: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

23

COROUTINES

Nu we de basics weten over het yield-keyword kunnen we kijken hoe Unity dit keyword gebruikt in zijn

coroutines systeem.

Als je een nieuwe coroutine start moet je hierbij een functie meegeven die yield returns gebruikt. Deze functie

zal dus een collectie opbouwen. Maar waarvan?

Unity heeft bedacht dat elke keer als je iets yield, dit aangeeft hoelang Unity wacht tot hij verder gaat met het

‘opbouwen’ van de collectie.

Als je in een Coroutine de volgende code uitvoert zal Unity 1 frame wachten voordat het volgende item uit de

collectie wordt opgevraagd.

Daarnaast zijn er ook uitgebreidere objecten die je kan returnen, namelijk een WaitForSeconds object. Dit

object wacht, zoals de naam al zegt, voor een bepaald aantal seconden. De code ziet er als volgt uit.

Door deze makkelijke schrijfwijze is deze manier van programmeren handig te gebruiken bij game elementen

of GUI elementen die goede timing vergen of opeenvolgende gebeurtenissen moeten uitvoeren.

Het stukje pseudocode hieronder laat zien hoe je makkelijk een object maakt en het vervolgens beweegt van

een punt naar een ander punt waarna het object een geluidje maakt en weer wordt verwijderd.

Het mooie van deze manier van schrijven is dat je meerdere gedragshandelingen in één functie kunt stoppen.

Je moet alleen zorgen dat je niet je hele code zo gaat schrijven omdat je wel heel snel overzicht kwijt bent van

wat je classes nu aan het doen zijn en of ze al klaar zijn met hun coroutines.

Page 24: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

24

LAMBDA EXPRESSIONS / LINQ

Bij Sticky Studios ben ik ook begonnen met het gebruiken van Linq in C#. Met Linq kan je makkelijk door

collecties heen lopen en opdrachten hierop uitvoeren.

In mijn uitleg over het yield-keyword kwam ik met het voorbeeld om alle personen boven een bepaalde leeftijd

te kiezen uit een lijst. Deze code had ik toen op de volgende manier gemaakt:

Deze code zorgt er dus voor dat alleen de personen die voldoen aan een minimum leeftijd in de nieuwe

collectie terecht komen. Deze code is met gebruik van Linq te herschrijven naar 1 regel.

We moeten natuurlijk als eerste System.Linq importen om gebruik te kunnen maken van de functies in Linq.

Nu kunnen we op collecties, functies aanroepen die System.Linq heeft geïmplementeerd. Een van de vele

functies is de functie .Where(). Deze functie verwacht een beschrijving waarop hij elke item uit de collectie

moet testen. Als deze beschrijving true returned zal hij dit item toevoegen aan de lijst.

Zoals je hierboven ziet gebruiken we de .Where() functie op de collectie van de groep personen. Elke persoon

wordt vervolgens onderworpen aan de functie tussen ( en ). De functie in dit geval is:

Dit lijkt misschien niet op een functie maar dit is het wel degelijk. Dit is een zogenaamde inline functie.

De syntax van de functie lijkt misschien nogal vaag. Het werkt echter eenvoudig. Wat hier staat is een functie

die als parameter een persoon verwacht. Linq kan het type van deze parameter bepalen doordat het weet wat

het type is van de collectie waar je doorheen loopt. Aangezien we een collectie van personen hebben is de

enige parameter die we meegeven dus van het type persoon.

Page 25: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

25

Vervolgens komt het => teken, het pijltje. Bij Sticky noemde we Linq ook wel pijltjes magie. Dit omdat de basis

van het handig gebruiken van Linq eigenlijk neerkomt op het gebruiken van deze inline functies. Dit pijltje is

eigenlijk niks minder dan de scheiding tussen de parameters en de daadwerkelijk uitvoering van de functie.

De uitvoering van de functie is vervolgens het zelfde stuk code als we eerst in de foreach loop hadden. Aan de

werking van het kiezen van een persoon is immers niks veranderd. Deze bewerking geeft een boolean waarde

terug. Dit is het return type van de functie. Als de inline functie true returned dan zal de persoon aan de

nieuwe collectie worden toegevoegd. Returned de inline functie false, dan zal de persoon niet worden

toegevoegd.

IN DE PRAKTIJK

Met gebruik van deze methode zijn veel stukken code die zonder gebruik van Linq tientallen regels code nodig

hebben nu in een paar of soms zelfs in een enkele regels code te schrijven. Een goed voorbeeld waarbij ik het

gebruikt heb is het volgende.

Dit is één regel code. Ik heb het even onder elkaar gezet voor de duidelijkheid. Ik had deze functie geschreven

om te zorgen dat ik een aantal nodes, die het dichts bij een bepaald punt in de wereld liggen, kon selecteren.

Wat hier stap voor stap gebeurt is het volgende:

Er is een collectie nodes in een grid. Op deze collectie selecteer ik alle nodes die niet isNull zijn (Where).

Vervolgens verander ik de selectie (Select) in een nieuwe lijst van een inline gedefinieerde class die de node en

de afstand van de node tot het punt in de wereld bijhoud. Hierna sorteer (OrderBy) ik de lijst op deze afstand

en pak (Take) ik alleen het aantal nodes dat ik nodig heb. Vervolgens zet ik de collectie van de inline

gedefinieerde class weer om (Select) naar een collectie van nodes. En ten slotte zet ik de collectie om in een

List (ToList).

Als programmeur kan je je misschien wel voorstellen dat dit zonder Linq een heel karwei zou zijn geweest om

te programmeren. En op deze wijze past dit gewoon in één regel! Eerst was ik zelf ook zonder Linq begonnen,

maar toen ik ongeveer 20-30 regels code had geschreven en eigenlijk pas bij stap 3 was, vermoedde ik dat dit

makkelijker moest kunnen in Linq. En dat was zo.

Daarnaast is deze code door de snelheidsvoordelen, die ik beschreven heb bij het uitleggen van het yield-

keyword, ook nog eens erg snel en redelijk optimaal. Het grootste voordeel in dit voorbeeld is dat Linq niet

eerst de hele lijst ordend (OrderBy) voordat hij verder gaat met het pakken (Take) van de nodes die ik nodig

heb. Dit betekend dus dat als (OrderBy) zeker weet wat de kleinste waardes zijn hij niet de hele lijst hoeft te

gaan sorteren. Stel iemand vraagt dus maar 3 nodes op dan sort die ook maar tot die de 3 nodes gevonden

heeft. Dit is erg veel sneller dan eerst de gehele lijst sorteren en de computer is dus geen werk voor niks aan

doen.

Page 26: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

26

UITJES MET HET WERK

Het wsa altijd erg gezellig op werk. Ook ben ik met een aantal uitspajes mee geweest die belangrijk zijn om de

onderlingen contacten in het bedrijf goed te houden. Omdat dit vor mij ook bepaalt hoe de werksfeer was, vind

ik het leuk de ‘uit stapjes’ nog even te noemen.

WEEK EINDE

Vrijdag na het werk was het altijd gezellig met wat bier erbij en er werden spellen gespeeld. Ik vond dit leuk de

voor collegiale contacten, meer dan alleen te samen werken en vaak ook samen in de bus te zitten. De laatste

maanden van mijn stage was dit wel minder, omdat het erg druk was waardoor iedereen bezig was en er niet

zoveel tijd over bleef.

VRIJDAG 28 SEPTEMBER 2012

Dit was de laatste officiële werkdag van Dave. Ik zeg officiële omdat hij een paar weken later toen het echt heel

erg druk was nog is ingezet op een project.

We hebben deze avond met z’n allen op een terrasje op het Neude gezeten. Ik heb het met Tom en Dennis

gehad over de games die ze al gemaakt hebben en wat hun ervaringen waren hiermee. Allemaal erg leuke

verhalen.

We hebben de hele avond onder een warmte lamp zitten praten waarna we gelukkig nog de laatste trein

hebben gehaald.

Ik hield het geld bij en zorgde dat er aan het einde van de avond was betaald. Het was ongeveer 41 bier.

WEEK AMERIKA

Week naar Amerika geweest met Marc en Tom. Hiervoor heb ik een aparte pagina op mijn site gemaakt. Zie

bijlage B voor meer informatie hierover.

VRIJDAG 14 DECEMBER 2012

We zouden eigenlijk met heel Sticky wat gaan drinken in Utrecht, maar blijkbaar was het niet voor iedereen

duidelijk. Toch gingen we uiteindelijk nog met z’n zessen weg. We waren met Bob, Bastian, Ramana, Jordy en

Dennis.

Dennis en Bastian waren met de auto dus we konden lekker met de auto naar Utrecht centrum. De

parkeergarage was echt een chaos. Het leek wel of Escher de parkeergarage had ontworpen, allemaal rare

verdiepingen en verdiepingen waar je niet kon komen. Uiteindelijk was de lift maar 1 verdieping naar beneden

en toen stonden we weer op de begaande grond.

Gezellig de rest van de avond aan het Neude in een cafeetje gezeten. En ja Marc is een programmeur.

Deze avond heb ik weer het geld bij gehouden.

Page 27: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

27

VRIJDAG 21 DECEMBER 2012

Vandaag was de laatste dag dat, de stagiaires, Marc en Lars er waren. Het was ook de laatste dag voor de

vakantie. Om deze redenen zijn we wat gaan drinken met hele bedrijf. Helaas konden Jeroen en David niet

mee gaan.

Ik heb natuurlijk veel met Marc gewerkt dus het was wel jammer dat hij weg ging. Hij moest na de vakantie

weer naar school.

Ik ben vanuit Sticky weer met Bastian mee gereden. We hebben weer bij de Escher garage geparkeerd. Zie de

foto hieronder.

We hebben eerst bij Broodje Ploff wat gegeten om vervolgens buiten in de kou op het Neude te zitten, hierna

zijn we naar de wat warmere Winkel van Sinkel gegaan en hebben hier tot middernacht gezeten.

De super gare indeling van de parkeer garage.

Page 28: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

28

CONCLUSIES

Mijn voorbereiding heeft me erg goed geholpen met het vinden van een leuk en uitdagende stage. Via mijn

portfoliosite wilde ik overbrengen dat ik meer doe dan alleen vakken volgen op school. De sollicitatie is mede

hierdoor goed verlopen. Na het sollicitatiegesprek wisten we van elkaar wat we konden verwachten.

De manier van werken bij Sticky en de opdrachten die ze krijgen spreken me erg aan. Dit komt omdat de

projecten ongeveer 2-3 maanden lopen voor een film en dan ook echt af moeten zijn. Hierdoor blijft je werk

heel erg gevarieerd en kan je daarnaast mooie resultaten neerzetten.

Ook is het bedrijf niet al te groot waardoor je altijd bij het ontwikkelen van de hele game betrokken bent en je

niet 2 -3 maanden bezig bent met één specifiek onderwerp of gedrag.

Ik ben meteen goed op mijn plek terecht gekomen. Wat ik vooral geleerd heb is erg veel handige dingen bij

programmeren in C# met Unity. Ik begrijp beter hoe bepaalde onderwerpen in C# in elkaar zitten en ook hoe

Unity werkt en wat er goed, minder goed en slecht is aan Unity.

Ook heb ik veel geleerd over het plannen van taken en het werken met grotere teams via een project server.

Het vergaderen en overleggen over wat iedereen doet heeft me ook een hoop geleerd.

Game Development is dé baan voor mij. Stage lopen bij Sticky Studios is me erg goed bevallen. Ik heb er veel

gedaan en ook veel geleerd. Ik weet zeker dat ik de goede keuze heb gemaakt qua stage en dus ook qua studie.

Game Development en programmeren zijn echt mijn ding.

Page 29: Stageverslag Sticky Studios - Simon Karman Sticky... · Dit verslag is geschreven tijdens mijn stage in het derde jaar van ... bronnen en bijlage zijn aan het einde van mijn stageverslag

29

BIJLAGEN

BIJLAGE A: HET LOGBOEK

Mijn logboek is terug te vinden op http://www.simonkarman.nl/internship.php

BIJLAGE B: AMERIKA

Hieronder het verslag van de reis naar Amerika.

Te vinden op http://www.simonkarman.nl/internship.php

Hier een kort artikel erover: http://www.simonkarman.nl/recent/16

BIJLAGE C: MIJN WEBSITE

Mijn website: http://www.simonkarman.nl

Voor extra informatie over wat ik doe en heb gedaan.

BIJLAGE D: WEBSITE STICKY STUDIOS

De website van mijn stage bedrijf, Sticky Studios: http://www.stickystudios.com

Voor extra informatie over wat Sticky Studios doet en contact informatie.

BIJLAGE E: REFLECTIEVERSLAG

De beoordelingsformulieren die ik van het stage bedrijf en van medestudenten aan school moet leveren. Ook

bevat dit de reflectie en nabeschouwing van de stage. Dit verslag is een los verslag bij mijn stageverslag.