Final screenshot

Mutable Mamba

Mambas are feared among their habitats. A team entry by members of CTPUG.


The darcside
Presented by davidfraser

Give this entry an award


Ratings (show detail)

Overall: 4.0
Fun: 3.9
Production: 4.3
Innovation: 3.8

Respondents: 22


File Uploader Date
Mutable Mamba 0.1 - Windows Installer
hodgestar 2011/09/18 18:14
Mutable Mamba 0.1 - Windows ZIP
hodgestar 2011/09/18 18:09
Final screenshot
stefanor 2011/09/18 00:15
Mutable Mamba 0.1 - Mac OS X
jerith 2011/09/18 00:09
Mutable Mamba 0.1 - Unix Tarball
hodgestar 2011/09/18 00:02
Mutable Mamba 0.1 - Debian Package
stefanor 2011/09/18 00:01
hodgestar 2011/09/16 23:28
drnlm 2011/09/16 07:16
A new level showcasing the day's progress.
hodgestar 2011/09/14 23:39
Level editor is usable
stefanor 2011/09/13 23:41
The snake can turn corners
drnlm 2011/09/12 23:11
The Dev test level with the placeholder snake
drnlm 2011/09/11 20:41
Not yet a level editor
drnlm 2011/09/11 20:40

Diary Entries

Day 1 - We have an idea

Despite a somewhat late start, we settled on a game idea really quickly.

The idea is sheer elegance in it's simplicity. Start with the classic snakes game, and rejig it with a bunch of mutation which change the behaviour and abilities of the snake. Hopefully, we will be able to get a reasonably working engine fairly quickly, which will allow us to have adequate time to create levels while polishing the engine.

So far, 128 commits into the project, progress has been reasonably good.
  • We can display levels, although we're a little short of actual levels
  • We have a bunch of framework code in place for future features like sound
  • We have several useful widgets for the gui
  • We have a lot of funky logic for handling focus correctly with our widgets
  • We have a good start on the art
  • We are part way to having a level editor
  • We sort of have a snake, although it currently moves in a very special way, and collisions are still outstanding.
  • We've debugged our mercurial repo setup, and it now works as expected

The next couple of days don't look that promising, since we'll all be fairly busy with real life [1], but with luck, we'll have the basic game playable around by Wednesday [2].

[1] An annoying unavoidable distraction
[2] And, if we're really lucky, we'll still have the basic game playable by Friday

Add a comment

Day 2 - the real life, it hates us

So a much less productive day, what with the annoying work thing, and various other commitments eating up most of the evening hacking time for several team members, but, despite all this, progress continued it's relentless march,
  • In a desperate bid to throughly annoy everyone on the team, the central mercurial repository grew pep8 & pyflakes checking hooks. Surprisingly little disruption and cursing was observed as a result. Must try harder in future.
  • The snake learnt to take corners, and generally moves much less specially, although it still has some endearing quirks
  • Several bits of game framework plumbing that will become useful later appeared

1 comment

Tri-state logic is the mamba's natural habitat

Although progress is still slow (nobody has much time this week), we managed quite a bit more today than yesterday.
  • The snake now has had plastic surgery getting a nice segmented body with a head and tail. It still has endearing quirks to it's movement: After a good hour's head-scratching crawling lessons, it can move smoothly in some directions. Earlier this evening, it loved climbing the screen a little too much. Then, decapitated itself if you went down-screen. But while I was writing this entry, it appears to have been tamed.
  • We have "locked" level button widgets for a "levels" screen
  • And we spent way too much (> 0) time fighting and debugging the pyflakes + pep8 commit hooks.
  • The start and end points are pretty arrows, rather than confusing stars
  • We have rats (or are they mice?), and frogs.
  • The level editor is coming together, and can now paint pretty levels. I predict the arrivals of new levels tomorrow.

Add a comment

Mutating mutators

Today saw the game becoming playable, which had a delightfully predictable impact on productivity while we all played it instead of writing it.

My morning started with a pull of the repo revealing hodgestar's delightful commit 177: "Snake that moves (my god that was an epic struggle)." That paved the way for slacking off at work and adding support for the snake and its environment to affect each other. By mid-afternoon, we could be painted in an exciting variety of colours and eat frogs to learn how to breathe underwater.

