Soulcage was a really big project, together with a group of four people; we designed and implemented a full 3D action-adventure videogame with a complete playable level. Every model, environment, puzzle or menu that appears in the game was built from scratch. Project took about 8 months to completion and it was the final assignment for a Master Degree in Videogames Design and Programming. It was a real success in terms of quality and timing.
It was a huge project and we were just four people working on it, we tried dividing the work as much as possible but everybody had to work in multiple fields to take the project to completion. I was involved in the game design, enemies design, character animation, intro design, user interface (HUD) design and I also helped studying various technologies for the terrain implementation while designing the main level.
For a detailed explanation on game story and intro implementation, check the other project in the list, The Soulcage Intro Project.
The first idea was implementing a complete new engine for the game. We spend really long time designing and developing the new OpenGL-based engine using what we had learned in the Masterís Degree but after a couple of months and some strength tests, we realized that it was not the path to follow. At that point, we sit down and decided to use some engine. In class we had studied in detail several open source engines and finally we chose OGRE 3D as the best option. It is a very interesting rendering engine and it provides a solid framework to focus our efforts in design rather than programming.
Other libraries we used were FMOD for the sound system; OIS for input/output management; LUA for AI scripting and TINYXML for interface (HUD) implementation and management.
Level Design and Implementation
One of my tasks was designing the main level and checking how to implement it. The first approximation was using a height map. We had studied this technique in class and it looks quite interesting; so I designed the map in that way.
It was a disaster. The map was ok but when applying the textures, the results on the numerous cliffs were horrible. I did several tests but finally we decided the best option was modelling all the level by parts; we were worried about the polygon number it could suppose but finally we saw that Ogre could handle it perfectly.
Here it is some early concept art for the tower, the main level first designs and the final results.
Character Animations and Enemies Design
Another task I took care was the animations for Bara, our main character; I also designed and animated roughly some enemies.
All the modelling and animation was done using Softimage XSI and it was a real nightmare uploading the animations from XSI to Ogre. We found several problems with the predefined skeletons XSI provided when exporting and the final results were not as good as expected. A total of seven animations were finally implemented for Bara but more than fifteen were designed, including some combos with the sword and knife.
The animations implemented were: IDLE, WALK, RUN, JUMP, DRAW, ATTACK and DIE.
Four basic enemies were designed (LIME, BAT, GHOST and SPIDER) but finally only two of them could be implemented in the game, the LIME and the GHOST. The giant SPIDER should appear as a mid monster in the small square just before the stairs to the tower but time and resources were limited and it could not be finished on time.
User Interface (HUD) Design
The user interface was another part I took care. I designed the HUD following the latest tendencies, trying to simplify it to the maximum but keeping it user friendly and showing all the information the player needs to know in every moment. I also implemented all the art for it.
The HUD consist of two bars in the top left corner showing shield and sword energy, a minimap to show playerís position and additional bars for enemyís life. Screen remained empty all the time and just when focusing to an enemy, its life bar appears; when draw our sword, our bars also appear; if speaking with some enemy conversational menus appear. The idea was making the game as simple as possible in terms of information the player should worry about; just show the strictly necessary info and let the player focus on the story we were telling.
There was too an items menu but it also was very simplified, allowing the player just to carry a very limited number of items (including swords and shields). The main reason for those decisions was that we didnít want the player spend too much time sailing through long and never-finishing menus with lot of data and options. We wanted to keep it as simple as possible and just focus on the story.
Main title, team logo and some other HUD elements were also implemented.