This is my submission to #LowRezJam 2016. I was totally unprepared and started this from scratch in the early hours of the morning on April 1, 2016. To design a whole game and game engine as complex as this from the ground up in 2 weeks on my own was a little over-ambitious, but I'm going to continue to develop it into a finished game.
I was designing games in the 70s and 80s when gameplay was modeled around the pixel-resolution of the devices you were coding on, such as PowBall DeluXe. After a 20 year break from game design I had to re-wire my brain to catch-up with modern game design techniques. When I recently made my "debut" game PowBall Renaissance, I had to think about virtual game areas that are scaled to an undefined screen resolution using vectors. Now, in a bizarre back-peddle, I have to rewind and think in terms of pixel-based game areas. Mind blown!
So, working into the early hours (I eventually went to sleep at 5am), I've managed to emulate a scalable 64x64 pixel resolution and have started working on a proportional width bitmap font that works from a glyph sheet.
If you're wondering what happened to days 2 & 3; weekend life and family commitments happened. I did manage to squeeze in enough time to get the menu working though. My mind was preoccupied most of the weekend by an idea for an isometric 3D game world made up of dynamic pixels, which I put into practice in one day. It may not look like much, but the chairs represent 3D objects that are rendered using ray-tracing. When they game is in motion, these objects will move, interact and can be broken down to particles at pixel-level. I'm hoping this effect will come into play when there are fireballs, lightning, arrows and bricks flying all over the place.
Worked mostly under-the-bonnet on the 3D engine today (hereafter named Boxel Engine!) and got objects moving around an empty dungeon. If you pay close attention to how things move, you'll notice the objects aren't 2D sprites, but 3D matrices of pixels. Each time an object is moved, each pixel is tested against the game world, so that objects fit into gaps depending on their shape. Each pixel is also a material with unique properties. Physics for water , fire, sand, and countless other environmental factors are all possible.
I'm starting to panic a little at this stage, as I become aware that I should have some kind of functioning game, rather than just the engine. However, I didn't have the luxury of finishing a game before the jam even started; can someone explain to me how that is even possible?
Days 6 & 7
These past couple of days have been spent wrestling with the problems regarding matrices rotation and pixel collisions. Confused? So was I. I finally decided on a solution that will do for now and am on my way to something that looks somewhat like the start game dynamics now. I got the player character moving about and interacting with objects. Once I add weight to materials, the physics will behave a little more realistically.
Day (what day is it?!)
I've lost track of the days and what planet I'm on, and I'm still tweaking the "Boxel Engine". I've improved the ray-tracing engine and added deep gradient shadows (which really add a solidity and depth to everything), translucency (for water, smoke, etc), gravity, projectiles. Some day soon I will start making the actual game, but this is too much fun!
4 Days to go...
... and I still don't have an actual game yet. But I do have a flying dragon that shoots arrows out of his eyes, and a mass-based physics sandpit.
2 Days to go
Who needs a game anyway, when you have water physics with displacement?
2 Hours to go!
It's 5:30am and I have to admit defeat; there is simply not enough time to finish, considering the ambitiously large project, working alone, starting from scratch, building an engine, etc. By trying to rush development, I've actually made it worse, and it doesn't even work now. This is a classic example of how game development can't be rushed if you want a quality game. There is much to do to make this a viable game, so I'm going to continue polishing, debugging, optimizing, and adding stuff. I can see this engine being used for many different game ideas, including an RPG, so please do what you can to help kick-start this.
- Physics engine with density / force factors, and liquid / gas simulation.
- Pixel-perfect 3D collision detection.
- Ray-tracing with shadows and transparency (and planned reflections).
- Custom game engine built from scratch in-house.
- Actual gameplay.
- Material reactions (e.g. fire + water = steam).
- Score system.
- More objects.
- Selectable characters with unique attributes / powers.
- ... and loads more stuff.