Games Maken NFF & SBA Wouter Baars Zelf games maken www.wouterbaars.net
Game productie wat hoort daarbij? Graphics: 3D modelling Textures 2d Artwork Animaties Fonts, enz. Software: 3Dmax Maya Photoshop Of open source: Blender Gimp Zelf games maken www.wouterbaars.net
Gameproductie vervolg Programmeren: C (++) Scripting Speciale platforms (bv webgames) Property schipangle,radius,richting,snelheid --later energy en dergelijke toevoegen on getpropertyDescriptionList me list = [] addProp list, #richting,[#comment "richting in hoek",#format #float,#default0.05] addProp list, #snelheid,[#comment "snelheid",#format #integer,#default5] return list end on exitframe me -- verplaatsing schotel radius = sqrt(power(abs(sprite(me.spritenum).loch-sprite(2).loch),2) + power(abs(sprite(me.spritenum).locv-sprite(2).locv),2)) Zelf games maken www.wouterbaars.net
Gameproductie vervolg Audio: Midi Audio Software: Logic Cubase Protools Audio is een erg belangrijke maar onderschatte factor in het succes van je game. Je moet je wel realiseren dat je muzikale kennis moet hebben naast het beheersen van deze software om je muziek te componeren. Met name geldt dit voor midi, voor audio bewerken (bv het maken van een geluidje van een kanonschot of een laser is geen muzikale kennis nodig). Zelf games maken www.wouterbaars.net
Gameproductie vervolg Concept design: Verhaallijn Storyboard Level design Spelregels Zelf games maken www.wouterbaars.net
3d: Hoeveel vrije tijd heb je? Dat brengt mij tot de vraag: hoe belangrijk is 3d voor je game? Een model als hierboven kost 1-2 weken per model, en als reken maar uit als je 40 modellen in je game hebt is dat nog beperkt, maar dat is al een jaar werk. Zelf games maken www.wouterbaars.net
Hoeveel vrije tijd heb je? - vervolg Programmeren in C of in een scripttaal? Meestal worden games gemaakt ik C en is er ook een scripttaal in gebruik binnen de game. Bv python wordt gebruikt binnen de nieuwe battlefield Je kan C zien als het maken van de motor van je game, en de scripttaal, is het inelkaar zeten van de motor of het afstellen van de motor, of als je het over auto’s hebt, in C maak je de auto en in de scripttaal bestuur je de auto. C is de taal waar de grote games in gemaakt worden. C is sneller, je kan er ‘alles’ mee itt scripttalen, bv rechtstreeks de grafische kaart aanspreken, maar.... Zelf games maken www.wouterbaars.net
Scripttaal versus “C” typedef struct { double x,y,z;} XYZ; /* Rotate a point p by angle theta around an arbitrary axis r Return the rotated point. Positive angles are anticlockwise looking down the axis towards the origin. Assume right hand coordinate system. */ XYZ ArbitraryRotate(XYZ p,double theta,XYZ r) { XYZ q = {0.0,0.0,0.0}; double costheta,sintheta; Normalise(&r); costheta = cos(theta); sintheta = sin(theta); Zelf games maken www.wouterbaars.net
Scripttaal versus “C” q.x += (costheta + (1 - costheta) * r.x * r.x) * p.x; q.x += ((1 - costheta) * r.x * r.y - r.z * sintheta) * p.y; q.x += ((1 - costheta) * r.x * r.z + r.y * sintheta) * p.z; q.y += ((1 - costheta) * r.x * r.y + r.z * sintheta) * p.x; q.y += (costheta + (1 - costheta) * r.y * r.y) * p.y; q.y += ((1 - costheta) * r.y * r.z - r.x * sintheta) * p.z; q.z += ((1 - costheta) * r.x * r.z - r.y * sintheta) * p.x; q.z += ((1 - costheta) * r.y * r.z + r.x * sintheta) * p.y; q.z += (costheta + (1 - costheta) * r.z * r.z) * p.z; return(q); } Zelf games maken www.wouterbaars.net
Scripttaal versus “C” XYZ ArbitraryRotate2(XYZ p,double theta,XYZ p1,XYZ p2) { XYZ q = {0.0,0.0,0.0}; double costheta,sintheta; XYZ r; r.x = p2.x - p1.x; r.y = p2.y - p1.y; r.z = p2.z - p1.z; p.x -= p1.x; p.y -= p1.y; p.z -= p1.z; Normalise(&r); costheta = cos(theta); sintheta = sin(theta); Zelf games maken www.wouterbaars.net
Scripttaal versus “C” q.x += (costheta + (1 - costheta) * r.x * r.x) * p.x; q.x += ((1 - costheta) * r.x * r.y - r.z * sintheta) * p.y; q.x += ((1 - costheta) * r.x * r.z + r.y * sintheta) * p.z; q.y += ((1 - costheta) * r.x * r.y + r.z * sintheta) * p.x; q.y += (costheta + (1 - costheta) * r.y * r.y) * p.y; q.y += ((1 - costheta) * r.y * r.z - r.x * sintheta) * p.z; q.z += ((1 - costheta) * r.x * r.z - r.y * sintheta) * p.x; q.z += ((1 - costheta) * r.y * r.z + r.x * sintheta) * p.y; q.z += (costheta + (1 - costheta) * r.z * r.z) * p.z; q.x += p1.x; q.y += p1.y; q.z += p1.z; return(q); } Zelf games maken www.wouterbaars.net
Scripttaal versus “C” In scripttaal: Rotate (“kubus”, axis, degrees) Zijn er ook pakketten waar je helemaal niet in hoeft te programmeren? Zelf games maken www.wouterbaars.net
Bekende scriptalen die voor het maken van games gebruikt worden: (zie: www.gamesmaken.startpagina.nl) GML (Gamemaker) Lingo (Macromedia director) Basic (o.a. Darkbasic, Real Basic, .net) Python (Pygame, diverse games: Soldner wars, Battlefield I Blender gamekit) Actionscript (Flashgames) Zelf games maken www.wouterbaars.net
Gamemaker: games maken zonder ‘programmeren’ Zie: www.gamemaker.nl Belangrijkste voordeel: snel zichtbaar resultaat! Goedkoop (onderwijs) Uitgebreide community Goede kwaliteit Nadelen: alleen PC, alleen 2d Zelf games maken www.wouterbaars.net
Resultaten Gamemaker... Zelf games maken www.wouterbaars.net
Gamemaker lessen resultaat Zelf games maken www.wouterbaars.net
Level Editting Worden bij veel games meegeleverd Eigen speler, level, avatar, monsters enz. maken Wel extern 3d of grafisch pakket nodig Inzet bij educatie? Bv. Ckv les. Zelf games maken www.wouterbaars.net
Game modding Zelf games maken www.wouterbaars.net
3d gamekits Zelf games maken www.wouterbaars.net
Nuttige sites om verder te leren games te maken www.gamemaker.nl www.gamesmaken.startpagina.nl www.informaticaVO.nl www.gameuniv.net www.game-maker.nl Zelf games maken www.wouterbaars.net
Educatieve Game Wedstrijd Intermezzo: Educatieve Game Wedstrijd http://www.make-a-game.nl/ Zelf games maken www.wouterbaars.net
Games Maken voor docenten: Verwacht in 2006: via www.mediafabriek.org Zelf games maken www.wouterbaars.net
Contact: www.wouterbaars.net Zelf games maken www.wouterbaars.net