0% found this document useful (0 votes)
407 views

C++ Project: Bomberman

The document outlines a C++ Bomberman video game project. The mandatory objectives are to code a 3D version of Bomberman with at least 3 levels that can be completed, saved, and loaded. Technical requirements include using OpenGL and making the gameplay feel like the original 2D Bomberman while using 3D graphics. Extra emphasis is placed on polishing the game and avoiding bugs or glitches. Team management is important as different roles like programming, art, and design are needed. Bonus objectives include documentation, additional levels, and cutscenes. Peer evaluation will be used to review projects.

Uploaded by

Tsepo Shata
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
407 views

C++ Project: Bomberman

The document outlines a C++ Bomberman video game project. The mandatory objectives are to code a 3D version of Bomberman with at least 3 levels that can be completed, saved, and loaded. Technical requirements include using OpenGL and making the gameplay feel like the original 2D Bomberman while using 3D graphics. Extra emphasis is placed on polishing the game and avoiding bugs or glitches. Team management is important as different roles like programming, art, and design are needed. Bonus objectives include documentation, additional levels, and cutscenes. Peer evaluation will be used to review projects.

Uploaded by

Tsepo Shata
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

C++ Project

Bomberman

Thor [email protected]

Abstract: Bomberman is one of the most famous video games ever. With more that 70
adaptations, from the first version on MSX, ZX Spectrum and Sharp MZ-700 in 1983 to
the last versions available on the PlayStation Network, WiiWare and the Xbox Live
Arcade commercialized in 2010. More than 10 millions units have been sold.
Contents
I Introduction 2

II Objectives 3

III Generic instructions 4

IV Mandatory part 5
IV.1 Generalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
IV.2 Technical aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
IV.3 Polishing and attention to details . . . . . . . . . . . . . . . . . . . . 6
IV.4 Team management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

V Bonus part 8

VI Turn in and peer-evaluation 9

1
Chapter I

Introduction

Everybody loves playing Bomberman. Good news. The goal of this projet is to create a
full implementation of a 3D Bomberman video game.

• An overview of existing Bomberman games for inspiration: http://www.uvlist.


net/groups/info/bomberman.
• An online version of Bomberman for. . . You know. . . science !

2
Chapter II

Objectives

There are several distinct objectives in this project.

• Beeing able to produce a full video game, not just a pedagogical projet. This means,
that the final produt should be usable by tiers, not just the students group who
wrote it. One should not think "this is some early access crap" when playing your
game.
• Learning the low level use of OpenGL without the help of modern game engines, and
why not start your own (tiny) little one ?
• Learning team work on a full scale project. Everybody can’t work on everything,
so it’s an excellent opportunity to discover that communication, management and
documentation are keys to success.

3
Chapter III

Generic instructions

• This project must be in C++.


• You are free to use any compiler you like.
• Your code must compile with: -Wall -Wextra -Werror.
• You are free to use any C++ version you like.
• You must use the last available version of OpenGL for anything related to graphics.
• You are free to use any additionnal library you like, but NOT full game engines
like Ogre for instance.
• You must provide a Makefile with the usual rules.
• Any class that declares at least one attribute must be written in canonical form. In-
heriting from a class that declares attributes does not count as declaring attributes.
Exceptions don’t have to be canonical.
• It’s forbidden to implement any function in a header file, except for templates and
the virtual destructor of a base class.
• The “keyword” "using namespace" is forbidden.
• You MUST NOT push any library that you did not write yourself on your repos-
itory ! Doing so equals zero at the defense. For instance, if you use OpenGL (orly?),
you MUST NOT push OpenGL and/or its sources on your repository. Same for Boost
or anything else. To ensure that you will be able to compile your work during the
defense, you must provide a script or run a tool to set up your environment, and
download and install your dependencies if needed. You should have a look at CMake
for instance, or any other tool you like, or do that work yourself. Please read this
part again, we won’t accept complaints after a failed defense because you were not
able to compile your work on a fresh session, whatever the version of the dump.

4
Chapter IV

Mandatory part

IV.1 Generalities
So, here we are. You must code a 3D version of Bomberman, functional, and complete
with graphics, animations and levels. Your version being a solo game, we expect at least:

