The title screen

Fluffy Menace

Team Fluffy Menace are Richard, fydo and JDruid. Together at last! Bring on the PyWeek!


Give this entry an award


Ratings (show detail)

Overall: 3.6
Fun: 2.8
Production: 4.6
Innovation: 3.6

4% respondents marked the game as not working.
Respondents: 41


File Uploader Date
Source submission (works anywhere)
richard 2007/04/07 22:33
The title screen
richard 2007/04/07 13:40
pre-release for testing
richard 2007/04/07 03:35
Out little hero at home in the cave - faster and with repositioned camera
richard 2007/04/03 10:30
Out little hero at home in the cave
richard 2007/04/02 23:19
The level loading works!
richard 2007/04/01 01:36

Diary Entries

F1rst P0st!!!1!! (and a question)

Heh. Welcome all to the 4th PyWeek Challenge! This time around I'm fortunate to have joined forces with the talents of fydo and JDruid. Let's see what happens :)

I'm hoping to use pyglet for this challenge, though since it doesn't have sound modules yet we'll still have to use pygame for that bit. The sprite/tile engine in pyglet is still pretty raw but it's there. The window/event stuff is pretty good though, and I'll be using PyOpenGL a fair bit too. I guess the biggest issue I have is that pyglet isn't released and isn't going to be for a long time. That means it really shouldn't be used for pyweek. So I thought I'd ask here for some opinions. What do you think? Should I be allowed to use pyglet for this challenge?


"Free" game sprites for YOU to use if you like!

Hey guys,

Here are a bunch of game sprites that I've made in the past that you're totally allowed to use in the competition.

- my GalaxyMage page
- the Game Art section of my blog (includes assets from the previous Pyweek)

I'm very curious to see how these would be used in a new game. I imagine they would be most useful to a one-man-team entrant.
All I ask for in return is a little bit of credit in your README file. :) Thanks and enjoy!


ADMIN: on late library releases

OK, I guess I have to put my foot down here. The challenge rules state:
If you do have a library you must release it within a reasonable amount of time before the challenge starts so that others may have the opportunity of using the library
I've previously stated to people who've asked that in my books 1 month is the minimum "reasonable amount of time".

This amount of time is now to be included in the rules to make it absolutely clear. PyWeek is entirely predictable - it runs every 6 months, and is generally announced about 3 months out. That should be plenty of time for library devs to hawk their wares.




Previous themes

I've had someone ask, so here's the themes that were available for voting on for the first three challenges:

Pyweek #1:

  • Life
  • Time
  • Motion
  • Velocity
  • Power

Pyweek #2:

  • Someone else's trash
  • A fraction too much friction
  • Mind the gap
  • Doorways
  • It runs on steam!

Pyweek #3:

  • Pick a card, any card
  • Watch me pull a rabbit from this hat
  • Sawn in half
  • Spoon bending
  • The Disappearing Act

(Winning theme highlighted)

Add a comment

Poor entry packaging and disqualification

Something that disappoints me about a lot of entries to PyWeek is that they don't spend the small effort required to have someone else test their game or write a nice README listing how to get the game going: dependencies, which file to run, the controls, etc.

A recurring issue we have in the challenge is that a lot of entries aren't runnable on some people's computers, for various reasons (can be as simple as documentation). We have the additional problem that non-game-hacker types come along and download a selection of games only to find they don't work (and then promptly give up thinking what a terrible platform we must be working with).

The rules currently state that entries should include "instructions about how to run the entry" and I'm considering changing this to must. I think it's that important that if you can't get a game to run* then that game should be a disqualification vote.

The challenge is a week long. I have trouble believing that people couldn't find some time to have friend(s) (including us other challengers) try out the game during that week.

*: note that I don't care whether the game is "complete" ... just that it should be possible for a 3rd party to get the game working.


Fydo's Warm-up Entry: Pillows

Hello! Here is my obviously late entry for the pyweek warm-up. I had such a hectic week at work, I only had about 2 or 3 evenings to work on my entry.

I was planning on making a high-score screen, but I figured my entry was late enough as it is.


Enjoy! (and tell me if you run into any bugs)


ADMIN: How to package your game

Owing to some historically terribly packaged games, I've created a "game skeleton" that all entries must download and use as the basis for packaging their game. Please find the "skellington" in the help page section on how to submit your entry.

My reasoning for requiring the use of the skellington is pretty simple: users downloading the games will have an entirely predictable method of invoking the games. No guesswork, no pain.

And I figure that's pretty darned important.


