Project Gallium is my dissertation project for my MSc. in Games Programming at University of Hull.
The aim of this project is to develop a soft blob engine and a puzzle game using that engine. The game also features a tilt sensor as the game controller. This project analyses various techniques to model soft bodies and focuses on a specific one which best suits the requirements of the project. One key requirement of the soft blob is the ability to merge and divide into multiple blobs during play. Other areas of focus are level designing techniques and the usage of a tilt sensor as a game controller.
The concept of this game is based on “Mercury”, which is a puzzle game on the PSP and Wii platforms. A soft blob object is controlled by the player and rolls around inside a 3D maze, trying to solve various puzzles. The player will control the motion of the blob by physically tilting the controller (tilt sensor on a hand-held device or the Wiimote).
More details can be found in my dissertation report (attached at the bottom).
Source code and executable are also available for download (attached at the bottom).
Source dependencies
To build the source code, please make sure you have the necessary files from GXBase and WinDDK (for wiimote support) added to your project.
For further details about building the source for wiimote support using WinDDK refer to "wiiYourself ReadMe.txt" in the source files
For sound, if you don't have OpenAL installed and you build and run the program make sure it has OpenAL32.dll in the folder
Game Controls
The game pauses for a few seconds at the start to check for any connected wiimotes, if there isn't one it will start with just keyboard support.
Note: You can look for a wiimote during gameplay by pressing 'R'
Wiimote Controls:
Use the wiimote to play the game. Hold the wiimote in the horizontal position with the strap end towards your right side
'RIGHT key' : decrease camera position z-value
'LEFT key' : increase camera position z-value
'UP key' : increase camera position x-value
'DOWN key' : decrease camera position x-value
'A button' : Zoom in
'B button' : Zoom out
'MINUS button': Quit
'1 button' : Continue to next level
=======================
Keyboard Controls
Use the keyboard arrow keys to play if the wiimote is not available. (Note: Keyboard keys are inverted)
Other keyboard commands:
=======================
'q' : Quit game
'x' : increase camera angle
'z' : decrease camera angle
'o' : increase camera height
'l' : decrease camera height
Admin commands:
'm' : Toggle between wireframe mode, flat shaded mode and gouraud shaded mode
'f' : Toggle fullscreen mode
'k' : Increase Metaballs threshold value
'i' : Decrease Metaballs threshold value
'r' : Connect wiimote if turned on while game is running
'g' : toggle metaball grid boundaries
'a' : toggle axes at origin