Description
The goal of this project is to incorporate more action and interaction into your animation so that it
includes projectiles and explosions, and an object pool. Your goal should be to develop a consistent theme
because in the next project your game must reach a reasonable conclusion.
Sprites: For this project, you are not required to draw your own sprites, but you may not use any sprites
that I have provided. If you use sprites that you did not build yourself, they must be available under the open
source license and you must specify, in your ascii README, the site where you got the sprites.
Data-Driven: your game must be data driven so that you read game constants from an XML file.
Story Driven: The requirements listed below should guide this project; however, if one or more of the
requirements is inconsistent with the theme or story that you are trying to tell, stop by during office hours
or send an email with times that we might meet to discuss your game idea and to negotiate a trade for the
inconsistent requirement.
Object Pool: An important goal of this course is to provide an opportunity for you to use seven design
patterns. The object pool pattern is one such pattern. Therefore, you should incorporate an object pool into
your game and, for this project, your hud should show that the pool is working. Figure 1 illustrates, in the
upper right corner, the instructor’s use of an object pool for bullets, with 3 bullets active and 2 bullets in the
pool. This figure is intended only for illustration and should not be interpreted to mean that you must have
bullets and they must be pooled in your game, or that you have to have a separate hud that must appear in
the upper right corner. The point is that you should implement an object pool and demonstrate that the pool
is working in a HUD.
• Either submit an mp4 movie that you generated, or make sure the F4 key works so that the TA can
generate a movie for you.
• Include a well-controlled player object, and an animation that creates the illusion of depth.
• Your information HUD should appear at the start of your game and remain long enough to enable the
user to see how to use your game. This HUD should be toggled with F1, and provide information
about how to move the player, and any other game information you wish to display.
• Projectiles: you don’t have to shoot bullets, but you need projectiles.
• Collision detection that triggers explosions.
1
Figure 1: An illustration of object pooling, with three active bullets and one bullet in the “pool”
• Your player should explode and, after the explosion completes, should re-appear. Use OO design.
• NPC explosions: use chunks and/or frames.
• Demonstrate object pooling and show pool contents in your information HUD that appears at program
start, toggles with F1, and shows information about how to move the player, how many objects are
active and how many objects are pooled, and any other information you wish to display.
Your assignment will be tested on a Linux platform using gcc or clang, however you should test your
project on several different platforms and it should be independent of platform and language implementation.
2