ADMIN: theme voting has started

Access the poll in the sidebar or click on this link. The themes to choose from are:
  • The only way is up
  • Underneath the radar
  • One way or another
  • Don't stop till you get enough
  • The final countdown
This poll runs from now until the start of the challenge, 00:00 UTC on Sunday the 1st of April. See the rules page for details about how the voting works.

Add a comment


It doesn't hurt to put something about it here as well. My Pyweek Warmup compo entry 'Stickybomb' is here

The controls are left/right/up arrows and right control (see readme.txt).

There is also a windows build

To advertise a bit, here's a link to my newest song too :)

Any comments on any of these are welcome.

Add a comment

THEME: The only way is up

All systems go!

You've chosen the theme and it is "The only way is up".

Good luck everyone, and newbies (and oldies ;) don't forget to read the HELP page!

And remember: "it's imposible to get near last if you make a working game that resembles the theme" (credit for wise words: eugman)


Richard's Day 1

My first day (the comp starts at 10AM local time and it's 11PM now) has been pretty productive. I got the basic landscape rendering (not what you see in the screenshot - much prettier) and character movement code working (including animating fydo's first excellent sprite!)

On the downside the game as it stands runs at a measly 3 FPS on JDruid's Radeon 9250 system. On my 7800GT system I get 300FPS. That's without a lot of potential optimisations (I'm switching contexts far too often) but it's also minus a lot of intended bells and whistles.


It's going to be an interesting week :)

1 comment

Richard's Day 3

Missed the day 2 update, sorry.

Day 2 saw a little work on a bunch of stuff, but I was distracted by going to interview for a new job.

Day 3 was similarly distracted and I got the contract to sign for the new job :)

On a brighter note I've incorporated a lot of animations from fydo, and a bunch of behaviours.

We've also discovered that JDruid's performance problems were due to way out of date (or possibly non-existent) drivers for his video card. I've also spent some of today optimising the landscape rendering and now get about 280FPS wandering around the test level.

There's still HEAPS to do. I wasted most of my programming time today trying to come up with a reasonable realistic physics model. The balance between realism and side-scrolling platformer is very hard to find, and in fact I didn't find it today.

1 comment

Richard's Day 4

