iconPyweek #14


Yay, finally finished a compo entry again! I made a little puzzle game called Yellow and Dangerous for PyWeek 14.

This one was a lot of fun. I used Python 3, which just is so nice to use. Very high level, very clean syntax and my code just works as intended :) Which allowed me to do quite a lot in the limited time. Basically a complete isometric engine which uses masking to solve the old (impossible) 3d sorting problem.
(Here's a picture demonstrating the problem, no matter in which order you draw the blocks x, y and z it always will be wrong: )
It probably would have been easier to do full 3d and use a regular z buffer. But I've basically been waiting for 20 years or so to do a 2d isometric engine like this - ever since I played Cadaver on the Amiga. And now I finally managed to do a 100% clone of the engine they used back then. My life is complete now. And I managed to do it in (the free time of) a week no less (well, the implementation, there's years of research in it...) :)
The game itself is rather simple. During the competition someone made a mockup of a Portal like game (he never actually made the game though, unfortunately). But it prompted me to create a Companion Cube like cube as placeholder for my initial testing. And I liked it so much I kept it as the main game mechanic. The goal in each level is to place cubes on pressure plates to unlock the exit. However to do so, you need to push, pull and stack other objects. Either to move them, or to create structures which help you move. For example to create a bridge over a gap or to create some kind of stairway to climb up to a high place. I also tried using the 3D aspect in some of the levels, for example one level has a block hidden behind a bush. And another arranges platforms in a way so the isometric view makes it hard to see where they actually are. Similar to those M. C. Escher drawings.