Introduction
The Game
The lost fish is a simple educational game for children to learn about behaviors and characteristics of different sea creatures such as fishes and plants in a fun and challenging way.E.g., Dolphin is an innocent, friendly sea animal, whereas shark is harmful
Also, it is intended to make the children aware of common characteristics of the sea creatures, which belongs to a particular category.
E.g., harmful animals will scream furiously and look angry
In this game, player is a baby fish that has lost in the sea. Baby fish has to find its way home passing different barriers, while escaping from harmful animals.
Game Rules
Assume, before starting the game, baby fish will be given some knowledge on the sea creatures by its mother fish. But, mother fish will not be able to tell about “all” the sea creatures.
If the baby fish collides with a harmful creature, the baby fish will get weak. (Loose energy)
If the baby fish identifies and meet friendly fish it will gain energy. If energy level is below zero, baby fish will die and the game is over.
Baby fish will get bonus points if it reach/find home soon.
Win the Game
Baby fish has to reach home with maximum energy level with maximum bonus points, to win the game.
Design
This game is designed with the intention of improving further with a variety of sea animals with different appearances and behaviors. Then, game will keep the players interested and also this will lead to a good learning resource as well.Design Decisions
OOP concepts such as encapsulation, inheritance and polymorphism are used to improve the reusability, maintainability and the extendibility of the game.Strategy Design Pattern
Strategy design pattern is used to effectively extend the game with new sea creatures with diverse behaviors, to keep the player entertained. Also, different behaviors can be dynamically invoked using this approach.An example scenario is given below:
Assume we have to add two new sea animals (E.g., whale and jelly fish) with different/ existing sound behaviors to the game, with out doing major changes to the core game design and avoiding duplicate code. If we use the traditional inheritance approach, where all the sea animal behaviors (E.g., sound/ scream) inherit from parent class SeaAnimal, then the code will be duplicated for similar behaviors. But, the given approach will solve that problem using interface implementations for similar behaviors.
The current design supports the above scenario in two different ways.
• Inheritance: New sea creatures can be created by extending “SeaAnimal” abstract class
• Polymorphism: Novel sound behaviors can be added or existing sound behaviors can be reused using “Sound” interface.
Using Constants
Constant values are used wherever applicable to improve reusability and maintainability.Class Diagram
Sequence diagrams
UI Design
References
[1] http://obviam.net/index.php/design-in-game-entities-object-composition-strategies-part-1/
-->
Nice article ..
ReplyDeletethanks for share this article -Iphygenia solution specializes in Mobile Game Development Company Lucknow. We have developed PC and Mobile Games ( iPhone/ iPad , Android and Blackberry ). We integrate projects seamlessly with the assistance of game development managers from our game development department.
Nice Post. I like your blog. Thanks for Sharing.
ReplyDeleteJava Course in Noida