Knocking-off time arrived then, and we mostly congregated at our Designated Wednesday Work Area to get in some quality yelling and gesticulating about whether we needed a more complex level format. drnlm couldn't make it (some weak excuse about a broken car or something), but he alternated between working on the level editor and posting snide comments in IRC. (We won't mention the time he spent adding various team members on Google+ instead of coding.)

Just as our enthusiasm was starting to flag in the face of adversity and starvation, the nice delivery person brought us Asian food. (One day we'll write a game about eating insufficiently sticky rice with chopsticks.) We spent supper time discussing more mutators and things to add, and dumped a huge load of fresh art generation work on confluence, who has been keeping up admirably.

By this time, tumbleweed had finished faffing about with widget focus and the like and dove into making some animations animate. (I celebrated this by almost immediately breaking the code that closed the snake's mouth after eating, but that was fixed before the jaw became permanently dislocated.

While we were all engaged with the above, Resprove (our newest team member) quietly built a sadistic level using all the mutators available to him so far:

(His level was a bit different from this and was rather harder to complete. On the other hand, it was a decent demonstration of how fun the game is to play. I think we have a winner here.)

There was some more stuff that happened after this, but that shall have to remain mysterious for now. If I don't wrap up this diary entry now, my laptop shall fall on my face and damage something important and nobody wants that.

Edit: Whoops, I forgot teleporters. Teleporters are made out of win, pixels and really subtle bugs.They'll add an interesting perspective to future levels.

Add a comment

Day 5 - Late diary entry is late

Another slow day, but with some useful progress
  • Some sounds were added to the game, although more are needed
  • We replaced several placeholder graphics
  • Added a new maze level
  • The level editor grew a number of features. It can now load or create new levels, and, after some nagging, learnt about hotkeys.
  • The level editor became a lot more robust in the face of unexpected level files, and now requires some effort to crash
  • Several bits of out widget stack got fixed and improved
We have some quirks with how the snake reacts to keyboard input to tweak, and some of the debugging features need to be removed, but other than that, we just need to produce more levels to have a game.

Add a comment


Today we made a lot of levels and played them.  New levels include: a paint training level, a fire and water level, a small edible squeaky creature buffet level, an arrow-flipping level, a patriotic Doom level, a series of tubes level, a woot level and a peace level.  We sometimes even managed to complete levels we had written ourselves.

The level menu looks much nicer now -- there's a grid layout, all the levels have autogenerated thumbnails and the arrow keys actually do what you would expect them to do.  We removed level locking, which for the moment seemed like an unnecessary complication.

We tweaked some tiles, making the floor less eye-bleedingly hideous and the fire more right-way-up.  Movement was improved.  There is a generic eating sound, and a crash -- or rather splat -- for running into things you're not supposed to run into.

jerith heroically searched the intertubes for appropriately licensed music, most of which we immediately discarded for various frivolous reasons of personal taste, or because we recognised it from other indie games we had recently played.

drnlm has contracted some kind of horrible ailment and we haven't seen him in days, but he nevertheless managed to add button and gate sprites and various epic improvements to the level editor like the ability to edit sprites (useful for tunnels and gates/buttons).

We've set up a server which can be used to exchange levels.  I wrote a silly helper script which prints a list of possible partitions of the level area.  We also created a lengthy TODO document.

1 comment

Mutable Mamba!

We made it!
In Mutable Mamba our intrepid hero, the ever-changing mamba, overcomes a host of obstacles to find fame and success!

The game is simple, but addictive -- as evidenced by the development time lost to playing the game and making increasingly difficult levels. Proof that the later levels are survivable is left as an exercise for the judges. :)

Despite the distractions we think me managed to put a decent amount of polish on the game (certainly more than our PyWeek 12 entry). Today's work included: more snake control tweaks, a splash screen, a credits screen, lots of editor UI neatening, tons of levels, music tracks, packaging (Windows ZIP, Windows Installer, OS X dmg, Debian package, Unix tarball).

Our game includes a full-featured level editor -- we hope everyone will have as much fun making levels as we have and share their levels by uploading them (click upload in the level editor).  We'll be curating levels during the judging period and making them available for everyone to play (via the network levels screen).  Your edited levels are saved locally.

Towards the end our team of mutant squirrel level designers went a little insane and made such gems as Arrow Maze (look sharp!), Ant Farm (methamphetamines may help here), Mamba (feared in its natural habitat) and Happy Fun Times (exactly what it says on the tin).
We're looking forward to judging all the games -- and having everyone inflict their levels on us!

Good night!
The Mamba Team