vbstudio.hu

Time to Actually Make a Game

I keep doing the mistake of constantly raising my ambitions, keeping my goals just out of reach each time. This is the reason why I have so many interesting concepts and implementations but not a single finished game utilizing them.

This is of course not about CREY, that's an entirely different story. I can make simple games with that, but my ultimate goal is to do everything from scratch, so I can have full control over every aspect of the game: engine code, scripting, graphics, sound.

  • I have my Codename Z project using software rendering in C#, but it was always more like an interesting challenge than a viable basis for a commercial game.
  • I have my 3D voxel project from 3 years back with a unique voxel implementation, which I even wrote an article on, the engine was abandoned in favor of a better engine which was also abandoned due to lack of time.

I want to finish these eventually, but I also want to have some kind of result, a fully finished game that I could look back on, not just some tech demos.

Time to step back a bit, set a fixed goal, and not go beyond that until I have reached it.

The New Idea

Not too long ago I have stumbled upon this raytracing awesomeness [1] by a guy named Reinder Nijhoff. OMG, right? Wolfenstein 3D is my all-time favorite, I still play it today. My Codename Z game was actually built on the idea of Wolfenstein 3D, using the same raycast technique to render the scene, but with added extras like lights, shadows, denser voxels, particles and textured floor and ceiling.

This was when I realized that this is it! When I moved away from the 2.5D world in favor of 3D voxels, I have left behind lots of almost finished stuff.

I have...

  • My only ever working, realistic looking and very performant water simulation that I have scrapped because I couldn't figure out how to make it work on a non-flat terrain.
  • My procedural generation sandbox for 2D maps. I got to the point of having pre-made rooms randomly placed, connected with hallways, and I have a walk-graph that I can use to figure out enemy, mission item and pickup placements.
  • Pixel graphics. Smooth voxel surfaces and pixelated textures don't mix well and I'm not a graphic artist. Pixel graphics was the only style in which I could actually make something that looked good.

Besides, 2D is much simpler for any AI related stuff, and I want to have some experience with this first, before I move to the next level.

So to break up with the Duke Nukem Forever development routine [2], I'm going to concentrate on just these goals. I already have some progress in recreating the fancy raytraced 2.5D engine, with even a few improvements! I added the water simulation with raytraced reflections, and soon I will go all out on AI and procedural generation! (finally)

My Progress So Far

Here is my progress so far (with caption commentary):

References

  1. Wolfenstein: Ray Tracing On using WebGL1 by Reinder Nijhoff
  2. Development of Duke Nukem Forever - Wikipedia