GSoC/GCI Archive
Google Summer of Code 2012

Hedgewars Project

Web Page:

Mailing List:

Hedgewars is a turn based strategy, artillery, action and comedy game, featuring "the antics of pink hedgehogs with attitude" as they battle from the pits of hell to the depths of space. Each player controls a team of several hedgehogs. During the course of the game, players take turns with one of their hedgehogs. They then use whatever tools and weapons are available to attack and kill the opponents' hedgehogs, thereby winning the game. Hedgehogs may move around the terrain in a variety of ways, normally by walking and jumping but also by using particular tools such as the "Rope" or "Parachute", to move to otherwise inaccessible areas. Each turn is time-limited to ensure that players do not hold up the game with excessive thinking or moving.

Hedgewars features a variety of different programming languages: with portability in mind: QT and SDL, two of the most used crossplatform are the only dependencies. The main interface is written in C++ and QT and is used for configuring your team and the game option as well as for starting the game. The engine is written in Freepascal, a very compatible Pascal variant, with SDL used for handling the GL context. The server for local LAN and multiplayer is written in Haskell, a very popular functional language. Then each mobile port has its own frontend written in the device native language (ObjC on iOS and Java on Android). An optional dependency is Lua that allows users to write their own missions and game modes, so that the Hedgewars community can get more and more involved in the gameplay development.

As said, portability is an important asset for Hedgewars as this game is available for Linux, Windows, Mac OS X on x86, x86_64, PowerPC and ARM, and we are always looking forward to new ports. Hedgewas has been featured twice on Ubuntu Features list (for the 10.04 LTS and 10.10 release [1]) and it has been highlighted in the Top Free applications for the Mac Appstore launch [2]. The development team has always been focused on OSS events and has successfully took part in GSoC 2011 and GCI 2011.



  • Mission: Training Campaign and campaign interface The project would imply creating a (training) campaign from scratch, something the game currently is lacking. The creation of these missions would be realized via a helping script that simplifies the process. I also propose creating an interface that would help/make possible the making of interconnected missions.
  • Netplay for Hedgeroid My proposed project is to add online play to Hedgeroid, the Android port of Hedgewars. In order to avoid duplication of work, the network connection and protocol implementation will be written as a C/C++ library that can be used on all platforms relevant for the game. Additionally, the editors for game and weapon schemes will be added to the Android port to bring it closer to feature parity with the PC version.
  • Port Hedgewars to web browsers using WebGL Rewrite the game using javascript and WebGL to make it run in web browsers.
  • Video output tool The idea is to add to Hedgewars ability to export demos to standard video format. This will make it easier to share replays with other players.