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
Awards
Scores
Ratings (show detail)
Overall: 3.9
Fun: 3.8
Production: 4.2
Innovation: 3.6
Files
File | Uploader | Date |
---|---|---|
nagslang-0.1-with-fixes.zip
— final
Source tarball (0.1) with two minor fixes. |
hodgestar | 2013/09/08 21:03 |
nagslang-0.1-with-fixes.tgz
— final
Source tarball (0.1) with two minor fixes. |
hodgestar | 2013/09/08 20:59 |
nagslang-0.1.exe
— final
Windows py2exe build |
drnlm | 2013/09/08 20:24 |
werewolf-sonata_0.1_all.deb
— final
Debian/Ubuntu package |
stefanor | 2013/09/08 20:18 |
nagslang-0.1.dmg
— final
Mac OS X package |
jerith | 2013/09/08 18:42 |
title-screen-r654.png
Day 7: Title Screen |
hodgestar | 2013/09/08 01:11 |
nagslang-0.1.tgz
— final
Source tarball (0.1) |
hodgestar | 2013/09/08 00:13 |
corpses-r389.png
Dead aliens, keycard access and some inconvenient terrain |
confluence | 2013/09/06 22:34 |
scuffed-floors-r314.png
Day 5: Death, property destruction and pretty, pretty things. |
Decoy | 2013/09/05 23:10 |
combat-r226.png
Violence |
drnlm | 2013/09/04 22:50 |
alien-r213.png
Day 3: An alien minding its own business |
stefanor | 2013/09/03 23:16 |
things-to-play-with-r162.png
Day 2: Things to play with |
jerith | 2013/09/02 23:23 |
protagonist-r87.png
Day 1: Protagonist |
hodgestar | 2013/09/01 22:51 |
Diary Entries
Arrroooh?
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
Werewolf with opposable thumbs
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.
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.
Don't mind me, I'm just a brain with 2 eyes on stalks
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.
- 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...
A violent struggle to the death, and beyond
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.
Claws and polished floors don't mix
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...
An increase in violence
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.)
Werewolf Sonata: Requiem
We only really got to a playable game in the last couple of hours.
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
- 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.
- 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.
- 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.
- Herd ALL THE SHEEPS.
- Goodbye foul locked_door!
Happy judging!
Packaging
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