Got a little bit done yesterday. Unfortunately for my team the business of getting the new job has distracted me quite significantly :(

That's all done now - the contract was signed yesterday. The new company took me out for drinks (and hence my productivity took a further dive for the day). But I still managed to get a few things done.

Importantly I got basic item pickup going and the status displays for indicating item collection. That's most of the way towards the goal of the game. There's a whole lot of additional gameplay that needs to be implemented.


Day 5: "raise NotImplementedError('you won!')"

We're almost there!

It's starting to feel more like a game than a tech-demo...

We've got an intro screen, music, sound effects, a goal (with progression towards the goal). We don't have the final "you won" screen yet (as indicated by this post's title ;)

Still a few important elements to do, a couple of important bugs to fix and a bunch of stuff on the "would be cool to do" list.

Add a comment

Days 6 and 7

My day 6 wasn't very productive - I only got about 3 hours to work on the game. During that time I helped Fydo get going with the intro and story screens, and he's done an amazing job on those. JDruid's music was mixed in as well and that's really helped make the game more complete.

I spent most of today finishing off the core gameplay stuff (baddies, winning, losing, some FX for picking things up, some more level design). Mostly I was fixing bugs, and I think I've gotten the worst of them (notice I don't even consider saying I got "all" of them ;)

I've uploaded our "final" release, which may be revised overnight by the other guys so there might be another upload tomorrow.

I'm pretty happy with how things turned out. From the README:

On a programming note, this game has some interesting features.

The landscape is generated from a pixmap (see lvl/one*.png or one.xcf
for the complete overview). The pixmap is examined and turned into a series
of cubic bezier curves, rendered partly by OpenGL (the solid bits) and
partly by hand (the line bits).

I also used curves to render the trees and clouds. Run lib/ and
lib/ for some examples (hitting SPACE to regenerate).

Unfortunately the curved landscape was a pain to work with and there's some
collision glitches (and probably bugs, but nothing I've run into lately).

The game concept is two-fold:

1. hyper-evolution up from a lowly worm to some form more suitable for a
   given environment, and
2. mostly free-form exploration of a large, interesting playing world.

The latter didn't really work in the final submission for PyWeek because time
constraints meant we couldn't construct that large, interesting world. Just
a large one. We had intended to have NPCs to talk to (and bribe with the
money you find in order to locate more items around the world). There's
also clearly scope for more skill-based challenges and so on.

The code and the design discussion is available at:

There's some dev switches on the command-line:


And in-game you can hit "d" to pause simulation and hit "s" to step.

- better level design
- baddies that move
- flying and swimming baddies

- none that we're aware of!

- reduce the number of line segments in landscape
- use ARB_occlusion_query if it's available for flying collision
- background for sky
- we can vary friction on ground to allow sliding but don't use it


Day 7.5

Well, the final, final submission went in about 2 hours before the challenge finished. I then tried to build an exe with py2exe but ran into numerous problems (I couldn't get it to bundle PyOpenGL no matter what I did). The Skellington will definitely be fixed in a couple of ways to work with py2exe next time.

Unfortunately the ground collision detection is still a little dodgy so people are running through the ground :(

There's also some issues with people not being able to run the game. I'd ask those people to make sure their video card drivers are up to date. If you've still got problems, please state the Operating System and video card you're using.

I'm stoked by the response to this challenge. 102 entries were signed up by the end, and over 50 put in final submissions!

Add a comment

Fluffy Menace: fydo -- an artist's postmortem

Hello fellow humans,

First off I'd like to give a huge thanks to richard, not only for being a great teammate, but for organizing everything and making Pyweek possible. (JDruid, you rock too ;)
I'm amazed that he managed to not only code up the game in a week, but also find a job, get a job AND shop for machines that wash things.

Things started off quite well, I think. The first day was a bit of a write-off, as I spent my time making a bunch of graphics, but finding out the next day that they weren't really the style we were going for.
I managed to finish almost all the in-game art by around wednesday/thursday.

I really didn't know what to do at this point, but knew that one thing we were lacking was a strong connection to the theme, so I decided to try my hand at making a real-time cinematic cutscene/intro for the game. First, just to test things out (and ensure it would work with richard's existing code) I made a funny little team logo animation using just straight python + pygame.

richard took some time out of his busy schedule and updated my code for the logo sequence to work with opengl and the texture classes he had made. I learned much from this, and used my newfound knowledge to code up the main menu screen.
(I'm really hoping someone noticed the awesome effect on the main menu screen with the moving stars in the background :)

Then I began on the story cutscene... first I wrote up a little script (the original is on the fluffymenace googlecode wiki if you're interested) and then recorded the voiceovers. I think I did a pretty good 'movie voice guy' impression for the voiceovers :)
For those who were wondering, yes, the narrator and the scientist are *supposed* to have very similar voices, for comedic effect :)
After this I started making the textures for the story cutscene and coding everything up. I did have some plans for things that didn't quite make it. For instance, take a look at the scene2.png texture, you'll see a little rocket and smoke puff there that was going to be flying past the window in the second scene.

JDruid's music really added a lot to the intro (actually the entire game!) and he also improved (by quite a bit) a couple of the in-game sound effects too. The timemachine sound effect is much better than the one I had before, which was just me saying "memememe". Haha ;)

Anyways, I had a lot of fun on this project, and I'm totally looking forward to playing everyone else's games. YAY PYWEEK!

-- fydo

P.S. Also, you might have noticed that I have released all the art for the game under the Free Art License, so I'd be curious to see what other uses for the game art you might come up with (let me know :)

P.S.S. Whenever I needed a little break from working on Evolution, I spent some time in #toba working with their team on their game, which was then known as 'Barbie Seahorse Adventure' (which I think is a totally cooler name) :)
I contributed the original art for the little fireball guy that you can find on the volanco levels (it's been improved by someone else on the team). I also contributed a level which you can see as the first volcano level.
I think their game turned out really well, and I'm proud to be a part of it too.

1 comment

ADMIN: some files missing from torrent

A couple of entries missed being included in the torrent file. Please ensure you check the Entry Listing page to make sure you've rated all the games listed there, rather than relying on just the contents of the torrent.

Add a comment

ADMIN: uploading re-enabled

Congratulations to everyone who entered the fourth challenge. It was a huge success, and special congratulations to TOBA and Hectigo on their winning entries!

If you'd like to upload a fixed version of your game, or a new screenshot, please do so now.

Add a comment

ADMIN: Sorry about that outage

I had to change hosts again. All better now, I hope :)

Add a comment

OLPC game jam

OLPC are having a game jam! It sounds like a helluva lot of fun and I'm totally jealous of anyone who's in the US who could just fly there to attend.

The deadline for signing up is the 12th of May, so hop to it!

1 comment