Download the source code
ou
Go to Github

Overview

TheManaMaster is a video game project in which we play as a character who must recover treasures and defeat monsters through several different cards, in order to reach the end of the dungeon. It is possible to collect different items: the purses allow to increase the player's score, the energy bubbles (blue circles) allow to open doors, and more...

The logic

The logic is such that:

  • If the character comes into contact with a closed door, he dies. On the contrary, if the door is open, it goes to the next level.
  • If the character is on an energy bubble (blue bubble) and a door is closed, then the door opens.

An intelligent AI system

At the level of artificial intelligence (AI) of monsters, we can assign different behaviors to them. Indeed, a monster A will move totally at random on the map, while a monster B will move along the same coordinate of the character's X or Y axis. At the same time, a monster C will move randomly on the map until the player is close enough. He will nevertheless try to find the player's position to trap him when he is within his "range".

We are talking about pathfinding.

Implementation

This game is a project realized with a friend, whose goal was to create a game based on an existing concept and "resources". The game was made in Java. First of all, it was necessary to create a design template in the form of a UML diagram, in order to represent the architecture of our application.

A Java project with Maven

TheManaMaster is a Java Maven project. Maven is a tool to organize and facilitate the production of Java software, by generating a basic software structure, in the form of different projects (main, contract, controller, model, view).

Data representation models

The realization of a conceptual data model (CDM), a logical data model (LDM) and a physical data model (PDM) according to the Merise Method were almost essential to the successful realization of the game database, in order to recover the data related to the game in the database, and this in a consistent way.

Load optimization

We logically realize the code in order to load only once the data in the database regarding the starting positions of the monsters, objects and the character. This data is stored in lists and tables for further processing. As a result, we only realize one call to the database and the game consumes fewer resources in general.

The Unit Tests

A Test Driven Development (TDD) methodology has been put in place to facilitate testing during development. Maven projects are designed to facilitate the implementation of unit tests. The use of the JUnit framework in this project allowed us to perform unit tests in order to test the program during its development.

A touch of creativity

A small bonus, theManaMaster has "2 graphic modes": a "normal" graphic mode and a "pokémon" graphic mode.

Notes

For the most curious, you can consult the code by downloading the source code of the game (link above). The game is in the form of a Maven Project (you can "import a Maven Project" from Eclipse or another Java Maven compatible IDE). Once the game is imported under Eclipse, you need to create, under Wamp, a new database called "themanamaster" and import the script "themanamaster (6).sql" which is located in the project archive. Once this is done, you can start the game.

The Mana Master