Day 7: Title Screen

Werewolf Sonata

Werewolf Sonata

Being a werewolf has many advantages, but it isn't great for paying the bills. Insurance claims assesors willing to go the extra mile (to Saturn's moons, for example) are, however, paid exceedingly well.

Money, and plentiful moonlight. What more could one ask for?

If only the low gravity didn't make it so hard to keep the paperwork in order.

Package Notes

Due to post pyweek tiredness, we didn't correctly separate packing work form some bugfixes that crept in after the deadline, and didn't have the energy to sort everything out, so the windows, MacOS and debian packages include a few changes that aren't strictly part of the pyweek entry. None of the changes should significantly affect gameplay, but if you want to judge the final submission, use the nagslang-0.1.tgz upload

The following things were fixed:

  • Fix the acid animation which got lost in the last few minutes of pyweek
  • Correctly cleanup on scene changes so we don't constantly leak memory
  • Improve checks on the sound system so we don't crash if ogg files aren't read correctly

Cape Viper

When seriously disturbed, they will put on a "ferocious" threat display that includes coiling up, inflating the body (making the dark markings stand out), hissing and puffing loudly, flattening the anterior portion of the body, and striking frantically. Striking is done with such vigor that small specimens may lift themselves off the ground entirely.

A team entry by members of CTPUG


Give this entry an award


Ratings (show detail)

Overall: 3.9
Fun: 3.8
Production: 4.2
Innovation: 3.6

Respondents: 16


File Uploader Date
Source tarball (0.1) with two minor fixes.
hodgestar 2013/09/08 21:03
Source tarball (0.1) with two minor fixes.
hodgestar 2013/09/08 20:59
Windows py2exe build
drnlm 2013/09/08 20:24
Debian/Ubuntu package
stefanor 2013/09/08 20:18
Mac OS X package
jerith 2013/09/08 18:42
Day 7: Title Screen
hodgestar 2013/09/08 01:11
Source tarball (0.1)
hodgestar 2013/09/08 00:13
Dead aliens, keycard access and some inconvenient terrain
confluence 2013/09/06 22:34
Day 5: Death, property destruction and pretty, pretty things.
Decoy 2013/09/05 23:10
drnlm 2013/09/04 22:50
Day 3: An alien minding its own business
stefanor 2013/09/03 23:16
Day 2: Things to play with
jerith 2013/09/02 23:23
Day 1: Protagonist
hodgestar 2013/09/01 22:51

Diary Entries


We appear to have gotten off to a reasonably smooth start. Given the Moon theme the team seemed to automatically gravitate towards science fiction themes and after much discussion we agreed on doing some sort of top-down puzzle action game with maybe light combat. To tie in the theme further, we made the protagonist a werewolf.


Having learned previously that physics engines are hard, we opted to use a physics engine library this time. After an extensive selection process (i.e. we found it first) we decided to use pymunk. Jerith attempted to convince us again that writing a physics engine wasn't actually that hard, but fortunately the memory of Nine Tales was still fresh in everyone's minds.

Having selected a vague genre, storyline and tool set, we got to work and ended the day with:
  • a play area with bounding walls
  • a protagonist that can change between human and werewolf forms
  • the beginnings of a level editor
  • the ability to change between game and menu screens
  • a pressure sensitive switch on the floor
  • reasonable first draft of player movement controls
  • some code for loading resources
  • artwork for the protagonist and a few aliens
We'd like to welcome aboard our new team member Decoy (who got reasonable amounts of code in today, thus easily surpassing many previous new team members in first day productivity :).

Add a comment

Werewolf with opposable thumbs

Today was a work day, which meant much reduced pyweek productivity. Hodgestar spent the day sick in bed, so we're all hoping he recovers swiftly and gets back to game writing soon.

