Project Assignment, Games-I
The goal of this project is to give you a taste of the different sides to creating a computer game. However, since this is an A-course you will merely skim the surface and for simplicity all will be done in Java with a pre-constructed base platform.
Since the project replaces the traditional "Tenta" examination, we expect you to plan the project properly and complete it within the given deadline. If the deadline cannot be met, you will have to redo the project at the next course instance. The deadline is a *HARD DEADLINE*.
This is a 5p course with focus on the project assignment, most of the time will be spent on the project. As for the disposition of the project work, we will leave that to each group to plan. There will be a number of milestone meetings between the group and teachers.
The Project Group
The project will be done in groups, in which each person should have a primary role as well as be involved in all other parts of the project. Each group should have a project manager (PM), responsible for organizing work. The Project Manager will also be responsible for interaction with the assistants, planning meetings and submitting regular status reports. The PM is a secondary role, so the person that assumes the PM roll should also have a primary role.
- Examples of roles could be: programmer, graphics design, level & plot design, AI, etc.
It is important that the group divides the work properly, and that members work as a team.
Meetings and Reports
Each group will have an initial meeting with the assistants, to discuss their project and time plan. Before this meeting, the group should have a rough idea about what the game will be, who will do what, as well as a rough time plan with key mile stones.
The final meeting is when you present your work to the assistants, we expect a demonstration of your game and we will ask questions regarding implementation and design. All members must be present and must be able to answer questions.
- Week 28: Initial Meeting.
- Week 35: Final Report. This is your examination.
(All member must attend the meetings.)
Each Project Manager must submit regular reports on the progress of the group. The report and it's layout will be discussed on the Project Lecture.
Each group should maintain a 'project page', where the following can be found.
- A description of the game.
- A list of members with contact information (email)
- Time reports for each member (grouped by week), specifying how much time was spent and what the time was spent on.
- A download link to the completed game, must be a runnable (with "java -jar theGame.jar") JAR file.
You will be provided with the source code for a simple 2D platform game written in Java. The code is taken from the course book and can be downloaded here. We have also set up a CVS repository for each group that must be used since we will extract information from each repository. The username and password will be emailed out to the Project Managers. The repository contains a basic structure with directories for source, documentation, images and sounds. Instructions on how to use the CVS repository can be found below.
Even though you are provided with a functioning minimal game, we expect you to improve that game and not use existing graphics/levels etc. Improvements should be made to almost all parts of the game. Each group should at least improve the following parts of the game:
- Graphics, Level and plot design (new levels and some clever plot/story as well as your own graphics)
- AI, Physics, Character interaction with "the world"
- Voluntary: Multiplay over network
- Voluntary: Sound/Music
although the game code-base you are provided with is a typical Mario-brothers-like side-scolling game, you are encouraged to improvise. Just remember, it is easy to over-do it.
You are required to include:
- A proper build.xml
- The project must have a build.xml with the target jar that will compile the code and make the jar containing everything (also main-class). The jar file should be possible to start with java -jar youjarfile.jar. The build.xml should work by typing ant jar.
- In-game Help.
- The game must have an in-game help system describing the key-mappings and function keys etc.
Tools: Instructions and Resources
CVS and TortoiseCVS
- IT-department's guide to CVS
- The CVS homepage
- TortoiseCVS user guide and FAQ, a windows CVS frontend integrated into explorer, very nice.
- Access your group repository with pserver as descibed in the cvs guide
Make sure you read about CVS and Binary files! This is important!.
- Accessing your repository
- set CVSROOT to :pserver:spel07_NN@cvs.srv.it.uu.se:/spel07_NN, you will be asked to enter password.
- or set CVSROOT to :pserver:spel07_NN:email@example.com:/spel07_NN (not recommended)
- The module you want to checkout is named game
- Ant from apache: ANT main page
- ANT tutorials can be found here: Tutorial 1, more...
- You can also find a lot more information on google.
- A simple example with HelloWorld and a build file
- A simple ant jar example, with java code that loads an image from within a jarfile and shows it in a window
- A simple yet powerful paint program called Paint.NET (freeware).
- It will be available in the PC-LAB.
- If you would like to download it you can find it here: Paint.NET
- Inkscape, a free vector graphics editor.
- Go to Inkscape download page
- Netbeans a free IDE for Java (installed in PC-labs)
- Eclipse a free IDE for java.