Yellow and Dangerous
Help a mad scientist and her (imaginary) assistant run an experiment involving mad science and something that is yellow and dangerous.
Complete play-through video
Awards
Scores
Ratings (show detail)
Overall: 3.4
Fun: 3
Production: 4
Innovation: 3.1
Respondents: 9
Files
File | Uploader | Date |
---|---|---|
Yellow and Dangerous 1.0.zip
— final
cx-freeze version, this time with python32.dll included |
allefant | 2012/05/17 00:26 |
Screenshot - 05132012 - 01:17:05 AM.png
state on day 7 |
allefant | 2012/05/13 09:18 |
Screenshot - 05112012 - 11:59:01 PM.png
status on day 6 |
allefant | 2012/05/12 08:00 |
Screenshot - 05112012 - 01:31:43 AM.png
state on day 5 |
allefant | 2012/05/11 09:32 |
Screenshot - 05102012 - 12:07:49 AM.png
state on day 4 |
allefant | 2012/05/10 15:03 |
concept.png
concept art |
allefant | 2012/05/10 15:02 |
Diary Entries
Yellow and Dangerous
I wish I didn't have to work this week. Only scribbled some concept art so far but already love my game, so I do hope I can get something done.
The idea is rather simple. You're a mad scientist in your mad science lab and build a mad device for which you need mad ingredients and parts. Which are scattered across the lab. There's also your helper a mad yellow elephant which may be real or just your imagination but who is needed to solve most of the puzzles.
Anyway, so far I have an empty .py file importing Allegro 5. The TODO list is:
The idea is rather simple. You're a mad scientist in your mad science lab and build a mad device for which you need mad ingredients and parts. Which are scattered across the lab. There's also your helper a mad yellow elephant which may be real or just your imagination but who is needed to solve most of the puzzles.
Anyway, so far I have an empty .py file importing Allegro 5. The TODO list is:
- create placeholder isometric block (sunday)
- write isometric engine (sunday and evenings monday through friday))
- create first room (friday)
- create more rooms and items (saturday)
- replace placeholder block with better art (saturday)
- add simple two-step animation for scientist and elephant (saturday)
- (if time left) add title menu, finish up all rooms, add sounds, add music
progress
Well, some progress. There is an isometric floor. And using my awesome Blender skills I started modeling a mad scientist. So now, 6 days left (only one of which I don't have to work on though).
Day 3
I spent all night yesterday trying to fix a bug in my isometric sorting
but couldn't figure it out. And then had to think of it all day today.
When I finally got home I added lots of print() statements throughout my
code and eventually figured it out.
Floating point numbers don't work as you would expect at all. Just because x = a + b doesn't mean that x >= a + b, apparently. After using x + 0.1 >= a + b it suddenly started working...
Unfortunately I hit another problem. My algorithm creates a mask for each block it draws and then draws all other blocks in front of it with the mask active. So for a map with 100 blocks I might end up drawing several thousand blocks... which is too much for Python and/or my GPU. So next is figuring out a way to optimize this, probably by trying to pre-sort the blocks and cache the overlapping ones...
Floating point numbers don't work as you would expect at all. Just because x = a + b doesn't mean that x >= a + b, apparently. After using x + 0.1 >= a + b it suddenly started working...
Unfortunately I hit another problem. My algorithm creates a mask for each block it draws and then draws all other blocks in front of it with the mask active. So for a map with 100 blocks I might end up drawing several thousand blocks... which is too much for Python and/or my GPU. So next is figuring out a way to optimize this, probably by trying to pre-sort the blocks and cache the overlapping ones...
Yellow and Dangerous - Day 4
Spent a lot of time on making hair for my mad scientist. Out of many small cylinders. The hair as well as the arms and legs are also animated now.
And inspired by TheSheep's mockup, I just had to add a Companion Cube. Which means I had to figure out UV mapping in Blender - which is easy once you understand it, but not... while you didn't yet.
I also have keyboard controls now and can move other blocks (well, only one right now) around. So looks like tomorrow I might be able to finish the engine - only need jumping and stacking and pulling. And recursive pushing which I already dread due to my floating point use, but now that I'm prepared I might be able to avoid problems.
And inspired by TheSheep's mockup, I just had to add a Companion Cube. Which means I had to figure out UV mapping in Blender - which is easy once you understand it, but not... while you didn't yet.
I also have keyboard controls now and can move other blocks (well, only one right now) around. So looks like tomorrow I might be able to finish the engine - only need jumping and stacking and pulling. And recursive pushing which I already dread due to my floating point use, but now that I'm prepared I might be able to avoid problems.
Yellow and Dangerous - Day 5
Not much progress today, compared to the other days. Still, I think I'm not bad in time, should be able to create a few rooms on day 6 and day 7 and have some kind of game ready. The physics could be better, e.g. right now if I pull or push a block and there's another block on top of it... I just slide the lower block out instead of causing the upper block to move as well.
Also, my level editor isn't very easy to use, it's all inline ASCII. Which shows how I like wasting time... either using a simpler ASCII format (to save time), or writing a proper graphical editor (so I save time creating rooms) both would have been better ideas :P
room1 = r"""
_
_ _| |_ _
_| | _| |_| |_ | |_
_| |_| _| |_|/|_| |_ |_| |_
_| |_| |_| |_| |_| |_| |_| |_| |_
_| |_|/|_| |_|/|_/.\_|\|_| |_|\|_| |_
| |_| |_| |_| |_/ \_/ \_| |_| |_| |_| |
|_|/|_| |_| |_/.\_/ \_/.\_|\|_| |_|\|_|
| |_| |_| |_/ \_/ \_/ \_/ \_| |_| |_| |
|_| |_|/|_/.\_/ \_/.\_/ \_/.\_|\|_| |_|
| |_| |_/ \_/ \_/ \_/S\_/ \♥/ \_| |_| |
|_|/|_/.\_/ \_/.\_/ \_/.\_/♥\_/.\_|\|_|
| |_/ \_/ \_/ \_/ \_/ \_/♥\♥/♥\_/ \_| |
|_/.\_/ \_/.\_/ \_/.\_/♥\_/.\_/♥\_/.\_|
/ \_/ \_/ \_/ \_/ \_/ \♥/♥\_/ \♥/ \_/ \
\_/ \_/.\_/ \_/ \_/ \_/.\_/♥\_/.\_/ \_/
\_/ \_/ \_/ \_/ \_/ \_/♥\_/ \_/ \_/
\_/ \_/.\_/ \_/.\_/ \_/.\_/ \_/
\_/ \_/ \_/ \_/ \_/ \_/ \_/
\_/ \_/.\_/ \_/_\_/ \_/
\_/ \_/ \_/ \_/ \_/
\_/ \_/.\_/ \_/
\_/ \_/ \_/
\_/ \_/
\_/
"""
Also, my level editor isn't very easy to use, it's all inline ASCII. Which shows how I like wasting time... either using a simpler ASCII format (to save time), or writing a proper graphical editor (so I save time creating rooms) both would have been better ideas :P
room1 = r"""
_
_ _| |_ _
_| | _| |_| |_ | |_
_| |_| _| |_|/|_| |_ |_| |_
_| |_| |_| |_| |_| |_| |_| |_| |_
_| |_|/|_| |_|/|_/.\_|\|_| |_|\|_| |_
| |_| |_| |_| |_/ \_/ \_| |_| |_| |_| |
|_|/|_| |_| |_/.\_/ \_/.\_|\|_| |_|\|_|
| |_| |_| |_/ \_/ \_/ \_/ \_| |_| |_| |
|_| |_|/|_/.\_/ \_/.\_/ \_/.\_|\|_| |_|
| |_| |_/ \_/ \_/ \_/S\_/ \♥/ \_| |_| |
|_|/|_/.\_/ \_/.\_/ \_/.\_/♥\_/.\_|\|_|
| |_/ \_/ \_/ \_/ \_/ \_/♥\♥/♥\_/ \_| |
|_/.\_/ \_/.\_/ \_/.\_/♥\_/.\_/♥\_/.\_|
/ \_/ \_/ \_/ \_/ \_/ \♥/♥\_/ \♥/ \_/ \
\_/ \_/.\_/ \_/ \_/ \_/.\_/♥\_/.\_/ \_/
\_/ \_/ \_/ \_/ \_/ \_/♥\_/ \_/ \_/
\_/ \_/.\_/ \_/.\_/ \_/.\_/ \_/
\_/ \_/ \_/ \_/ \_/ \_/ \_/
\_/ \_/.\_/ \_/_\_/ \_/
\_/ \_/ \_/ \_/ \_/
\_/ \_/.\_/ \_/
\_/ \_/ \_/
\_/ \_/
\_/
"""
Yellow and Dangerous - Day 6
Yay, level 2! I made a brick floor and a tree. And an elephant. And my mad scientist wears a gown now (not animated, don't think right now is the time to figure out Blender's cloth animation). Also not sure why I started on this outdoors tileset instead of a proper lab tileset that would go with my story...
I also realized that I would have saved time doing the whole game in 3D instead of 2D. All the sorting and masking would then have been taken care of by the depth-buffer and I wouldn't need to pre-render anything o_O Also could let everything cast shadows then.
Gameplay-wise I implemented re-loading of levels. And ikanreed's comment in my last diary entry made me realize just how stupid my level format was and I changed it to a simple 10x10 ASCII grid now :P
So tomorrow it's level design day. My goal is 5-10 rooms with some (more or less obvious) puzzles.
I also realized that I would have saved time doing the whole game in 3D instead of 2D. All the sorting and masking would then have been taken care of by the depth-buffer and I wouldn't need to pre-render anything o_O Also could let everything cast shadows then.
Gameplay-wise I implemented re-loading of levels. And ikanreed's comment in my last diary entry made me realize just how stupid my level format was and I changed it to a simple 10x10 ASCII grid now :P
So tomorrow it's level design day. My goal is 5-10 rooms with some (more or less obvious) puzzles.
Yellow and Dangerous - Day 7
This ways a triumph. I'm making a note here stating that I'm in some kind of trance state, spent like 20 hours without break creating 12 levels. And I may have a slight caffeine overdose :P Anyway, it's all done, except packaging... which I hope to work on tomorrow.
It's a long time I had so much fun, so thanks Richard for organizing this again :) And thanks to all the nice people in IRC for keeping me company during the week.
Next year I definitely need to prepare packaging earlier, I do expect I'll get a lot of does-not-works. And next time I also need to take the week off work, I had some overtime to balance so was able to work a few hours less. But still, really could have used more time... there's so many level ideas I couldn't implement... and well, the packaging alone could use a whole day or two.
It's a long time I had so much fun, so thanks Richard for organizing this again :) And thanks to all the nice people in IRC for keeping me company during the week.
Next year I definitely need to prepare packaging earlier, I do expect I'll get a lot of does-not-works. And next time I also need to take the week off work, I had some overtime to balance so was able to work a few hours less. But still, really could have used more time... there's so many level ideas I couldn't implement... and well, the packaging alone could use a whole day or two.
Yellow and Dangerous - Day 8
I made a video of me solving all the levels and I re-packaged it all with cx_freeze. So now there's an .exe file which can be double clicked in Windows (or run in Wine from Linux and OSX). So should now be able to run it rather comfortably from all platforms supporting Python :)