Despite this, we've made some solid progress:
  • Prettier pictures. The protagonist's werewolf form shown in the screenshot above is actually older than the human form from yesterday. The tiled floor has been excised from the exterior of the level as well.
  • More things to do. There are pressure switches (which existed in a very primitive form yesterday), indicator lights, a bunch of behind-the-scenes plumbing to hook them up and crates to push around the place. These are some of the building blocks we'll be using later to make the game interesting.
  • Our level serialisation format changed and tumbleweed wrote a kind-of-YAML parser for it. (This is the kind of crazy thing one does during pyweek. He looked happy, so I didn't want to stop him. The results are good, though.)
  • The level editor does more stuff and is easier to use. drnlm is our resident toolsmith and has built this kind of thing for most of our games, so he knows what he's doing here.
We're not quite as far along as I'd hoped we'd be, but we already have a thing we can play around with and try out various ideas. Having that kind of rapid feedback really helps maintain momentum and enthusiasm.

I think we'll focus on tools and puzzle components a little more tomorrow before we start on level design and all that stuff. But right now I need to catch up on my sleep.

Add a comment

Don't mind me, I'm just a brain with 2 eyes on stalks

Day 3 ScreenshotAnother day spent on infrastructure, there's not much visible change from yesterday. We need to start building levels and a story, soon.

We now have a patrolling alien, who is quite fun to push around. It pushes back, but is otherwise mostly harmless.

We have a couple of new objects are present in the world:
  • There are doors between levels, or teleporting around inside the level. They can be locked, and require a switch to unlock (like the one with the green light on it, in the screenshot).
  • We have a new class of interior drywall, which doesn't need to be a closed polygon.
  • And there are notes on the floor, that display when the protagonist is over them.
And, even less visible changes:
  • Decoy has gone on a sound hunting spree, and apparently found us a mountain of background music and possible effects. Nothing has been hooked up, yet, though.
  • Some code was tidied up, to avoid the game_object module collapsing under its own weight.
  • New werewolf artwork landed. We now have 6 out of the possible 8 movement directions.

The level editor gained some features, but we're mostly still level-editing in a text editor. We'll need to allow it to add objects to the level, and then we can start building the game. I hope we haven't left that too late...

Add a comment

A violent struggle to the death, and beyond

Work unfortantely still continues to distract us, so progress is still slower than I like.
Day 4 screenshot
Art continued to arrive and the game is looking very pretty.
The level editor learnt a few new tricks, and can now interact with the various objects we've created, which should make generating gameplay content a lot easier.

We also started working on the combat part. The aliens can now damage the player, although the player still shrugs off death as a minor inconvenience. We've also added simple, although rather idiosyncratic, bullets.

Decoy managed to find time to trawl through several lists of freely reusable audio files for sound effects, and we've started work on hooking those up, which will make sneaking in time to work on the game at the office a lot harder.

During the course of the day, we also added some global state to track various statistics, and this promtly led to a basic save game being implemented.

The underlying plumbing is now in decent shape. Several of the team will be in the same location tomorrow, so hopefully that will allow us to get some planning on content and story done, so we can push forward with the actual game.

1 comment

Claws and polished floors don't mix

Where is the floor polish again?
We continue to make items and interactions better, adding more traditional game elements to what was still looking like a physics demonstration. It's been a slowish day, but we *might* have something that works by the end of Friday. Then we just need to make levels... Some of the things that happened:

What this game needs is more game

The protagonist gained the ability to carry out actions in the game world (yay for opposable thumbs), like open doors and pick up things. Which is useful, because there is now also a collectable gun, without which you cannot shoot the bullets, that hopefully hit the aliens, that just wanted to say hi, with acid. Doors in turn now have to be opened and there are levers to push and switches to toggle. *More* plumbing was added to the game engine. 

The death of a protagonist

Death has been added, both player and alien. Yep, if the protagonist takes enough damage, the game now kicks you to the death screen, though the werewolf does have the ability to heel. I mean heal. And strangely enough, though they can't regenerate yet, the aliens started looking more attractive just before they gained the ability to die.

The best offence is a good offence

Bullet physics has been wrangled so that they are fast (they used to be slow enough that you could kick them around the level) and are now properly destroyed when colliding with things. A claw attack for the werewolf form was added at the last minute, but something broke the animation cycle, so it now looks like we are scuffing the floor really badly as we go around the level.

A plot thickens and grows lumpy

We gained a plot, that will become apparent when you play (no spoilers). And apparently we gained sheep?!? Wait, was that a spoiler...

Add a comment

An increase in violence

Claws are great for killing aliens, but I'll need fingers to pick this upThe wolf claw attack was fixed early this morning -- no more scuff marks -- and also got some new art. We got new floor tiles in two colours, as well as two kinds of terrain: acid spills, which damage our intrepid heroine, and patches of moonlight which force her to turn into a werewolf. OK, moonlight isn't technically a terrain. I have also been informed that it is specifically Titanlight, which is why I have made it orange. Science!

Aliens now spit acid blobs, which makes them a lot more deadly. You can make the protagonist shoot or claw semi-automatically by holding down Z, so you don't have to keep mashing the keyboard.

We added the interior of the protagonist's spaceship as a starting level. There are now some coloured keycards for opening certain doors. Most of the level is reset when you leave and come back, but some things are persistent, like inventory and doors that you have already opened. Exactly how this should be implemented was the subject of some spirited debate. The inventory is currently invisible.

Of course a lot of framework expansion and refactoring happened in the background, including many physics tweaks and bugfixes. You can no longer be shot by an enemy on another level, for example.  Oh, and we also have a working title for the game: Werewolf Sonata.

Being a werewolf is generally pretty awesome right now, since clawing is easier than shooting and the werewolf barely registers damage. Of course you can't pick anything up without opposable thumbs. We're going to need to add some more downsides -- we should have a better idea of how to balance things when we make all the levels tomorrow. (All the levels! We totally have enough time. It'll be fine.)

1 comment

Werewolf Sonata: Requiem

Day 7: Title Screen
It's been a crazy ride. We have a game, but it only just came together, in the last hour or two. We might have left things a little bit late...

Most of the week was spent on the game engine, and level editor. We only started building non-trivial levels today. Which meant we only noticed performance issues with big and complex levels this afternoon. Some of them were fixed, but not all.

We only really got to a playable game in the last couple of hours.
We started by building all sorts of cool game mechanics and functionality without trying to hook it all up into a coherent game until the last day. I don't think this is necessarily a bad way to work, but we really should have started putting things together earlier in the week so our later work could have been a little more directed.

I just want to say: G*d damn you Cargo Bay!!! Also: hooray for physics engines! Next time more physics puzzles. But yes, more time and more work required for the levels. I think perhaps we tried for too many things in this game, but that's part of the fun.

We did play all the way through the game several times, so we're 90% sure that it is technically possible. :)

Stuff we only got to on the last day:
  • visible inventory
  • music for levels
  • sound effects
  • the actual levels
  • a third alien type and the alien boss
  • hooking up the sheep
  • the level editor leveled up
  • splash screen at the very last minute
  • using a ship level as the opening screen
  • fixing performance bugs
  • keyed hatches
  • keycards in all the colours of the rainbow (except orange -- what kind of stupid colour is orange?)
  • gravity well
Things we'd do again:
  • Use a physics engine (assuming it's a physics related game).
  • Getting collision detection for free was great.
  • Build a level editor.
  • Go see RMS' talk.
  • Herding sheep is fun!
  • Create homages to other games.
Things we'll try to do better next time:
  • Explore other physics engines (and learn the physics engine before starting).
  • More game stats!
  • Get the story line and basic level structure sorted out early.
  • Incorporate the story into our game (you can see one or two text notes hinting at the back-story)
  • Build one big complex level earlier to drive level editor features.
  • Not get sick.
  • Not get distracted.
  • Tell RMS not to visit Cape Town during pyweek.
  • Build full-size levels early on.
  • Reduce the number of game-play elements we implement, so that we can polish a select few.
  • A bit more/more regular planning.
  • Keep track of coordinates better!
  • Aim to be finished with the core game by lunch time instead of midnight.
  • Write a coherent collaborative diary entry.
Favourite commit messages:
  • Consider a spherical werewolf.
  • queen coughs up magenta keycard upon expiring
  • Fuck you cargo bay!!!!!!
  • You know what? If you want any more changes on this $*&^(#$*&^@($*&^% level, you can do it yourself!!!!!
  • Better sheep doors.
  • Robustness fix
  • Someone forgot the sheep!
  • the black goat with a thousand young
  • Cargo what?
  • Fix boogs.
  • Goodbye foul locked_door!
And now to catch up on the -20% sleep. :D

Happy judging!

Add a comment


Today was spent recovering from last night's frantic rush to the finish and sorting out packaging, which manages to be a source of constant surprises.

Ensuringt that pymunk was included correctly created a few issues which took time to sort out. I lost a couple of hours to some unexpected behaviour of py2exe, which took a long time to understand and work around. while jerith fought with the MacOS build, eventually declaring a partial victory, as the game runs, but insists on starting minimized for no apparant reason.

We were a bit careless with the branches, and so a handful of post-pyweek bugfixes snuck into the packaged versions. Some none of them should significantly affect the basic gameplay, we decided not to redo the uploads to exclude the fixes. People wanting to judge the final submission should use the nagslang-0.1.tgz upload.

The errant fixes are:
  • Fix the acid animation which got lost in the last few minutes of pyweek
  • Correctly cleanup on scene changes so we don't constantly leak memory
  • Improve checks on the sound system so we don't crash if ogg files aren't read correctly

Add a comment