High Level Engine

Working in teams, develop the API for part of a high level game engine.
More expository text coming soon ...
- Player/Item System (includes managing score and other attributes)
- Level System (includes view of game space)
- Collision Manager (detecting and allowing custom reponses)
- Event System (allow handling of game events outside the main game loop)
- State System (allow games to be in different states during play)
- Game Resources (specifically images, sounds, time, random)
- Overlay/Static View (view game statistics separate from game play)
- Command Access (for future enhancement via game console)
- 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
- Enumerated Types
- Isolating Locale-Specific Data
- Using Reflection
- Using Key Bindings
- Using Java with XML
Deliverables
- Thursday, September 16. API proposal (one submission per team)
- In a paragraph or two, describe the design of your package (i.e., a high level view of the key aspects of your model for a programmer -- but no code!)
- In a page or two, describe the primary classes or interfaces in your system (their purpose and methods)
- Justify your choices by citing examples from existing games that your API would support easily
- Include a small code example of how to use your API
- Sunday, September 19. Updated Game (one submission per team)
- Update your original game (or make a new one) as an example of how to use your API
- Monday, September 20. API review (one submission per team)
- Compare the final version of your API with the one you proposed, discuss specifically how coding it changed your ideas about its design
- In about a page, review the good and bad aspects of your API
- Finally, rate your game engine - specifically how it supported making your API