TunnelTanks 0.4

Well, I've been pretty consistently working on TunnelTanks over the last two weeks, and I've actually gotten quite a bit done. Here's a summary of the changes, adapted from the CHANGELOG file:

  • Switched from a custom python script for configuration to a CMake/CPack-based build/packaging system, which can build binary tar.bz2's, deb's, and rpm's.
  • Improved Twitch's self-preservation instincts. He is now smart enough to try to return home when he is low on energy/health. ('Try' being the operative word. He can get stuck on level details...)
  • All code is now managed by the Bazaar VCS.
  • Made it possible for there to be multiple level generators, and added 2 new ones: 'simple' and 'maze'. The original one is named 'toast'. Better name coming soon. :)
  • Added fullscreen capabilities. Just run tunneltanks with "--fullscreen" to start that way, or hit 'F10' at any point to toggle into fullscreen.
  • Added a means for an AI to query the surrounding level. Twitch makes very basic use of this functionality, but it'll be far more useful for more complex AIs.
  • With the '--large' CLA, you can have the level generators make even BIGGER maps. (1500x750 vs 1000x500, which is 2.25x more pixels!)
  • Improved command-line parsing. Just run with "--help" to see all the new options.
  • Many other bugfixes.

There's a lot of new stuff there, but my favorite is the ability to add new level generators. Here are some sample levels from the current set of built-in level generators:

This is a sample 'simple' maze:

Sample simple maze

This maze started out as a way to accurately mimic the level style of the original game, since the original game will generate a rock wall sort-of like this, and then sprinkle the outer border with random rock outcroppings. Sadly, all attempts to reasonably capture this style fell short, so I instead worked mostly on generating the rock border, so that the original game's "fight in the middle" mechanic could at least be preserved. Sadly, it'd be difficult to perfectly replicate the original game's level generator without the original game's source code, since it has lots of quirks that are unique to it...

The second maze generator is the 'maze' generator. This was probably the most fun level generator to work on. :)

Sample maze map

The maze generator uses a Randomized DFS maze-generator, or as it's called on http://www.astrolog.org/labyrnth/algrithm.htm, the "Recursive Backtracker." It's fast, it's effective, and I really like the mazes that it generates. And also, check that page out. That guy is a huge maze fan, and he really knows his maze generating techniques. Interesting read... :)

And of course, we still have the 'toast' generator.

Sample toast map

I only called that generator 'toast' since I couldn't think of a better name. If you have a better name, do feel free to tell me. :)

That's about it. I am now keeping info on the project, including instructions on how to clone the Bazaar repository at: http://www.poweredbytoast.com/tunneltanks

Since I changed to CMake, the build instructions have also changed to:

cmake . && make && ./tunneltanks

If you wish to install this project, you COULD do a 'make install', but it'd be far cooler to use the new packaging targets. For example, do a 'make package-deb' to make a deb file, that can be installed through your package manager. (You can also do 'make package-tbz2' for binary tarballs, or 'make package-rpm' for an rpm file.)

Source: http://www.poweredbytoast.com/files/tunneltanks-0.4.tar.bz2 (GPLv3)

Enjoy! ;)


3 Responses to TunnelTanks 0.4

  1. 1019 Martin Tóth 2011-04-02 03:46:30

    Hey!

    I'm trying to compile this on OS X 10.5.8 (with MacPorts cmake), this is what I get:
    Linking C executable tunneltanks
    Undefined symbols:
    "_main", referenced from:
    start in crt1.10.5.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    make[2]: *** [tunneltanks] Error 1
    make[1]: *** [CMakeFiles/tunneltanks.dir/all] Error 2
    make: *** [all] Error 2

    Any ideas what may be wrong? :)

  2. 1020 ray 2011-04-02 15:24:28

    According to this page, it seems that SDL does some macro trickery that I was completely unaware of... and that trickery can get bugged out on the Mac. Looks like what you should do is get SDL-devel-1.2.14-extras.dmg from the SDL website, and pray for the best.

    I can only wish you the best of luck, though. I'm pretty horrible with MacOS... :P

  3. 1021 Martin Tóth 2011-04-08 09:03:47

    Thanks for the tip.

    I'm not that great with Mac OS either, so make is still giving me the same error. Too bad, I loved the original tunneler, I was hoping I can try this one out :)

    Good luck developing.

Leave a Reply



About

User