57
#likeacraftsman HTML5 Game Development 1 Monday, September 26, 2011

SCMC HTML5 Game Development

Embed Size (px)

DESCRIPTION

My presentation for HTML5 Game development done at the Software Craftsmanship McHenry County.

Citation preview

Page 1: SCMC HTML5 Game Development

#likeacraftsman

HTML5 Game

Development

1Monday, September 26, 2011

Page 2: SCMC HTML5 Game Development

2Monday, September 26, 2011

Page 3: SCMC HTML5 Game Development

3Monday, September 26, 2011

Page 4: SCMC HTML5 Game Development

4Monday, September 26, 2011

Page 5: SCMC HTML5 Game Development

5Monday, September 26, 2011

Page 6: SCMC HTML5 Game Development

6Monday, September 26, 2011

Page 7: SCMC HTML5 Game Development

7Monday, September 26, 2011

Page 8: SCMC HTML5 Game Development

8Monday, September 26, 2011

Page 9: SCMC HTML5 Game Development

9Monday, September 26, 2011

Page 10: SCMC HTML5 Game Development

10Monday, September 26, 2011

Page 11: SCMC HTML5 Game Development

11Monday, September 26, 2011

Page 12: SCMC HTML5 Game Development

12Monday, September 26, 2011

Page 13: SCMC HTML5 Game Development

13Monday, September 26, 2011

Page 14: SCMC HTML5 Game Development

Nuts And Bolts14Monday, September 26, 2011

Page 15: SCMC HTML5 Game Development

Canvas

15Monday, September 26, 2011

Page 16: SCMC HTML5 Game Development

Canvas

<canvas width="200" height="200"> This Browser doesn't support the canvas.</canvas>

16Monday, September 26, 2011

Page 17: SCMC HTML5 Game Development

17Monday, September 26, 2011

Page 18: SCMC HTML5 Game Development

context.save(); context.setTransform(1,0,0,1,0,0);

context.translate(400, 300);context.rotate(playerState.rotationAngle);

context.drawImage(player, -37, -30);context.restore();

18Monday, September 26, 2011

Page 19: SCMC HTML5 Game Development

Audio

19Monday, September 26, 2011

Page 20: SCMC HTML5 Game Development

Audio

backgroundMusic.play(); backgroundMusic.pause();

20Monday, September 26, 2011

Page 21: SCMC HTML5 Game Development

21Monday, September 26, 2011

Page 22: SCMC HTML5 Game Development

22Monday, September 26, 2011

Page 23: SCMC HTML5 Game Development

function gameLoop() {update();draw();}

setInterval(function() { gameLoop(); }, this.getTickTime());

23Monday, September 26, 2011

Page 24: SCMC HTML5 Game Development

this.loop = function() { while (scheduler.getTicks() > nextGameTick) { updaterList.update();

nextGameTick += scheduler.getTickTime(); } screen.render(); };

24Monday, September 26, 2011

Page 25: SCMC HTML5 Game Development

Tests25Monday, September 26, 2011

Page 26: SCMC HTML5 Game Development

26Monday, September 26, 2011

Page 27: SCMC HTML5 Game Development

27Monday, September 26, 2011

Page 28: SCMC HTML5 Game Development

NO GUI!

28Monday, September 26, 2011

Page 29: SCMC HTML5 Game Development

NO GUI!

29Monday, September 26, 2011

Page 30: SCMC HTML5 Game Development

+•JSDom•Node-JQuery•Underscore•Bullets suck

30Monday, September 26, 2011

Page 31: SCMC HTML5 Game Development

HOW?

31Monday, September 26, 2011

Page 32: SCMC HTML5 Game Development

32Monday, September 26, 2011

Page 33: SCMC HTML5 Game Development

Context = function() { this.drawImage = function(image, x, y) { imageList.push({name: image, x: x, y: y}); };

this.fillRect = function(x, y, width, height) { this.filledRect = {x: x, y: y, width: width, height: height }; }; };

33Monday, September 26, 2011

Page 34: SCMC HTML5 Game Development

context = new Context();

screen = new Eskimo.Screen(context);

34Monday, September 26, 2011

Page 35: SCMC HTML5 Game Development

screen.render();

expect(context).toHaveScreenClearedTo("#aaaabb");

35Monday, September 26, 2011

Page 36: SCMC HTML5 Game Development

Why?

screen.put(image);

screen.render();

36Monday, September 26, 2011

Page 37: SCMC HTML5 Game Development

JSDom

• Simulates the DOM

• Doesn’t Support HTML5

• Bullets suck

37Monday, September 26, 2011

Page 38: SCMC HTML5 Game Development

define("HTMLAudioElement", {

tagName: 'AUDIO',

attributes: [

'src'

]

38Monday, September 26, 2011

Page 39: SCMC HTML5 Game Development

levelLoader.load("newLevel");

spiedJQuery.triggerEvent("canplaythrough");

jukebox = levelLoader.getJukebox();

var asset = jukebox.assets.get('soundOne').src;

expect(asset).toEqual('sound.mp3');

39Monday, September 26, 2011

Page 40: SCMC HTML5 Game Development

Simulators are hard!

40Monday, September 26, 2011

Page 41: SCMC HTML5 Game Development

Game Logic

Interaction

DOM

41Monday, September 26, 2011

Page 42: SCMC HTML5 Game Development

SpiesspyOn(levels, "load"); TitleScreen.load(levels, screen);

expect(levels.load).toHaveBeenCalledWith('title', TitleScreen);

42Monday, September 26, 2011

Page 43: SCMC HTML5 Game Development

Acceptance

Player 1 Player 2 Winner

Rock Paper Paper

Paper Scissors Scissors

Scissors Rock Rock

43Monday, September 26, 2011

Page 44: SCMC HTML5 Game Development

Architecture44Monday, September 26, 2011

Page 45: SCMC HTML5 Game Development

45Monday, September 26, 2011

Page 46: SCMC HTML5 Game Development

FeedTheQuinn.Assets = {

'title': {

'images': {

'background': {

'src': 'images/title_screen_background.jpg',

'location': {

'x': 0,

'y': 0

}

},

46Monday, September 26, 2011

Page 47: SCMC HTML5 Game Development

Dead

Respawn

Alive

47Monday, September 26, 2011

Page 48: SCMC HTML5 Game Development

48Monday, September 26, 2011

Page 49: SCMC HTML5 Game Development

49Monday, September 26, 2011

Page 50: SCMC HTML5 Game Development

50Monday, September 26, 2011

Page 51: SCMC HTML5 Game Development

if (intersects(humanControlledBitmap.currentlyHeldKillableObject, otherGameObject.boundingBox) && otherGameObject.isCapableOfEndingGame?) { gameObjectList.remove(otherGameObject); numericValueRepresentingAPositiveReinforcementOfPlayerBehavior += 100241;}

51Monday, September 26, 2011

Page 52: SCMC HTML5 Game Development

player.kill(zombie);

52Monday, September 26, 2011

Page 53: SCMC HTML5 Game Development

player.decapitate(zombie);

53Monday, September 26, 2011

Page 54: SCMC HTML5 Game Development

JavaScript

54Monday, September 26, 2011

Page 55: SCMC HTML5 Game Development

Design

55Monday, September 26, 2011

Page 56: SCMC HTML5 Game Development

Eskimo!

56Monday, September 26, 2011

Page 57: SCMC HTML5 Game Development

Thanks

57Monday, September 26, 2011