gamesmaken.startpagina.nl je eigen videogame wouter baars demozone 2005
TRANSCRIPT
Gamesmaken.startpagina.nlwww.wouterbaars.net
je eigen videogame
Wouter Baars
Demozone 2005
Gamesmaken.startpagina.nlwww.wouterbaars.net
Belangrijke Waarschuwing!
Gamesmaken.startpagina.nlwww.wouterbaars.net
Intro: Game productie wat hoort daarbij?
• Graphics:– 3D modelling– Textures– 2d Artwork– Animaties– Fonts, enz.
• Software:– 3Dmax– Maya– Photoshop
• Of open source:– Blender– Gimp
Gamesmaken.startpagina.nlwww.wouterbaars.net
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 listend
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))
Gameproductie vervolg
Programmeren:
- C (++)- Scripting- Speciale platforms (bv
webgames)
Gamesmaken.startpagina.nlwww.wouterbaars.net
Gameproductie vervolg
Concept design:• Verhaallijn
• Storyboard
• Level design
• Spelregels
Gamesmaken.startpagina.nlwww.wouterbaars.net
Gameproductie vervolg
Audio:
• Midi
• Audio
Software:
• Logic
• Cubase
• Protools
Gamesmaken.startpagina.nlwww.wouterbaars.net
Resumé
• Graphics• Programmeren• Concept• Audio• Projectleiding• AI, Physics engine’s
Gamesmaken.startpagina.nlwww.wouterbaars.net
3d: Hoeveel vrije tijd heb je?
Gamesmaken.startpagina.nlwww.wouterbaars.net
Hoe belangrijk is 3d voor een game?
Gamesmaken.startpagina.nlwww.wouterbaars.net
Hoeveel vrije tijd heb je? - verlvolg
Programmeren in C of in een scripttaal?
Gamesmaken.startpagina.nlwww.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);
Gamesmaken.startpagina.nlwww.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);
}
Gamesmaken.startpagina.nlwww.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);
Gamesmaken.startpagina.nlwww.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);}
Gamesmaken.startpagina.nlwww.wouterbaars.net
Scripttaal versus “C”
In scripttaal:
Rotate (“kubus”, axis, degrees)
Gamesmaken.startpagina.nlwww.wouterbaars.net
Middleware voor games
• Zie: www.gamesmaken.startpagina.nl
Bv. Gamemaker
Macromedia director
Darkbasic
Pygame
Torque
Blender gamekit
e.v.a......
Gamesmaken.startpagina.nlwww.wouterbaars.net
b.v. Blender gamekit
Gamesmaken.startpagina.nlwww.wouterbaars.net
Bv. (2d) Gamemaker
Gamesmaken.startpagina.nlwww.wouterbaars.net
Resultaten
Gamesmaken.startpagina.nlwww.wouterbaars.net
Designtips
• No1: Uitdaging• No2: Doel duidelijk?• No3: Interactie goed?• No4: Easy to master, hard to learn• No5: Balans in je game• ... De spelregels zijn het belangrijkste!
Gamesmaken.startpagina.nlwww.wouterbaars.net
De spelregels zijn het belangrijkste!
• Niet 2d of 3d• Niet de schoonheid van de graphics• Niet de verhaalcontext (b.v. fanatasy of
space)
Gamesmaken.startpagina.nlwww.wouterbaars.net
Binnenkant of buitenkant?
“Een game is als een mooie vrouw: een mooi uiterlijk is meegenomen maar als ze geen interessant karakter heeft, is de lol er snel vanaf”
Gamesmaken.startpagina.nlwww.wouterbaars.net
Leuk spel
Gamesmaken.startpagina.nlwww.wouterbaars.net
Ook een leuk spel...
Gamesmaken.startpagina.nlwww.wouterbaars.net
Iets minder leuk...?
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 O-O 8. h3 Bb7 9. d3 d6 10. a3 Na5 11. Ba2 c5 12. Nbd2 Nc6 13. c3 Qd7 14. Nf1 d5 15. Bg5 dxe4 16. dxe4 c4 17. Ne3 Rfd8 18. Nf5 Qe6 19. Qe2 Bf8 20. Bb1 h6 1/2-1/2
Gamesmaken.startpagina.nlwww.wouterbaars.net
Is het doel duidelijk?
“Contest Arena Would someone please tell me how to play this game? And why does the instructions have to be like 10 pages long? ...(enz. enz.)”
Gamesmaken.startpagina.nlwww.wouterbaars.net
Uitdaging
Gamesmaken.startpagina.nlwww.wouterbaars.net
Easy to master, hard to learn
• Vermijdt een (geschreven/gesproken) uitleg• De drempel om met een game te beginnen moet
niet te hoog zijn (besturing)• Zorg dat het interessant blijft (steeds iets
moeilijker/verrassingen)
Gamesmaken.startpagina.nlwww.wouterbaars.net
Goede interactie?• Zijn de handelingen duidelijk die je moet
verrichten?
• Reageert de computer (snel genoeg) op je acties?
• Krijg je de juiste feedback?
• Enz. (zie diverse artikelen op het web/boeken over interactie of ergonomie)
Gamesmaken.startpagina.nlwww.wouterbaars.net
http://www.submarinechannel.com/louparadis
Gamesmaken.startpagina.nlwww.wouterbaars.net
Feedback voorbeeld Quake III
Gamesmaken.startpagina.nlwww.wouterbaars.net
Balans in je game
Gamesmaken.startpagina.nlwww.wouterbaars.net
Balans voorbeeld starcraft
Gamesmaken.startpagina.nlwww.wouterbaars.net
Conclusie
• Welke discipline(s) wil je je in bekwamen?
• Welke instrumenten ga je gebruiken?• Hoeveel tijd heb je?• Alleen of in een groep?• Inhoud is belangrijker dan de vorm!
Gamesmaken.startpagina.nlwww.wouterbaars.net
Vragen?
Voor bronnen en startpunten zie:www.gamesmaken.startpagina.nl
Nadere info/vragen/opmerkingen: email via www.wouterbaars.net