Real Time Strategy Game to learn History (TuxHistory)



About Me



My Name is Jesus Manuel Mager Hois, computer science student at the UNAM (National Autonomous University of Mexico). I am Tux4Kids contributor since 2008, successful gsoc student (factoroids activity) in 2008 and hobby game programmer. I have been involved in programming since I was twelve years old and have experience programming graphic applications and games since Mode 13h, ModeX, with Allegro library and at present with SDL. In IRC I use jmagerh nick.



I use C on a regular basis, mainly GNU C. Other languages I use are C++, Python, Lua and php and experience with Git, SDL, gettext and autotools. For my work I use GNU/Linux on a Ubuntu distribution. Since I joined tux4kids I got a lot of experience in game developing and team coding. So it would be a great step forward contribute with a new game to this great project: Tux4Kids!



Background



Educational games in the free software world are very important. In many places, proprietary software isn't accessible for the big majority of the population. The high cost of the software is a problem, and free software must be a alternative in this area.

As far as I know, there is no history game alternative in the Free Software world. This is a big problem that we need to solve.



The game


The idea is make a strategy game that uses the real time strategy mode like Age of Empire (all in 2d), but should be focused on a economic, cultural, military and science development of the different civilizations. Establish some civilizations and ages of development of each civilization. Each new age will provide to the culture new building, technology and units, advantages. The players must recreate the history of
each civilization playing like the big ones: Alexander the Grate, the Roman Empire, the Maya or Aztek culture, etc... Of course the idea here is that we provide some campaigns, but the community should write new ones, recreating the history of each country, culture, etc... Imagine: a Nepal teacher want to teach the history of his country, but no software is available for this, so he can create a camping special
for his students. The best of this campaigns can be included in the default package.

The plan



Use the existing work of Tux4Kids: I plan to use the building system, the main menu functions, internationalization, and sound / graphics loading.

The game need also write the “Isometric game” functions that the game need to Draw, and interact with the player. Then a a calculation system using the game rules on the object collection and the map grid. The map, with the different elements and of course a map representation system will be a XML file. The campaign file should be a tar file with a basic basic description XML file of the campaign, the map files, and the game logic, extensible with LUA[1] scripting. The XML files will be easy to parse with Mini-XML[2].
Finally the game needs a basic AI engine, this can be written in a extensible module, using lua to handle the main functions. In the future the game will need a map editor, a campaign editor, and a network mode. This will be not included in the project for this summer because of time.

I know that write a new game for a SoC project is a risky matter, but I'm sure it is possible. A big way is already done with the existing infrastructure, so I need only work on the internals of the game. Of course some important features will not be a goal at the end of the summer (visual map designer, a complete AI, etc...) and some other will need still work, but the main body of the game can be completed! I also want to reuse some code from other GPL or compatible games to improve time of
development[3][4] And, as you know I'm a regular contributor to TuxMath so you can be sure I will maintain the game.



Goals



Timeline



April 30 – May 23: This is the pre-summer period, so I can draw the basic sprites for the game. I mean, terrain, animals, buildings and unit images. I also will search the web to find some GPL compatible art work in other games that I can use.

May 24 – May 26: Set up the git repository, cloning the tuxmath source, removing the tuxmath specific files, and adding the needed libraries to the autotools files.

May 26 – June 20: Write the isometric game representation in data structures, draw functions, and interactions with the end user.

June 20 – June 30: Create the XML file loaders to load the maps and the campaign files.

July 1 – 25 July: Write the game logic internals and create their interfaces for the LUA scripting.

July 25 – 9 August: Add the needed GUI interfaces to the game.



References


[1] http://www.lua.org
[2] http://www.minixml.org/
[3] http://www.wesnoth.org/
[4] http://www.freecol.org/




Free software is a very important pice in the education for the world. TuxHistory aims to cover a important lack. Free Software doesn't have a history learning game! The idea is make a strategy game that uses the real time strategy mode like Age of Empire (all in 2d), but should be focused on a economic, cultural, military and science development of the different civilizations.