April 2011 challenge: “Nine Times”
Fractured Soul - Fractured Soul available for download
Posted by Cosmologicon on 2011/04/10 06:42
Best pyweek ever! I'm not ready to do a full postmortem, but I want to say that our team put in a ton of work this week. I've been getting about 3 hours of sleep per night and pyweeking non-stop when I'm not at work. I was in charge of level design and I was so into it, I swear I designed two of the levels in my sleep.
I'm really proud of our final result! I hope you enjoy it too!
[ Download Fractured Soul ]
If anyone encounters any major bugs, let us know before the upload deadline and we'll fix them!
I'm really proud of our final result! I hope you enjoy it too!
[ Download Fractured Soul ]
If anyone encounters any major bugs, let us know before the upload deadline and we'll fix them!
Super Salaryman - Fullscreen
Posted by Smitty333 on 2011/04/10 06:38
For anyone who plays the game I recommend Fullscreen mode so you can see the little animation details that meshed has painstakingly worked at over the last week!
Cheers
Cheers
Shattered Silence - My legs. They are wibbly wobbly.
Posted by blakeohare on 2011/04/10 06:30
Ahh, Saturday. 5PM PDT. The end of PyWeek. That moment when I stand up on my now wibbly-wobbly hind legs and let these worn down nubs that used to be fingers grow back. It's been a rough week but in different ways than previous PyWeeks. This was quite different than my previous experiences. It probably wasn't my best PyWeek either, and as such I've learned quite a few things.
On a happy note, though. I'm not dizzy and hallucinating the way I was directly after PyWeeks 10 and 11.
Typically our team structure is as follows...
- 1 or 2 people coding
- 1 person on pixel art (sprites-n-tiles)
- 1 person on large art (backgrounds, portraits, and cutscene art)
- 1 person on music
- n people on assets where n is proportional to the size of the game we ultimately plan to make.
If n is large enough, I will lay down basic architecture and infrastructure in the first hour of PyWeek to unblock the other coder and then spend the rest of the night (probably to sunrise) making a fancy dancy UI map editor for the n asset-development people. For PyWeek 10 we made a story-based platform game. For PyWeek 11 we made a overhead-2D zelda-style dungeon adventure game. Therefore n was assigned a large value.
This time we were making a real time strategy game and the intent was to have auto-generated levels for custom games and 9 levels for the story-mode game.
"Gee, 9 doesn't sound like a big number for total number of levels"
So I made the mistake of assigning n the value of 1. In Shattered Silence (yup, that's the game's name) you start out with a very small map. Once you complete that map, the bounds of the map increase by a factor of 3 on each edge (so the area is "9 times" the area it was before). There are 9 zoom levels, so you have to beat the level 9 times.
The side length of the 9th level would equal three to the power of eight times the original map width. (power of 8 because there are 8 zoom incrementations for 9 levels)
That's a big number for a side length. If it was strictly following this pattern, the final level would be 6561 times larger on each side taking up a total area 43,046,721 times larger than the original level. Because no one here owns a computer with 22 gigs of RAM, we tweaked it a few times such that the actual zoom is sneakily a bit smaller and midway (between levels 5 and 6) we reset gameplay to an abstracted view where you no longer control individuals, but icons denoting crowds of people instead. Looking back, it reminds me of Katamari Damacy's zooming system. This made it manageable and still runs 120 fps without making my laptop burst into flames. But still, it was quite a bit more to map out than I had anticipated.
Mistake 2: leaving map making till the 2nd half of the week. Had I done this earlier, I would have realized that these maps are pretty huge. Second, the person that was going to do the maps had a personal emergency come up on Thursday. Three of the teammates were unavailble post-Thursday and had their work finished up. The other 2 had full work item queues. So unfortunately quite a few things had to give to get the maps to a playable level.
Lessons:
- Seemingly innocent tasks can balloon really quickly
- As much as any of us can dig ourselves into a bunker and live off a feeding tube with no scheduled distractions for the whole week, life has a funny way of catching us by surprise. Recovering from such surprises is much easier to do when work is accurately estimated before Wednesday.
The other lesson Ive learned is that the game idea has to be something /everyone/ on the team feels passionately about. We felt okay about the idea we had for 9 times when we chose it, but only okay. Once we started to sit down and create it, no one was nearly as excited as they were in previous PyWeeks. There was probably a few reasons for this. One reason could have possibly been that there was no fully functional game until late in the week. The whole engine was comprised of numerous small moving parts and couldn't really be enjoyed until at least most of them were completed.
Previously, we made games where you run around and do things. The "run around" bit took about 2 days and "do things" bits took the other 5. But at the very minimum you could see concrete progress and that probably helped morale tremendously without us realizing it until we saw the lack of that this time.
Lesson:
- When morale starts to dip, it's really contagious.
- Make an ugly game that works in 1 or 2 days. Make it work nicely in 2 more days. Spend the final 3 days on polish. If everyone comes down with the plague on Wednesday, then hey, you still have a game that "works nicely".
So those are the lessons I've learned. I've often claimed that "PyWeek is the time to perform, not the time to learn" but this time I've learned that learning is unavoidable. Anyways, it's time for me to return back into hibernation in the real world for another ~5 months until PyWeek 13 when I'm sure I'll learn several new and different lessons. Hopefully my fingers will have grown back by then.
It's been a rough week and even though there were several factors working against us, I am still pretty pleased with the final outcome. Once again, we have really awesome art thanks to Spears and first-timer Niels, and we have much more sophisticated (in a good way) menus than we ever have before thanks to Falun's efforts.
I hope you enjoy it. :)
...
Oh, and a Completely Random lesson:
PyGame's Surface.set_alpha() method does not work on surfaces that contain per-pixel transparency. However, it can be cleverly hacked around. Suppose you wanted to accomplish something that looks like this:
# surfA is a 100x100 surface that contains transparency
# screen is the game screen that you want to blit it to
surfA.set_alpha(128) # will not work because PyGame is silly. SILLY!
screen.blit(surfA, (x, y))
Instead, try this:
tempSurf = pygame.Surface((surfA.get_width(), surfB.get_width())
tempSurf.blit(screen, (-x, -y))
tempSurf.blit(surfA, (0, 0))
tempSurf.set_alpha(128) # this WILL work
screen.blit(tempSurf, (x, y))
HogePiyo - HogePiyo - Fun on a bun
Posted by alkazar on 2011/04/10 04:15
I must say, this was quite an enjoyable experience. Our game didn't turn out quite the way I had hoped, the graphics (what graphics?) suck, and the controls are horrible and buggy, but at least the core idea is implemented. I just hope that what we do have is able to at least somehow communicate that core idea and give a sense of "this would be cool if it were actually done properly".
I see at least one other entry, "Forever End", that uses at least somewhat similar mechanics to our game. In fact, in our brainstorming session the idea of transporting through various times in history came up, but was quickly discarded because it seemed like it would be a lot of work to do all the graphics to properly differentiate between the time periods.
I think it is interesting that the "Nine Times" theme, despite not being directly related to traveling between historic periods or between dimensions, seems to have led at least two different teams in the same general direction with regards to their game mechanics. A mechanic which I had thought seemed new and novel...
Also, I see lots of people went with cat themes. I lol'd. We did this too, it seemed logical at the time, our motif was Egypt and mummies and mummified cats seemed like a natural fit. I guess we should have expected lots of cats.... oh well.
I see at least one other entry, "Forever End", that uses at least somewhat similar mechanics to our game. In fact, in our brainstorming session the idea of transporting through various times in history came up, but was quickly discarded because it seemed like it would be a lot of work to do all the graphics to properly differentiate between the time periods.
I think it is interesting that the "Nine Times" theme, despite not being directly related to traveling between historic periods or between dimensions, seems to have led at least two different teams in the same general direction with regards to their game mechanics. A mechanic which I had thought seemed new and novel...
Also, I see lots of people went with cat themes. I lol'd. We did this too, it seemed logical at the time, our motif was Egypt and mummies and mummified cats seemed like a natural fit. I guess we should have expected lots of cats.... oh well.
Tic-Tac-Toe Squared - Derp
Posted by Math on 2011/04/10 03:36
I just realized, I created four voices (12-1 to 12-4) for when a board gets cleared. I completely forgot to code the triggers for those voices...derp. Also, I meant to create voices for when you click on the computer's face...derp. Also, one of the voices is "derp" and it does work...derp.
But other than that, Tic-Tac-Toe Squared is finished, uploaded, and I think it's f***ing awesome.
This was my first PyWeek and I really enjoyed it. I plan to participate in it again.
=Nerdfighter Math
But other than that, Tic-Tac-Toe Squared is finished, uploaded, and I think it's f***ing awesome.
This was my first PyWeek and I really enjoyed it. I plan to participate in it again.
=Nerdfighter Math
Ball Game - Ball Game
Posted by kent_turbo on 2011/04/10 03:01
I only managed to do two levels for the game, and it works funny at times, but hopefully it won't crash or anything.
The idea is that you control a ball, that has a power to temporarily change it's size. Being able to do that only nine times, you have to navigate a labyrinth and find the exit. Coincidentally, the big ball is nine times larger that the small ball. You can also collect coins to increase score.
Please post high scores or tracebacks, whichever you get first.
The idea is that you control a ball, that has a power to temporarily change it's size. Being able to do that only nine times, you have to navigate a labyrinth and find the exit. Coincidentally, the big ball is nine times larger that the small ball. You can also collect coins to increase score.
Please post high scores or tracebacks, whichever you get first.
Improbable Rocket-Propelled Dinosaur Scientist - Improbable Rocket-Propelled Dinosaur Scientist
Posted by Tee on 2011/04/10 02:13
This is probably one of the best game titles I have come up with in Pyweek.
This Pyweek I had an interesting idea right from the beginning but I had very little time. I was forced to rush everything in at the last day. There are many things missing from the original concept, as usual.
The concept comes from "nine times out of X". There's a story about a scientist who works on the Improbability Device and becomes a dinosaur after a massive failure and then has to rocket towards the device to fix it. On the way to the machine, improbable events may happen, but unfortunately I had time to implement only a few. The dinosaur scientist can alter the probability of these events by picking up atoms that were released from the failure of the device.
Only after I finished the game I realized there was a flaw in the design: there's some chance that the player makes things too improbable to happen, so nothing ends up happening in the game, which means the player might get bored. I tried to fix it at the last minute, but I couldn't do much besides tweak a few parameters, and I'm not sure that helped much.
I started this day thinking I might not be able to finish something, and I still had that feeling in the middle of the day, but there it is to prove myself wrong. The game could use a lot of work, but at least it's playable. I hope you enjoy the game. As usual, feedback is very much appreciated. :)
This Pyweek I had an interesting idea right from the beginning but I had very little time. I was forced to rush everything in at the last day. There are many things missing from the original concept, as usual.
The concept comes from "nine times out of X". There's a story about a scientist who works on the Improbability Device and becomes a dinosaur after a massive failure and then has to rocket towards the device to fix it. On the way to the machine, improbable events may happen, but unfortunately I had time to implement only a few. The dinosaur scientist can alter the probability of these events by picking up atoms that were released from the failure of the device.
Only after I finished the game I realized there was a flaw in the design: there's some chance that the player makes things too improbable to happen, so nothing ends up happening in the game, which means the player might get bored. I tried to fix it at the last minute, but I couldn't do much besides tweak a few parameters, and I'm not sure that helped much.
I started this day thinking I might not be able to finish something, and I still had that feeling in the middle of the day, but there it is to prove myself wrong. The game could use a lot of work, but at least it's playable. I hope you enjoy the game. As usual, feedback is very much appreciated. :)
NobleNine - Uploaded
Posted by Evdude on 2011/04/10 01:44
I did finish before the deadline, but I have slow internet, and it took a while to upload.
That was a fun pyweek. We didn't have much time for testing (finished 19 minutes before the deadline) but we stuffed a bunch of stuff in their. The game has menus, multiple levels, multiple badguys, people saying funny things(I hope), and a lot of undiscovered bugs :)
Hope it works for you guys! :)
Download
That was a fun pyweek. We didn't have much time for testing (finished 19 minutes before the deadline) but we stuffed a bunch of stuff in their. The game has menus, multiple levels, multiple badguys, people saying funny things(I hope), and a lot of undiscovered bugs :)
Hope it works for you guys! :)
Download
Shattered Silence - Gameplay note
Posted by Falun on 2011/04/10 01:35
The First Post... 7 days in?
I guess the only post-submission note I want to add is that you can view the end-game cutscene press F8 from the title menu.
We don't save intermediate states so it can be difficult to reach it otherwise. Enjoy!
I guess the only post-submission note I want to add is that you can view the end-game cutscene press F8 from the title menu.
We don't save intermediate states so it can be difficult to reach it otherwise. Enjoy!
TeamStrong - Buggiest game I have ever played...
Posted by jtrain on 2011/04/10 01:25
We thought outside the house we live in (we are all brothers) and added 9 carefully placed bugs into the source-code of our game. 9 bugs = 9 hours of bug-fix development time, though because that 9 hours is an estimate by a developer, it will actually take 18 hours.
Looking forward to playing your games, were you as creative as us? Did you leave little bug presents lying around?
Looking forward to playing your games, were you as creative as us? Did you leave little bug presents lying around?