CompSci 108
Fall 2010
The Software Studio

High Level Engine

pong

Working in teams, develop the API for part of a high level game engine.

More expository text coming soon ...

  1. Player/Item System (includes managing score and other attributes)
  2. Level System (includes view of game space)
  3. Collision Manager (detecting and allowing custom reponses)
  4. Event System (allow handling of game events outside the main game loop)
  5. State System (allow games to be in different states during play)
  6. Game Resources (specifically images, sounds, time, random)
  7. Overlay/Static View (view game statistics separate from game play)
  8. Command Access (for future enhancement via game console)
  9. Game Loop (allow control of the main game loop)

Use Cases

Often when trying coordinate a complex system, it helps to consider specific use cases to determine what responsibilities each part of the system may have or how information will flow through the system.

Create a detailed description of how the overall game engine will handle the following use case: In Arkanoid, the ball hits the last brick, causing it to disappear, the player's score to be updated, a new level to be loaded, the ball and paddle to be reset, and the game play started again. It should be clear from the description which objects are responsible for completing each part of the task.

Resources

There are many Java packages that may help inform the design of your API. Here are the most specifically useful ones as described in The Java Tutorial

Deliverables