Il mondo non ha bisogno di dogmi; ha bisogno di libera ricerca. (Bertrand Russell)
Slugs
a Worms inspired 3d videogame
Slugs was developed in 2008 as university project for "Interactive virtual environments and videogames"
with my friends Angelo Cafaro and Giannicola Scarpa.
We used OGRE 3D and the PhysX library (before Nvidia acquired it from Ageia - it was cutting edge stuff!),
through the NxOgre binding.
It was probably the university project I spent more time on, but also the most fun.
We worked in all day programming sessions at the university,
XP style, and when we couldn't meet we gave each other tasks and synced on SVN.
The last day before presenting the game (after months of part time work),
we left University around 22.30 p.m, after a long and effective bug-fixing day.
Our friend Mara helped us proving the hilarious voices for the characters, and after that two other awesome friends of mine
recorded additional voice packs, including an english one
(Silvia and Alessia, to whom I publicly apologize for not having published yet the game including their work).
Due to time constraints, the game has no AI, one single level, just two weapons (bazooka and grenade)
and only supports two players for a turn based VS battle done sitting at the same system.
Unfortunately, a bug (related to the OpenAL library) that came up after we "finished" working on the game causes a crash on startup
on many systems (about one every three), that is the main reason we never published the game.
We told each other "hey, we'll fix it next week and then put it online", and, you know, years passed.
But maybe next week I'll fix it and put it online.
More seriously, I'd like to work on it for a month (maybe a couple of months) and:
making it compile after updating Ogre and all the libraries (and maybe getting rid of OpenAL in favor of something else)
do some refactoring, allowing everybody to add other levels (basically: height map + dynamic objects positions, nothing fancy)
add at least another 3-4 weapons needed to have a more various gameplay
support up to 4 teams and add a match configuration menu
add multiplayer (it's a turn based game, so it shouldn't be THAT hard, no strict latency problems)
put it online, including source code (if Giannicola and Angelo agree, of course)
So, if you'd like to play the game and have a spare month or two to donate, let me know.
Some screenshots:
a view from the bird view camera, to evaluate the environment. Game running in 1280x720 resolution, a little scaled down.
a view from the first person camera, useful for better aiming. Game running at 800x600
A list of features:
slugs characters are composed by three physx-enabled bodies connected by joints
slugs get damage from explosions and collisions with the enviroment. Also, they can die by drowning into water.
turn based gameplay, worms-style
the UI shows (placing items appropriately according to the current screen resolution)
the available time for the current turn
global health bar of the teams
currently selected weapon
a map of the level marking slugs positions and the orientation of the currently selected slug
billboards for character names and health bars
sophisticated camera behavior
before shooting, you can switch anytime between a first person camera (for aiming) and a bird-view camera useful to locate enemies and select the active character
after shooting, the camera follows the action (missiles or bomb positions, enemies flying away after explosions)
missiles and bombs are physx objects thrown with appropriate direction and speed according to user input
missiles explode on first collision
bombs bounce around the level and explode when the fuse burns down
particle effects for smoke, explosions, and water splashes
level built out of many elements
terrain island static geometry built from a heightmap
a skybox and a quad make up sky and water, with proper shaders applied
physx enabled objects are integrated (breakable wall, rolling rocks, bridge, rippable cloth with "Slugs" written on)
funny music and sound effects (found online)
slugs have lots of dialogue (recorded by us), played appropriately according to gameplay, for example