[Dragonfly]

IMGD 3000 Project 2

Dragonfly

Due dates:

  • A: Dragonfly Egg: February 1st, 11:59pm
  • B: Dragonfly Naiad: February 10th, 11:59pm
  • C: Dragonfly: February 10th, 11:59pm

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 working 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 working, if somewhat limited, game engine. This will enable you to proceed to Project 3. Thus, the due dates are staggered so that both part B and part C are both due on the same day. 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 can 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!

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%
GameObject 10%
GameObjectList 10%
GameObjectListIterator 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%
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%
Frame8%
Box7%
GameObject25%
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

Your assignment is to be submitted electronically via turnin by 11:59pm on the day due. You must hand in the following:

If you do not have your files on the CCC machines, then copy your entire working directory to your CCC account. Then, login to the CCC machines (using slogin or putty). Use tar with gzip to archive your files. For example (adjust the below instructions for 2b and 2c, as appropriate):

    mkdir lastname-proj2a
    cp * lastname-proj2a  /* copy all the files you want to submit */
    tar czvf proj2a-lastname.tgz lastname-proj2a  /* compress */
Submit your assignment (proj2a-lastname.tgz):
    /cs/bin/turnin submit imgd3000 project2a proj2a-lastname.tgz

Following this, you should verify that your files have been entered into turnin by executing the following command:

    /cs/bin/turnin verify imgd3000 project2a

If you need more information, see Using the turnin Program for additional help with turnin.


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 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

Return to the IMGD 3000 Home Page

Send all questions to the TA mailing list (imgd3000-staff at cs.wpi.edu).