For the past two years I've been working on a game engine. It's a pure 2d game engine with an emphasis on realism, or what passes for it in a 2d environment. It's fully platform independent, only the low level hardware access requires a different implementation per platform.
I've put some movie clips on youtube that show a car racing prototype that was built with it and some tech demos.
In the final game there are going to be car racing sections as well as space shooter sections, but the main game will play something along the lines of Exile, a game I'm very fond of since I played it as a kid on the Amiga 500. What was nice about it was that it managed to create the illusion of a believable world, believable not because of fancy 3d graphics, but because of the way everything was connected to each other. It felt real.
My engine supports solids, liquids and gasses made up out of pointmasses which interact with each other realistically including transfer of heat. Hopefully the possibilities that this offers will make the game feel realistically interactive. For example you can heat up a liquid such that it vapourizes increasing the pressure on a valve that can the be launched to hit a block that is connected to a switch that opens a door.
When designing the levels I can supply scale factors for the SI system of units such that these make sense in relation to the level I'm designing so that all the derived quantities can also be expressed in real units that make sense. Which I think is very cool. It also means that different scales of gameplay can be made consistent. The spaceship demo shows larger quantities for the same units than the racing demo, because the scale is different. If you look closely you can see the spaceship 'parked' in the racing sections, it's big in relation to the car. And so a game can be made where the transitions between scales are not seamless but still consistent and believable, and a world can be created that feels huge.
The frame of reference of the physics simulation can move and rotate; Fictitious forces are then applied and gravity can be neatly expressed as an acceleration of the frame of reference. This allows for the level itself to be a huge moving structure like the inside of a spaceship or a large elevator. Or part of a planet.
Currently I'm finishing the lighting and then I'm going to create a space shooter demo with actual enemies!
After that I'm going to add an animation system that needs to blend in nicely with the physics system such that for example when a character jumps, there is a reciprocal force added to the platform beneath it.
I've also started experimenting with OpenCL because the physics needs to run on the GPU; It runs on the CPU now because I want it to be complete before I start optimizing. The framework was designed with hardware acceleration in mind from the very beginning, though.
When I have enough building blocks I'm going to create the Big Game, something that will have space shooter, racing and side scrolling Exile-like sections in there. And it will tell a grand tale of oppression, love, betrayal and shit blowing up!
And it will be done, when it's done. There are no deadlines. I'm just doing this for fun in my spare time.
Check out my youtube channel if you are interested and let me know what you think.