Under construction
S. Cargo is an indy video game made in Melbourne, Australia. The game was developed over 5.5 years in the team's spare time (after work and school, and on weekends). The first prototype was made back in 2002 when Alex was at uni. It was a simple game, with an unnamed snail that could crawl up walls and on the ceiling - but it lacked a story, so it was shelved while we studied, worked and went gallivanting around the world.
In 2008 the prototype was improved: crawling was made more realistic, and powerups were added. Crawling around as a snail was great fun, so the team sat down to create a story to support the game play.
Finally, the game was finished in early 2014.
S. Cargo was created using Blender, the fantastic 3D modelling and animation tool. People use Blender to create awesome still images and short films. A little-known fact is that it also contains a game engine that allows you to bring your creations to life.
Blender games are created by adding logic (behaviours) to 3D objects. The logic can be seen in the screenshots above as the blocks and wires in the bottom half of the screen. Blender calls these logic bricks. They are instructions, like "When the user presses the up arrow, move the snail forward". Because S. Cargo is a complex game, extra behaviours were created using the Python programming language. For example, this is part of the code that makes Cargo stick to the walls and ceilings:
def orient(self): '''Adjust the orientation of the snail to match the nearest surface.''' # Use attitude object to apply root orientation. # Set property on object so it knows whether it's falling. This is used # to detect when to transition from S_FALLING to S_CRAWLING. self.touchedObject, self['nHit'] = self.attitude.apply() mat_rot = mathutils.Matrix.Rotation(self.bend_angle_fore, 3, 'Z') self.orient_segments(self.head_segments, mat_rot) mat_rot = mathutils.Matrix.Rotation(self.bend_angle_aft, 3, 'Z') self.orient_segments(self.tail_segments, mat_rot) self.armature.update()
Lots of custom logic was created in Python. In addition to code for sticking to the walls, there are functions for floating in water, power-ups, interactive conversations, and making the grass bend out of the way as Cargo crawls past.
Do you want to make your own game? You can do it if you try! A great way to start is by modifying other games. S. Cargo is open source, so you can learn how it works by looking in the assets directory.
The easiest way to get started is to modify some textures in assets/Textures/*.png. Just modify and save an image file in an editor such as The GIMP, and your changes will appear the next time you play the game. Try changing the colour of the snail or her shell!
If you want to dig deeper you can edit the 3D assets/*.blend files with Blender, and the assets/Scripts/*.py files with a regular text editor, like gedit on GNU+Linux or Notepad++ on Windows.
S. Cargo was mostly created by Alex Fraser. But it couldn't have been done without the hard work of these wonderful people:
This game uses code and assets from other projects - made possible by free culture and free software licences. The following people unwittingly* made great contributions to S. Cargo.
* Just joking - they knew what they were doing when they chose a free license.