Colobot

Video games portal
Robotics portal

Colobot (Colonize with Bots) is an educational real-time strategy video game featuring 3D graphics. The objective of the game is to find a planet for colonization by the human race by establishing basic a infrastructure on the surface and eliminating any alien life forms endangering the expedition. The game takes place on the Earth, Moon, and 7 fictional planets. The main feature of the game which makes it educational is the ability of the player to program his robots using a programming language similar to C++ or Java.

The game has been recommended by the Polish Ministry of National Education as a teaching aid in learning of basic algorithms and object-oriented programming.[1]

Contents

Plot overview

Life on earth is threatened by a devastating cataclysm. Mankind has to move out and search for a new home. A first expedition of only robots was sent to find another habitable planet. For reasons yet unknown, the mission was a disaster and was never to return.

With only a few robots for companions, the player must travel to planets unknown. Houston, Earth Mission Control as well as a spy satellite will transmit valuable information to the player. The player needs to build the infrastructure necessary to gather raw materials and energy supplies. You'll need to produce the weapons necessary to defend yourself. By programming your robots, you can delegate certain tasks to them, allowing you to continue your mission while your robots upkeep the base, fight off enemies, and harvest materials.

Language overview

The programming language used in Colobot is C-BOT, syntactically similar to Java. Example code for a bot to find a piece of titanium ore and deliver it to a purification facility:

extern void object::FetchTitanium()
{
	object item; // declare variable
 
	item = radar(TitaniumOre); // find a piece of titanium ore
	goto(item.position); // go to the ore
	grab(); // pick up whatever is in front of the robot (presumably the ore)
 
	item = radar(Converter); // find the ore converter
	goto(item.position); // relocate to the converter
	drop(); // drop the piece of ore
	move(-2.5); // back up 2.5 meters to allow the converter to start processing the ore
}

External links

References