How to Make a Game Like Space Invaders - PowerPoint PPT Presentation

How to make a game like space invaders
1 / 41

  • Uploaded on
  • Presentation posted in: General

How to Make a Game Like Space Invaders. What IS Space Invaders?. a SHMUP (shoot-em-up) Player has one ship, enemy has many Player and enemies interact by shooting at each other Top-down 2D (usually). Concepts. Video Frames/Ticks. A film is made of 24 still pictures per second

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

How to Make a Game Like Space Invaders

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

How to make a game like space invaders

How to Make a Game LikeSpace Invaders

What is space invaders

What IS Space Invaders?

  • a SHMUP (shoot-em-up)

  • Player has one ship, enemy has many

  • Player and enemies interact by shooting at each other

  • Top-down 2D (usually)

How to make a game like space invaders


Video frames ticks

Video Frames/Ticks

  • A film is made of 24 still pictures per second

  • Motion is achieved by small changes to each picture, but 24 fps is still fast

Video frames ticks 2

Video Frames/Ticks 2

  • Video games are usually 30 or 60-80 fps

  • Video games achieve movement by moving each screen object a little bit every frame

Shmups are very object oriented

Shmups are very object-oriented

  • Ships are objects

  • Bullets are objects

  • The player is an object

  • Explosions are objects

  • Levels can be objects (certainly made of objects)



  • How many bullets can be on the screen at once?

  • Space Invaders = 1 for player, 2 for enemies

  • Modern = completely arbitrary



  • A great way to store and organize objects

  • Most beginners get hung up here

  • Conceptually harder than arrays

  • C and C++ use linked lists (with pointers)

  • BlitzBasic has list:TList

What is a ship

What is a ship?

  • Is-dead flag

  • Health value

  • X and Y positions

  • Path logic and data

  • Reference to the art

  • Animation state

  • Bullet/missile launch state

  • Bullets and Explosions are very similar to ships!

What is a player ship

What is a player ship?

  • Not as much, surprisingly

  • Path logic is in your fingers, not in code

  • So keyboard state checks (for avatar control) go here

What is a bullet missile

What is a bullet/missile?

  • Like a ship, but (usually) simpler movement

  • Erased when it goes off screen, not when it reaches the end of its path

  • State: Player shot or Enemy shot

  • Each Player-bullet collides against every enemy

  • Each Enemy-bullet collides against player

So to make space invaders

So, to make space invaders…

  • Make a player

  • Make a bunch of enemies

  • Move them every frame, have them create bullets

  • Move the bullets every frame

  • Check for enemy-bullet collision every frame

  • Keep going, even if all the enemies or the player is dead

How to make a game like space invaders


Main loop in pseudocode

Main loop in Pseudocode






done = false;

while (done == false)








if (EscapeKeyPressed() == TRUE)

done = TRUE;





Timer callback version

Timer callback version






// some systems, like Flash and Torque, do the drawing for you




if (EscapeKeyPressed() == TRUE)

done = TRUE;






ForEach( bullet)


x = x + dx;

y = y + dy;

if (BulletOffScreen())


isDead = TRUE;




if (Collides(enemy, bullet))


isDead = TRUE;







How to make a game like space invaders

Basic Math

Vectors and offsets

Vectors and Offsets

  • Where is your Ship? X and Y

Vectors and offsets 2

Vectors and Offsets 2

  • Where is your bullet? Also X and Y

  • Where is your bullet in relation to your ship? bulletX – shipX and bulletY – shipY

Vectors and offsets 3

Vectors and Offsets 3

  • How far apart are they? Pythagorean theorem (sqr(a) + sqr(b) = sqr(c))

  • This requires a slow square root function

Vectors and offsets 21

Vectors and Offsets2

  • What direction from the ship to the bullet? Arctangent

  • Atan2(bulletX – shipX, bulletY – shipY)



  • Usually gives a direction in radians, from 0-(2*PI)

  • PI is 3.1415927 (= 180 degrees)

  • Radian to degrees = dir / (PI*2) * 360

Vectors and offsets 31

Vectors and Offsets3

  • So you can describe the relationship between two objects on the screen in two different ways



  • Offset = x and y coordinates (or differences)



  • Vector = direction and distance

Translate offsets to vectors

Translate Offsets to Vectors

  • Get distance with Pythagoras

  • Get direction with Atan2 (Arctangent)

Translate vectors to offsets

Translate Vectors to Offsets

  • X = sin(direction) * distance

  • Y = cos(direction) * distance

Vectors offsets important

Vectors & Offsets = important

  • Shooting bullet directly at the player

  • Homing missiles

  • Collision detection (is bullet close enough?)

  • Enemy follows path

What is turntowardspoint

What is TurnTowardsPoint()

  • If you want the homing missile to turn slowly towards the enemy (instead of instantly) what do you do?

  • The answer is the TurnTowardPoint() algorithm.

How to make a game like space invaders

Designing Your Game



  • Traditional part of shmups

  • Each one is a love letter to the player

  • Multiple weapons

  • Multiple parts

  • Multiple Modes

  • It’s a boss, not just an extended enemy



  • Functionally just like Bullets

  • Give expanded powers to the player

  • Key to one of the basic metagames

The game modes

The Game Modes

  • Play mode

  • Start mode

  • Results mode (you are dead, how’d you do)

  • Pause mode

  • Credits mode

  • Options mode

Game modes 2

Game Modes 2

  • Recognize that game modes are just states

  • Completely different states than game states

Scrolling background

Scrolling Background

  • Space Invaders background was black

  • Galaga and others had winking, scrolling stars

  • Zaxxon and others started making the background complex and interactive

  • Treasure games are famous for complex, puzzle-like environments

What are shmup levels

What are Shmup levels?

  • Hand-crafted definitions of when each enemy shows up

  • The things that happen before a boss shows up

  • Divisions of art

  • Scoring opportunities

How are levels made

How are levels made?

  • Make the editors yourself, for yourself

  • Ship path editor (mirror-able)

  • Level editor

  • Place art tiles

  • Place ship spawn points

  • Place camera path

  • Boss editor

In conclusion

In Conclusion

  • Don’t be afraid, shmups are simple

  • Shmups are easier for small teams

  • Google and Youtube will teach you so much

  • Shmup dev concepts apply to other genres

How to make a game like space invaders

Q & A

  • Shmup History

  • Program Structure

  • Math

  • Game Modes

  • Game Levels

  • Bosses

  • Powerup Systems

  • Editors

  • Selling your Shmup

  • Login