04.30.09

week 8

Geplaatst in stage bij 2:08 pm door nilsjondral

De stage is gedaan!

De laatste week van de stage loop op zijn einde, dus is het weer eens tijd om verslag uit te brengen. Dinsdag was het laatste spelletje, tetris, helemaal af en debugged. En vanaf dat moment was ik eigenlijk technisch werkloos. Gelukkig kreeg ik een opdracht van buitenaf en zagen ze hier ook het nut er van in. Woensdag en donderdag heb ik dan in actionscript 3 een klein flash applicatie dat de videostream van je webcam toont. Als je klikt wordt er van 5 afgeteld, en word er een foto genomen. Deze wordt dan doorgestuurd naar een php script dat deze foto opvangt.  (link: http://brol.nilsjondral.be/PictureSnap/PictureSnap.swf)

Gelukkig kon ik de laatste 2 dagen aan een andere opdracht werken. De opdracht kwam misschien van iemand anders, maar mijn stagebegeleider vond het een interessant concept om bijvoorbeeld voor avatars in een site te gebruiken. Daardoor heeft hij het toegelaten dat ik 2 dagen daaraan had gewerkt, en krijgt hij uiteraard alle broncode er gratis bij. Anders had hij toch geen echte opdracht niet meer voor mij. Alles is dus mooi in de plooi gevallen voor deze laatste dagen.

Op sociaal vlak gaat is alles ‘op het gemakske’ gegaan. Zoals ik al een paar keer gezegd, zit er een heel goede sfeer in het kantoor. Mede omdat er ‘maar’ 4 vaste medewerkers zijn.  Klein en gezellig dus. Soms is de zakelijke sfeer echter ver zoek. Hiermee bedoel ik dat er soms veel ‘gespeeld’ wordt. Hierdoor blijft iedereen soms wat langer van zijn werk weg. Niet dat ik klaag, maar ik weet dat het op andere, grotere, bedrijven zeker niet zo is.

Nu we op het einde van de stage zijn aangekomen, kan ik eens een duidelijk besluit vormen over het verloop van de vorige 2 maanden. Mijn oorspronkelijke opdracht was om hier een aantal flashgames te komen ontwikkelen in actionscript 2, en hiervoor zou ik al een goede bibliotheek van klassen tot mijn beschikking krijgen. Tijdens de eerste week bleek echter dat er een Flex project in de planning stond om een poker-applicatie te maken. Daar zou ik dan de laatste 5 weken aan werken, na eerst 3 weken mijn eigen spel te maken.

Na een week de code van de andere spellen te bestuderen, had ik het concept uitgewerkt op een top-down shooter te maken. Deze heette voor de makkelijkheid ‘Shooter’.  Na reeds 3 tot 4 weken aan het spel te werken bleek dat de poker-applicatie naar alle waarschijnlijkheid uitgesteld zal moeten worden. Daarom hebben we besloten op het shooter-spel uit te bereiden met een ingame shop. Hier kon ik dan een extra week aan werken. Week 5 was de deadline voor dit spel, en deze heb ik ook gehaald.

Week 6 en 7 waren de weken dat ik aan ‘Bounce’ gewerkt heb. een reactiespelletje waarmee je met goede timing zo veel mogelijk en zo lang mogelijk ballen omhoog moest houden. Hiervoor wes de basisgameplay reeds uitgewerkt, en mocht ik het spel verder uitwerken. Dit spel was die dinsdag af.

Week 7 en 8 kreeg ik tijd voor een laatste spelletje. Toen wim, een ex-ims student, hier voor het eerst begon te werken, moest hij ook een spelletje maken. Hiervoor had hij tetris gekozen. En ik mocht dit debuggen en verder uitwerken.

De laatste 2 dagen van week 8 heb ik dan aan een externe opdracht gewerkt waarbij men hier bij RedAndIvory ook het nut van inzag.

Als besluit kan ik nemen dat mijn 8 weken goed gevuld waren, en dat ik heel veel heb bijgeleerd. Zels heb ik voor grote delen van het eindwerk hulp gevonden in de zaken dat ik hier geleerd heb. Zo heb ik hier geleerd om een defige klassen structuur op te zetten met een domeinmodel, iets dat onmisbaar is gebleken voor het eindwerk.

Op sociaal vlak is alles hier heel vlot gegaan, en niets al te formeel. Doordat het een klein bedrijf is, en doordat hier allemaal jonge mensen werken, heerst hier een zeer ontspannen sfeer. Er worden constant moppen getapt, er wordt elke middag gekickerd, enz.. Maar toch is er een tijd om te werken, en dan kun je maar beter zeker zijn dat je op het einde van de dag iets te tonen hebt. Wat hier ook zeer goed was, dat ik veel vragen kon stellen. En deze worden dan ook deskundig beantwoord. Ik heb ook vaak met mijn stagebegeleider naar een oplossing voor een probleem moeten zoeken. Hierbij konden we vaak goed samenwerken om tot een oplossing te komen. Ook mocht ik zelf inbreng doen over hoe bepaalde processen efficiënter konden.

Ik ben er van overtuigd dat ik deze stage tot een goed einde heb kunnen brengen, en dit omdat:

  • mijn opdrachten zijn allemaal tot een succesvol einde gebracht
  • ik heb hier een positieve tussentijdse evaluatie gekregen
  • we hebben ons geamuseerd

de woorden van deze week zijn: afwerken, eigen inbreng, plezant.

04.24.09

week 7

Geplaatst in stage bij 1:53 pm door nilsjondral

Eerlijk gezegd, ben ik toch serieus aan het aftellen hoor. Nog maar 1 week! Het is niet omdat ik geen plezant werk krijg, of omdat de sfeer hier niet goed is. Maar het is omdat het buiten bangelijk goed weer is, en ik zit hier vast achter de pc.

Maar toch gaat het werk heel goed vooruit. Het spelletje bounce is van dinsdag af. En toen heb ik een tetris spelletje vol met bugs in mijn schoot geworpen gekregen. Het deed me eerlijk gezegd denken aan de examens van flash van menheer Tubbax. Je krijgt een flashfilmpje met met een aantal fouten in, en krijg het zo snel mogelijk werkende. Hier krijg je echter een spelletje met 10 keer zoveel code, en nog zoveel keer ingewikkelder. Dan heb ik ook de eerste dag en een half bezig geweest met debuggen. Voor de rest van de dagen ben ik dan bezig geweest met integregen van het spel in het gameplatform. dat heb ik nu reeds 2 keer moeten doen, dus dat gaat heel vlot;

Volgende week kan ik mij bezig houden met het optimaliseren van de scripts. Zo moet er nog eens gekeken worden naar hoe de blokjes draaien, en hoe ze gecreëerd worden. Ook kan ik wederom een stuk of 20 parameters gaan afstellen zodat het spel vlot speelt, en dat het overtijd goed wat moeilijker wordt. Op naar de volgende week.

3 woorden van deze week: Afwerken, debuggen en zoveel mogelijk genieten van de zon.

04.21.09

week 6

Geplaatst in stage bij 7:12 am door nilsjondral

Deze week heb ik een spel gekregen dat al voor de helft af was. Het is een handigheid spelletje waarbij de gebruiker een aantal ballen omhoog moet houden door op het juiste moment op de juiste toetsen van het numpad te klikken. De gameplay was reeds in orde, en het was aan mij om de integratie te verzorgen met de algemene klassen zodat het spel klaar is om online te zetten. Zo heb ik er voor gezorgd dat de parameters extern ingeladen worden in een centraal object, de ingame winkel verzorgd, pause, start, scores,…

Die ingame winkel heeft me echter wel wat hoofdpijn verzorgd. Het concept was dat je een carrousel centraal in het scherm te zien krijgt, met daar alle mogelijke upgrades in. Zo moet de speler tijdens het spelen makkelijk kunnen wisselen, en het juiste item activeren. Maar dit is echter niet zo eenvoudig als het lijkt. De code dat ik kreeg bevatte een 4 tal logische fouten waardoor het leek dat de carrousel werkte, maar achter de schermen liep het echter serieus mis. Dit heeft me toch zeker een dag gekost om deze code perfect te laten werken. Hierdoor heb ik besloten om het carrousel-concept in de toekomst zo veel mogelijk te vermijden.  Het toon mooi, maar in de code moet je serieus wat moeite doen om het te laten werken. Zeker als er op elk moment een aantal items kunnen bij komen of verdwijnen.

Deze week is ook mijn stage collega An verjaard. Zij is woensdag een jaartje ouder geworden, en daar hoorde natuurlijk taart bij. Op dat moment hebben de collega’s hier er eens goed van de zon genoten. En het is nog maar eens gebleken dat er hier een goede sfeer is. We hebben die dag niet echt veel gewerkt, maar iedereen heeft zich wel goed geamuseerd. En dat mag toch ook wel eens.

Volgende week zal ik nog een 2 tal dagen nodig hebben om dit spel af te ronden. De laatste code voor de ingame winkel moet nog verzorgd worden, en het configureren van het spel moet nog gebeuren. Voor de rest zal ik me moeten bezig houden met nog een ander spel.

3 woordenv an deze week: nieuw spel, carrousel, verjaardagstaart

04.10.09

week 5

Geplaatst in stage bij 2:36 pm door nilsjondral

Vrijdag, eindelijk. Dinsdag zat de in-game winkel eindelijk in het spel. En ik moet zeggen: ik weet niet hoe dat het spel speelbaar had kunnen zijn zonder. Een perfecte toevoeging. Voor de rest van de week ben ik bezig geweest met vele bug-fixes en kleinigheden dat het spel af zouden moeten maken. Zo heb ik mij bezig gehouden met een time-bonus, pauze issues oplossen, animaties, inwerken van visual manager, opsplitsen van de achtergrond, inwerken van de scoremanager, tweening van de shop, performantie tweaks,  enz.. En dit alles de woensdag en de donderdag van deze week.

Vandaag heb ik me dan bezig gehouden met het spel te configureren. Er worden een 100-tal variabelen extern ingeladen. Van om de hoeveel tijd het spel moeilijker moet worden tot hoe snel een kogel moet vliegen en hoeveel punten 1 verslagen vijand waard is.  Verder moest er een document opgesteld worden waarin ik uitleg hoe het spel visueel in elkaar steekt. Dit dient zodat de persoon die achteraf alles gaat tekenen niet al te lang moet zoeken. Ook heb ik een aantal keer de tijd genomen om zelf zo’n hoog mogelijke score te behalen, en enige vorm van strategie komt er toch bij kijken. Wat zeker niet slecht is. Opdracht volbracht.

Voor volgende week krijg ik een ander flashgame in mijn schoot geworpen. Het spel is grotendeels gemaakt door iemand anders, en ik mag het gaan afwerken. Hiervoor krijg ik een week de tijd. De laatste 2 weken zal ik dan waarschijnlijk toch aan de poker-applicatie mogen beginnen (deze is terug op de planning gezet). Anders krijg ik nog een game voor mijn neus om af te werken.

Op naar volgende week en, hopelijk, wat meer variatie!

De 3 woorden van de week zijn: einde, eindelijk, gewoonte

04.03.09

week 4

Geplaatst in stage bij 1:21 pm door nilsjondral

Hoe verder in de stage, hoe slechter het er uit ziet voor de nieuwe opdracht. Pieter en Kristof, de 2 bazen hier zijn hun poker concept gaan voorleggen aan een groot pokerbedrijf. Die vergadering was goed verlopen, maar het betekend wel dat er deze maand nog niet aan gewerkt zal worden. En bij gevolg is de 2de opdracht van mijn stage weg gevallen.

Om dit te compenseren is de dealine voor het flashspel weer een week uitgesteld, maar zijn er ook deze keer een hoop functionaliteiten bijgekomen. Zo wordt het spel uitgebreid dat de gebruiker andere wapens en upgrades moet kunnen kopen. Gelukkig voor mij is de structuur van het spel zo opgemaakt dat dez ongeloofelijk makkelijk uit te bereiden is. En dat, zonder al te veel programmeerwerk, extra fuctionaliteiten geïntegreerd kunnen worden.

Het originele concept werkt reeds goed, en ben ik dus donderdag kunnen beginnen met het programmeren van de winkel en de upgrades. Voor de rest zien de weken er vrij eentonig uit. Ik moet constant aan hetzelfde project werken, maar ik vind het niet erg. Zeker omdat het plezant werk is, en dat ik een hoge graad van onafhankelijkheid krijg.

Na de terugkomdag had An gevraagd of we hier een tussentijdse evaluatie konden doen. Zo konden zij wat tekst en uitleg geven bij de evaluatiebladen dat we te zien hadden gekregen. Over het algemeen waren ze heel content over mij, maar links en recht hadden ze toch een paar opmerkingen. En ze hadden daar gelijk in. Ik moest vlugger durven vragen te stellen aan Pieter, in plaats van er zelf lang over na te denken. Ook zeiden ze dat ik vlugger eens moest tonen aan mijn stagebegeleider wat de stand van zaken is van het spel.

Voor de rest gaat alles hier rustig zijn gangetje. Iedereen zit hier goed aan het doorwerken, en ’s middags wordt ik nog elke keer ingemaakt bij het kickeren. Al begint het verdedigen al aardig te lukken. Eten doen we nu ook al buiten vanwege het goede weer. De sfeer zit er dus vast en zeker in, en echte problemen zijn er niet geweest.

op naar week 5, en hopelijk de laatste week dat ik aan het flashgame aan het werken ben.

de 3 woorden van de week zijn: rustig, 20° en volhouden

03.28.09

Week 3

Geplaatst in stage bij 9:47 am door nilsjondral

op het einde van deze week zou volgens de originele planning mijn flashgame moeten af zijn. Maar ik heb echter een week extra gekregen omdat het volgende project pokahnites nog niet begonnen is. Deze week heb ik echter wel de basis reeds kunnen maken. de basis gameplay is reeds in orde. Zo kan de gebruiker een marmannejte besturen dat door een kloof naar boven loopt. Er komen vijandelijke aliens naar benede gewandeld en je kan ze naar hartelust afschieten.

Op technisch vlak wordt er puur Object georiënteerd te werk gegaan. Zo kent elk element zijn eigen klasse, en elk van die klassen houden een virtuele X en Y coordinaat bij. Vervolgens is er een camera object dat eerst zijn eigen gaat plaatsen tegenover het marsmannetje, en vervolgens gaat berekenen wat er van de rest getoond moet worden, en waar.

Dit is een zeer uitgebreide aanpak voor een spel dat je zeker eenvoudiger kan programmeren. Maar 1 van de hoofddoelen in het programmeren van een flashspel is performantie. Zo moet ik bij elke functie dat ik schrijf rekening houden met wat de efficiëntste manier is om tot een bepaald resultaat te komen. En bovendien nog eenst trouw te blijven aan de stricte object structuur. Klinkt allemaal heel vaag, maar ik zal een voorbeeld geven.

op een bepaald moment moeten er botsingen gezocht worden. En aangzien de hitest in flash geen goede manier is, moet ik tussen bepaalde coordinaten de afstand gaan berekenen. Als dan die afstand kleiner is als de grootte van het marmannetje, dan wordt hij geraakt. Normaal zou je dan denken dat je voor elke vijand die afstands berekening doet. Maar dit kan echter efficiënter, vertelde mijn stagebegeleider. Een afstandberekening is vrij zwaar voor de processor omdat er kwadraten en wortels aan de pas komen. Dus moetje eerst gaan zoeken welke vijanden in aanmerking komen om te botsen. En dit kan je doen door de x en de y coordinaat te vergelijken of deze groter / kleiner zijn dan een limiet. En voor elke vijand dat dus in de buurt is van het marmannetje, ga je pas de werkelijke afstand berekenen. Voor mij is het wel even aanpassen om op zulke manier te werkt te gaan. Maar met wat oefening heb ik het gevoel dat dit een veel betere aanpak is.

Donderdag namiddag en vrijdag heb ik dan eidelijk de moed gevonden om de aangeboden klassen te implementeren. Zo heeft men een algemene loader dat het spel inlaad, maar ook alle XML gegevens dat je nodig zal hebben met daarin je parameters, levels, actions, enz. Deze worden dan gebundels in een aantal managers: parametermanager, soundmanager, visualmanager, enz. Mijn spel maakt nu gebruik van deze managers, en bij gevold wordt het spel volldig bestuur vanuit een extern XML bestand.

De stage verloopt eigelijk vrij vlot, en echte moeilijkheden zijn er niet. Het is wel zo dat men hun werkweize juist heeft veranderd om taakgerichter te werken, en minder projectgericht. Hiervoor zal er elke vrijdag een teammeating georganiseerd worden. En dus zal ik volgende week vrijdag mijn spel moeten voorstellen.

voor de volgende week staan er veel bugfixes, uitbreidingen, anmiaties en performantie-tweaks gepland.

omschrijf in drie woorden het gevoel dat je hebt ervaren tijdens de afgelopen week.

performantie gericht, gestructureerd & goed nadenken!

03.25.09

excell sheet

Geplaatst in stage bij 12:23 pm door nilsjondral

wij worden verwacht een excell sheet per week bij te houden met daarin de uitgevoerde taken van die week. Omdat ik echter een paar problemen heb gehad met mijn eigen ftp server. ( + wordpress laat niet toe om  .xls bestanden te uploaden) Zullen de nodige excell sheets volgende week gepost worden. Tegen dan zijn deze problemen hopelijk opgelost.

03.24.09

Week 2

Geplaatst in stage bij 1:16 pm door nilsjondral

Week 2 van de stage zit er op, dus is het tijd om nog eens een postje te maken.

Deze week ben ik begonnen aan het eigelijke programmeerwerk van mijn spelletje. En daar ben ik nog steeds mee bezig. Omdat ik vorige week reeds het klassenmodel heb kunnen uitwerken, was het ongeloofelijk eenvoudig om de algemene structuur op te zetten, en het enigste dat mij nog reste was het ‘invullen’ van de code. Dit is echter een tijdrovend werkje. En daar ben k nu nog met bezig. Het einde komt echter al wel in zicht.

welke moeilijkheden heb ik ondervonden?

Vooral technische moeilijkheden. Maar gelukkig geeft mijn stagebegeleider naast zijn werk bij red&ivory ook nog les. Dus op elke vraag komt een duidelijk en uitgebreid antwoord. En zo worden die poblemen ook weer snel opgelost.

omschrijf in drie woorden het gevoel dat je hebt ervaren tijdens de afgelopen week.

ontspannen, interessant & leerrijk.

03.13.09

Week 1

Geplaatst in stage bij 3:51 pm door nilsjondral

De eerste week van mijn stage zit er op, dus is het tijd om nog eens een postje te maken op deze blog. De maandag was het de bedoeling dat ik de code kreeg van hun game-repository zodat ik een aantal duidelijke voorbeelden zou hebben waar ik van kan leren, en waarop ik mij kan baseren. Dit vraagde echter dat er een SVN programma op mijn macbook geïnstalleerd werd. Dit bleek echter niet zo simpel als het leek aangezien mijn baas, Pieter, dit nog nooit op een mac had gedaan. Gelukkig kwam een parrallel geïnstalleerde windows hulp bieden. En eens ik hun code van de server had gehaald kon ik beginnen met in de duizende code lijnen een structuur te vinden.

De bestaande spellen zijn geschreven in ActionScript 2, en dit nog eens Object geöriënteerd. Ik heb er een paar dagen tijd voor nodig gehad om voor de 4 spellen een klassendiagram uit te tekenen, en de eiginaardigheden in de code te begrijpen. Gelukkig mocht ik veel vragen stellen, en werden deze heel uitgebreid beantwoord.

Donderdag ben ik dan aan de slag gegaan om mijn eigen concept uit te werken. Dit moest gebeuren volgens een bepaalde werkwijze.

  1. Eerst moest ik het totaal concept uitwerken.
  2. Vervolgens moest ik een lijst maken van alle requirements eisen waaraan het spel moet voldoen. Dit gaat over interactie tegenover de gebruiker, maar ook over gameplay, score, enz..
  3. De volgende stap is om al die requirements te ordenen. Zo was het de bedoeling om alle puntje dat bij  hetzelfde hoorden samen te zetten. Dit was de eerste stap om een bepaalde structuur in het spel te krijgen.
  4. Dan ben ik samen met mijn stagebegeleider Pieter gaan samenzitten om alles eens te bespreken en een domeinmodel te maken. Dit is een soort schema, voortvloeiend uit de requirements, waarin alle identiteiten zijn opgesomd en waarin hun onderlinge relatie wordt voorgesteld. Dit is een heel belangrijke stap in de richting van de klassen nodig voor je spel. Ook is tijdens het proces om tot dit schema te komen het heel belangrijk om grondig na te denken over je concept. Zo hebben we samen enkele ‘gaten’ gevonden in mijn concept, en hebben we de structuur zo kunnen opzetten dat het spel later makkelijk uit te bereiden is.
  5. Vanuit dit domeinmodel komen dan de uiteindelijke klassen.

Ik vind het heel intressant om zulk proces te doorlopen want je kan er een duidelijke structuur mee bekomen binnenin je spel, zonder nog maar 1 regel code te schrijven. En dat heb ik ook deze week gedaan: Geen 1 regel code geschreven. Doch was het een intressante week, en heb ik het gevoel da ik zeer veel heb bijgeleerd. Dit door alleen maar hun code te bestuderen. Ook het ontwerpproces dat ik doorlopen heb zal later zeker nog nuttig lijken.

Moeilijkheden heb ik niet direct ondervonden. Alles ging zeer vlot, vanaf de eerste dag. Zo mogen we al elke middag mee kickeren (ook al bakken we er niets van en worden we keer op keer naar huis gespeeld) En hebben we allemaal een paar kleurrijke pantoffels gekregen.

Lang leve de blauwe sloefen!

03.09.09

De opdracht

Geplaatst in stage bij 6:27 pm door nilsjondral

Vandaag is mijn stage bij red&ivory in wilrijk begonnen. Om te beginnen heb ik een kleine briefing gekregen over wat ik de volgende 8 weken allemaal moet doen. Mijn stage zal bestaan uit 2 projecten. De opdracht is voor een stuk veranderd van het originele plan. Maar de bazen hebben besloten dat ik mag meewerken aan een groot nieuw project.

1) Flashgame: 3 weken
ik mag een flashgame ontwikkelen voor het gameplatform winimi (http://www.winimi.be/) Het is aan mij om zelf een concept uit te denken, en dit vervolgens te implementeren.

  • week1: concept uitwerken & volledig uitwerken van game op papier
  • week2: schrijven van het spel
  • week3: spel afwerken+ grafisch finetunen.

2) Flex / Air applicatie: 5 weken
Voor de poker community pokahnites (http://www.pokahnites.com/) gaat er een tornooi systeem worden uitgewerkt. het is de bedoeling dat de gebruikers thuis zelf tornooien kunnen gaan organiseren, en dat de gegevens in een Air applicatie worden ingegeven. Op de site zal je dan een overzicht vinden van al de gegevens, voor alle spelers. Zo kunnen de spelers zelf meerdere tornooien op 1 avond organiseren, en zulle de gegevens worden opgeslagen in een databank. Ook al ben je niet online, dan worden die gegevens tijdelijk lokaal opgeslagen, om deze dan later te uploaden.

Voor dit project zal ik met 2 werknemers samenwerken. Mijn baas is momenteel al heel de applicatie op papier aan het uitwerken, zodat de Jaak de back-end en het php gedeelte kan doen. En zo kan ik mij volledig storten op het Flex en Air gedeelte. Ook zal ik voor een groot deel de front-end van de Air app. moeten verzorgen.
Ik zie er al zeker naar uit om aan het poker-project te beginnen. Ik denk dat ik er heel veel van ga bijleren, en dat is tenslotte de bedoeling van een stage. Ook is het flashgame een goede oefening. het is de bedoeling dat ik van begin tot einde een proces doorloop dat zij voor al hun projecten gebruiken. Daarbij zal de grootste moeilijkheid zijn dat ik alle moeilijkheden tijdens het programmeren moet voorzien.