Due date:
This is the third project that your team will complete in working towards creating a computer game prototype. This project focuses on the development of your game's objects and the logic that defines their behaviors. For this assignment you will not be developing any systems-level code - you will instead be using the Game Maker software as a development platform upon which you will script your game's code.
At the core of any game are its underlying rules. From physical simulation to artificial intelligence, all aspects of a game are ultimately encoded in rules. If a game contains abstract ideas, such as events (e.g. "first-downs"), units (e.g. "hit-points"), objects (e.g. "phased plasma-rifle in a 40-watt range"), people (e.g. "John Doe"), etc., then its code must contain rules that govern these abstractions and their properties.
You have already laid out the vision for how your game will behave. The purpose of this project is for you to implement the behavior put forth in your game documents. With this project, your group will begin prototyping the game that you have been designing, and in the process gain experience implementing and testing game logic.
For this project, your group will begin coding the prototype of your game using the Game Maker software. For this prototype you should use the treatment document from Project 2 the art assets that you have accumulated from Project 3 (the intent is not to spend additional effort on art. If you do find you need additional assets as your project progresses, you are free to add them, but it is not required). The focus of this phase of the project is on your game's objects and their behaviors, with the vision that careful level design can be used in a subsequent projects to put it all together.
All of your effort will be focused on implementing a variety of objects for your prototype in Game Maker. Your First Prototype will be evaluated based on several criteria: object activity, object interactivity, user interactivity and AI/reactivity. In addition to meeting these criteria, you will be required to submit an informal README file that briefly describes these objects. Grading for this project will be flexible based on the needs of your game (see the Grading section for details).
Your group is responsible for creating a simple prototype that demonstrates how your game's objects will behave. This prototype, along with an informal README document will be handed in when the project is due.
Your prototype should define at least 10 Game Maker Objects (the number of different objects required for a fully functioning prototype will ultimately depend upon your game, but 10 are required as the minimal for grading purposes). Each object should have somewhat unique behavior - it must be more than a copy or sub-class of another object. As a whole, your objects will have to meet the following criteria:
Object Activity | Some of your objects must have the ability to change state, and this change must be reflected to the user in some fashion. This could take the form of a change in location being reflected by motion on the screen, motion along a path, or some other change causing a change in sprite, etc. |
---|---|
Object Interactivity | Some of your objects must have the capability of interacting with each other, i.e. an interaction between the two must cause at least one of the objects to change state. For instance, an interaction could take the form of a collision between two objects causing one object to rebound off another. Or, an interaction could be of the form "picking it up" causing one object to dissappear. |
User Interactivity | At least one of your objects must respond to user input (keypress, mouse motion, etc.). |
AI/Reactivity | At least one of your objects must exhibit "intelligent" behavior by reacting to the objects around it. This differs from the "object interactivity" requirement in that the "intelligent" object must adapt its behavior as a situation changes. An example of this might be an object that pursues other objects no matter where they move to. |
For testing these objects, create one or more simple Game Maker rooms. Note that these rooms are not meant to be representative levels of your finished prototype, so do not spend much time on the rooms themselves (completing the levels/rooms will be the focus of the next project). You will use them to test your objects, and the graders will use them to evaluate your project. Use as many rooms and as many copies of your objects as you feel necessary to show that you have filled the criteria.
You are also required to start the implementation of user-defined options that allow a user to change/influence the game world. There must be at least two options that the user can change to some aspect of the the game world (number of lives, hit points, game speed, difficulty, etc.). You may make the options accessible by a separate Game Maker room (say, when the game starts up) or by some other menu or buttons on the interface.
Finally, you must write a short README (text file) that describes the objects that you have created, their behaviors, and which objects fill which criteria. Your README file should also mention the options available for the user to influence the world, and specifically now they affect the objects. Also, your README should list the members of your group, the criteria which you would like to weight for grading (see Grading below) and instructions on using this version of the prototype.
One member of each group should submit all materials (Game Maker .gm6 file and README) electronically via turnin by 11:59pm on the day the project is due.
One member of your group will need to upload the files you are turning in to their CCC account on one of the CCC machines (ccc1 to ccc10). While logged into a CCC machine, that member will need to enter the directory where these files are stored and execute the following:
/cs/bin/turnin submit <course> <assignment> <file1> <file2> ...
where in our case, <course> is imgd1001, <assignment> is project4, and <file> is the name of your Game Maker .gm6 file and your README.
Once done, you should verify that your files have been entered into turnin by executing the following command:
/cs/bin/turnin verify imgd1001 project4
Grading for this project is intended to be flexible. In order to grade your project based on the specific requirements of your game, we have have reserved 25 percentage points for you to allocate to the various criteria. You will be allowed to evenly distribute these 30 points across one, two or three of the criteria (Object Activity, Object Interactivity, User Interactivity, AI/Reactivity). This means that you can add 30% to the weight of one criteria, 15% to the weights of two criteria, or 10% to the weights of three criteria.
Assigning these points to a specific criteria tells us that you believe your efforts were focused there, and thus grading of that criteria should undergo extra scrutiny in computing your project grade. For instance, assigning all 30 points to "Object Activity" would tell us that you put extra effort into the motion of your objects, so you will not receive full credit for that category unless we see your objects exhibiting a variety of complex changes, perhaps based on mathematics.
In order to communicate to us where you would like these flex-points to be allocated, please include in your README a list of one, two or three categories to split your flex-points between.
Grading Guidelines | ||||||
---|---|---|---|---|---|---|
Category | Weight | |||||
Object Activity | 15% | |||||
Object Interactivity | 15% | |||||
User Interactivity | 15% | |||||
AI/Reactivity | 15% | |||||
Options | 10% | |||||
README | 5% | |||||
Flexible | 25% |
For a presentation summary, you might check out the slides (ppt, pdf) for this project.
Other resources:
Send all project questions to the TA mailing list (imgd1001-ta at cs.wpi.edu)
.