Developing a Jump'n'Run Puzzle Game

Semester:
WS 2011
Type:
Pro-Practical
Lecturer:
Credits:
Links:
Campus , Results
Contact:
mingli@informatik.rwth-aachen.de
Course Dates:
Type
Date
Room
PreMeeting 27th Jul 2011, 15:00 - 16:00 6317
Kick-off Meeting 12th Oct 2011, 14:00 - 17:00 6317
MS1 End 16th Nov 2011, 12:00 - 14:00 6317
MS2 End 19th Dec 2011, 12:00 - 14:00 6317
MS3 End & Preliminary Release 25th Jan 2012, 12:00 - 14:00 6317
Final Release 10th Feb 2012, 23:59 (via Git)
Presentation, Video & Report Submission 11th Apr 2012, 14:00 6317

In this practical course, you will implement a Jump'n'Run Puzzle game based on the concept of Continuity, which combines the ideas of a conventional sliding tile puzzle with a Jump'n'Run style game. We extend this concept by embedding several Continuity levels on a simple base geometry which are connected along common edges (cf. Cogs). The game will be rendered in 3D and the player controls the game in 2D, which follows the concept of Jump'n'Run, but gives much better visual effects (cf. Lemmings Revolution or Rebirth).

Upon to your choice, the game could be a single/multiplayer game for PC/iOS platform. Participants will work in 2 teams, each has 6-7 members. Within each team, there will be subteams concentrating on the game engine or the content creation. Although the students can focus on a smaller problem, they have to ensure that their parts fit into the whole framework of the game. Therefore, the intercommunication between the groups is of a very high priority in order to define precise interfaces and common data structures.

Basically, students will learn to organize themselves as part of a bigger project. Depending on the topic of the group, students will learn to implement a specific part of a game.

  • Game Engine:

For a high visual quality of the game, students will have to implement several shaders in a deferred rendering pipeline that is based on OpenGL. This includes effects like particle systems, complex materials (e.g. relief mapping) and post processing effects (e.g. glow, deferred lighting, motion blur, depth of field). To interact with the game world, students will need to do the physics simulation, like gravity. The player itself will also be part of the physics simulation where its movement is restricted by the static world geometry. Students should also handle the event trigger, like picking a key to the exit.

  • Content Creation:

Students will have to implement a small level editor (based on the Qt framework) that allows for the creation of the game world. Since this kind of modeling should be done on a very high abstraction level, single instances of geometry will have to be created with common tools like blender or 3dsmax. Furthermore, the group has to create the textures for the geometry, which can be done with tools like gimp or photoshop.


Software Engineering

The course will teach the participants how to develop a complex project using software engineering techniques.

  • Application Specification:

    In our scenario, the supervisors will provide a description for each part of the project. The students have to understand it and clarify any questions in the first stage of the project.

  • Software Design:

    The students have to create rough class diagrams that describe the data structures and the internal relationships of their application. The team has to organize itself and it has to set the responsibilities for the different components of the software. In this stage, any common interfaces and data structures with other groups have to be defined.

  • Coding:

    Each group has to implement their specific topic. Most of the work can be done independently of other groups as long as the interfaces and data structures do not change. If any changes are necessary for a single group, it has to make an appointment with the other groups to clarify the changes as fast as possible.

  • Testing:

    The students will have to test their application with artificial data as long as it is not integrated into the full framework. However, in order to ensure the quality of the product, the supervisors will also test the application from time to time and therefore the program has to run on a specific target computer that is provided by our chair.

  • Integration:

    After each milestone, the groups will have to integrate the single parts in order to present the full game in regular time intervals.

  • Report:

    During the course, the students should make some notes on problems, difficulties and solutions which they have chosen. At the end of the course, they have to hand in a very small report including the mentioned aspects.

Disclaimer Home Visual Computing institute RWTH Aachen University