• The player can acces a main menu allowing him to start a new game, load a save,
adjust game settings and exit the game.
• In game, the feeling, pace and difficulty must be as close as possible from the original
game.
• To beat the game, the player must win at least 3 different levels. It’s up to you to
code a longer game, but 3 levels is the minimum acceptable.
• If the player looses, the game must state it clearly and behave like a game should,
like restarting the current level, or issuing a game over for instance. Likewise, if
the player beats the game, it must also be stated clearly and offer a reasonable
behaviour like displaying credits and getting back to the main menu.
• Sounds ! Musics ! A silent video game is a crappy one ! The main menu and the 3
levels must have their own music. Also, every relevant events must trigger a sound,
like a bomb exploding, picking up a power up, killing an ennemi, dying, etc.

5
C++ Project Bomberman

IV.2 Technical aspects


• Your game MUST use the last version of OpenGL for anything related to graphics.
• The visual assets must be 3D, but the gameplay must stay 2D like the original
game. For instance, if the player dies, the camera may shift its angle and spin
around him while the death animation plays, or at the beginning of a level, the
camera may fly around the level before focusing above the player. A good exemple
of a 3D game with a 2D gameplay might be Mario Wii.
• Free animated 3D models of a bomberman and its ennemies might be hard to find
online. As a consequence, you can skin your game as you wish and use any animated
3D model you like. The gameplay and visual feeling must be a Bomberman at first
sight, but the actual models and textures can be anything.
• As stated in the previous section, your main menu must allow to customize the
game settings. It must be possible to customize at least:

◦ The screen resolution


◦ Windowed or full screen mode
◦ Key bindings
◦ Music and sounds volumes

• The game must offer a way to save the player’s progression and restore it on demand.
It could be a regular save system or a campain mecanic. As long as the feature
is present, it’s up to you to integrate it in your game. Anyway, This persitance
MUST remain even if the game is exited completly and executed again.

IV.3 Polishing and attention to details


As stated in the objectives section of this document, the goal of this project is not only
to use OpenGL to code a video game, but it’s also to code a full finished video game. This
means that the efforts you make to polish your game will count as much as the techni-
cal aspect during your defense. Do your best to avoid clunky animations or graphical
glitches, manage your camera in a way that the “outside” of the game is never visible,
pay attention to game design, level design and sound design, add variations in ennemies
and environnements, etc.

A game that respects the technical and gameplay requirements but shows no effort in
polishing won’t result in a good grade. This project is about actually finishing a credible
product, not toying with OpenGL.

6
C++ Project Bomberman

IV.4 Team management


Bomberman could prove to be a difficult project for unprepared and/or cocky teams. Do
not jump in your code as soon as you are done reading this document. Take time to
organize your team and your work.

There are very different aspects in this project, and it’s not a good idea to try to
let every member of the team work on everything. Assign roles, communicate, plannify
progression, communicate, design clean APIs, communicate, document your code, com-
municate, use GiT branches, communicate, and of course, don’t forget to communicate.

7
Chapter V

Bonus part

Once you’re done with the mendatory part and sure you’ll get the maximum grade for it,
consider doing the following bonuses (sorted in order of relevance, from the most relevant
to the less relevant):

• Accurate classes diagram


• Full code documentation
• Stand alone game installer for OSX
• Intro, cut scenes and outro to give your game some sort of plot
• More than 3 levels
• Random layout of the levels

You can add some bonuses of your own creation if you like, but most of the bonus
points will be reserved for the above bonuses.

Exceptionnaly, any kind of multiplayer won’t be rewarded as a bonus in this project,


so don’t invest time on it, your game is a solo game. Another large scale video game
project will cover multiplayer in its entierty.

8
Chapter VI

Turn in and peer-evaluation

Large projects using graphical and sound assets tends to be huge in terms of storage.
As a consequence, you MUST NOT push any graphical and sound assets on your GiT
repositoy. You will be allowed to fetch them at the begining of your defenses. It is a very
good idea to consider your assets like dependancies, exactly like libraries, testing their
presence and acquiring them likewise.

During the defense, the grader will focus on the “finished product” vibe your game
has. Technical skills are important, but being able to fully finish a product is as much
important.

You might also like