Slide 1

Slide 1 text

A Brief Introduction to Space Invaders

Slide 2

Slide 2 text

Humanity’s Last and Best Hopes @quadhome @gardym Mike, say something funny about yourself. Scott, admit your greatest fear is talking in front of a group of strangers.

Slide 3

Slide 3 text

When the fate of the world is on the line... (Really) Fast Feedback Test Driven DevelopmentDESIGN Continuously Continuous Delivery 1-Click® Deployment Why are we here? To have fun and learn... FF: the speed of a team of a development team is dependent on how fast we can react TDD: Because evolving code with tests guides our design. CD: When changes are made, we can immediately put them out with confidence. Deployment: Don’t want to schedule a release to save the world... but, actually...

Slide 4

Slide 4 text

The Real Reason § KEEP CALM AND RETRO GAME

Slide 5

Slide 5 text

εϖʔεΠϯϕʔμ Designed engineer and built by Tomohiro Nishikado in 1978 Who, according to Wikipedia, had a dream about Japanese school children attacked by invading aliens whilst waiting for Santa Claus. HISTORY: STRANGER THAN FICTION

Slide 6

Slide 6 text

An Invader What’s funny about the Invader? Nothing. There’s here to destroy planet Earth.

Slide 7

Slide 7 text

The Swarm It’s common knowledge that all alien invasions come in swarm form. The worst form.

Slide 8

Slide 8 text

The Tank Our last, best, most advanced but lowest resolution defence against skyborn menaces.

Slide 9

Slide 9 text

The Tank’s Bullet They go up.

Slide 10

Slide 10 text

An Invader’s Bullet They go down.

Slide 11

Slide 11 text

An approximation of game programming while(true) { update_everything(time, input); collide_everything(); draw_everything(); } Event loop. Move everything, see what got hit, and then draw the results... like a Space Invader...

Slide 12

Slide 12 text

The Theatre of War (0,0) (width, height) (x, y) (width, height) An invader and its bounding box Collisions occur when bounding boxes overlap Invader { active: [true, false] box: { x, y, width, height } update(time, input) collide(what hit) team: [Team.Earth, Team.Invader] }

Slide 13

Slide 13 text

So let’s play! testinvaders.heroku.com