| « Dynamic lights! | XRhodes v0.85 is out » |
Cornerstone is a tough cookie. I had fun with what I've put together so far, however, the way it went isn't quite what I want for Cornerstone. I have decided to scale down.
During the last week, which has also been my first week at university, I have been working on a project which I hoped was going to be more smaller scale and more manageable. Well, I wasn't entirely right, but the more manageable bit holds true so far, so there's no need to panic. Meet Project FDF.
It's a procedurally generated platformey goodness in a little more than 2D, with another cool element thrown in, one that a lot of cool stuff can be built on -- I'm not going to spoil it yet.
...
Platformers can be a bitch to implement. Space Garden Punchonaut was relatively simple, but everything in it was hardcoded. With Project FDF I aim to create a game with a modular object hierarchy, and so far it's going pretty well.
What do I mean by "modular"? There is a multitude of game objects that can interact with each other and the world in a number of ways. These interactions are implemented as policies: the way an object renders, the way it moves, the interactions it enables, the events it responds to, how it's landing is handled (critical falls!) etc. The policies are interchangeable. To come up with the right design was a bit painful, but it's been valuable learning -- and the result is powerful.
The second screenshot is of an earlier version, from when I was experimenting with two player mode and split screen (which took but a few extra lines of code, thanks to the way the level renderer was implemented).
Today I've ironed out a few obnoxious bugs and rounded off some of the basic policiesa and tweaked the level generation algorithm; I'm happy what I've got for the cave generation, but not so much the placement of treasures. The pleasant side effect, however, is that adding the (treasure) objects hardly effected the performance so far - currently every object is rendered and updated (no frozen region).
What comes next is some of the more exciting stuff, controllers and object actions. And I can't wait to get down to it.