Claypool

Courses

Publications

Students

Projects

Service

Downloads

Misc


Dragonfly - Project 2
[Dragonfly]

Project 2

Dragonfly


Top | 2A - Dragonfly Egg | 2B - Dragonfly Naiad | 2C - Dragonfly | Resources | Submission | Grading

The goal of this project is to build your own 2d, text-based game engine, called Dragonfly. Once done, you will use your Dragonfly to design and develop a game from scratch (in Project 3).

Project 2 is broken into three smaller parts, called A) Dragonfly Egg, B) Dragonfly Naiad and C) Dragonfly, that build upon each other to end with a fully functional, full featured game engine. Since it is critical that your engine code be easily understood (from the game programmer's perspective) and, more importantly, robust, the three projects are structured such that completing parts A and B will provide for a fully functional, if somewhat limited, game engine. This will enable you to proceed to Project 3. Thus, the due dates are staggered so that most of the time is allocated for part A and part B, but there is still time for completing part C if you are able. In addition, completing part B will be sufficient for earning a "B" grade for Project 2. Fully completing part C will result in additional features for the game engine and will provide opportunity for earning an "A" grade for Project 2.

Important! It is much better have tested, trusted robust code that only implements part A and part B then it is to have buggy, partially featured code that attempts to get into part C.

You will work alone for this project. This will ensure you have the development skills needed even if your tasks in Project 3 (making your own game, where you do work in teams) are more partitioned. While you can discuss the project with other students and even help each other debug code, you must write all code yourself.


2A - Dragonfly Egg

Part A of the assignment is to construct a game engine (in C++) that provides the following capabilities:

No visual depiction of the game is required for part A! Instead, all output can be via printing to the screen or, better, to a log file via the LogManager.

Classes that will be implemented, with some of the features each will have, include (note, list not necessarily in order of implementation):

The functionality described above will be obtained through careful implementation of the indicated classes. An approximate breakdown of their point values as they apply to Part A is below.

Grading Guidelines
LogManager 20%
Clock 10%
Position 5%
GameManger 10%
Object 10%
ObjectList 10%
ObjectListIterator 10%
Manager 5%
WorldManager 15%
Event and EventStep 5%

2B - Dragonfly Naiad

Part B of the assignment is to continue construction of your game engine using your codebase from Part A, adding the following additional capabilities:

All of the above capabilities must be thoroughly tested, bug-free and ready for a game programmer to make a game (you, in project 3)!

Classes that will be implemented and/or extended from Part A include (note, list not necessarily in order of implementation):

The functionality described above will be obtained through careful implementation and/or modification of the indicated classes. An approximate breakdown of their point values as they apply to Part B is below.

Grading Guidelines
Manger10%
GameManager5%
GraphicsManager25%
InputManager25%
WorldManager25%
Object/GameObject and Events10%

2C - Dragonfly

Part C of the assignment is to continue construction of your game engine using your codebase from Parts A and B, adding the following additional capabilities:

All of the above capabilities must be thoroughly tested, bug-free and ready for a game programmer to make a game (you, in project 3)!

Classes that will be implemented and/or extended from Parts A and B include (note, list not necessarily in order of implementation):

The functionality described above will be obtained through careful implementation and/or modification of the indicated classes. An approximate breakdown of their point values as they apply to Part B is below.

Grading Guidelines
ResourceManager25%
Sprite15%
Frame6%
Box6%
EventView3%
Object, GameObject, ViewObject25%
WorldManager20%

Resources

Development in Linux or in Windows inside Cygwin will provide the necessary support for graphics (curses) to complete your game engine. However, unlike your Project 1, for Project 2 your implementation does not have to be done in Linux or Cygwin. You can use any Windows development as long as:

If you have doubts about any of the above, ask before heavily investing time in your development environment.

You can use the Dragonfly Web Page for documentation on the classes you will implement for your game engine.

See the class materials for technical details on game engine implementation.


Submission

You must hand in the following:


Grading Rubric

Below is a general grading rubric:

100-90. The submission clearly exceeds requirements. The functionality is fully implemented and is provided in a robust, bug-free fashion. Full functionality is clearly depicted in one more more samples of game code and through clearly provided logfile messages. Documentation is thorough and clear.

89-80. The submission meets requirements. The basic functionality is implemented and runs as expected without any critical bugs. Functionality is depicted in one more more samples of game code and through logfile messages. Documentation is adequate.

79-70. The submission barely meets requirements. Functionality is mostly implemented, but may not be fully implemented and/or may not run as expected. There may be a few bugs, none critical. The functionality is depicted in sample code, but full representation is not shown. Documentation is inadequate, missing key details needed to understand the engine and/or to build the programs.

69-60. The project fails to meet requirements in some places. The game engine is missing critical functionality or what is there has bugs. The engine may crash occasionally. Game code demonstrating the engine is missing or incomplete. Documentation is inadequate, missing key details needed to understand the engine and/or to build the programs.

59-0. The project does not meet core requirements. The engine cannot compile, crashes consistently, or is lacking many functional features. The sample game code is missing or incomplete. Documentation is woefully inadequate or missing.


Top | 2A - Dragonfly Egg | 2B - Dragonfly Naiad | 2C - Dragonfly | Resources | Submission | Grading