2 Articles

The Lenzmaker Project


Lenzmaker Project is a Game Engine project geared toward creating vast open game worlds with procedural content.

Platforms: Cross platform (Windows, Linux, Android – Working on it. ūüôā )

Written with: C/C++, OpenGL/GLSL, wxWidgets, DirectSound(Windows), OpenAL(Linux),  Python(Blender addons)

Architectural pattern: Interface-based programming.

API Documentation:






The beginning

Somewhere around year 2006, I embarked the journey for a game project, the development plan included both game as well as the game engine.¬† Using a third party engine was not in my plan as¬†most of the commercial engines were not affordable for me during that time.¬† The free and the open source ones were good, since they are open source I had no idea when the authors of these frameworks discontinues their work.¬† Some of these Engines comes up with GPL license, integrating which may attract trouble at the time we bring it into the market as a commercial product.¬† Other than this legal stuff, what motivated me to write a game engine from the scratch is that the freedom it gives us to customize the source code according to the needs.¬† Almost all the commercial game engine’s are general purpose frameworks geared towards creating all genre¬†of games.¬† Having control over the whole thing let us specifically customize the required features at the fundamental level to create some stuff, probably an out of the box stuff like Minecraft or No Man’s Sky.¬† But writing things from scratch seems hard, time consuming, still its a thrilling experience.¬† However, adopting a 3rd party engine is an ideal choice when there is a tight “Time to market” constraints.¬† During the development phase, there were many situations I felt like quitting.¬† Once I quit and completely disconnected from it. Later, there were some wake up calls, and it put myself back on track.¬† If you wish to know the development effort required for writing your own game engine, then have a look at these posts on Quora and get demotivated ūüôā

There are people exists on earth who is aware of hardships of climbing mount Everest, still they find joy in accomplishing it.

Read More →

Stepping into the 3rd Dimension

teapot_shadedThis is an old story. During the initial days of my computer graphics experiments, I reinvented the projection technique of 3D graphics.  Being too much excited with the Wolfenstein3D game, I was really curious to know how John Carmack did it.  The dilemma was that I haven’t covered any computer graphics topics since then, it was really doubtful for me to make it possible under dos.  One of the interesting thing is, I used an analogy to evaluate a solution for this problem.  Its nothing but the working principles of human eye, a camera, a convex lens or a mirror.  All of them maps objects in the 3-Dimensional space into a flat surface.  So I went back to take a revisit to the Ray-Optics(Geometrical Optics) taught at school to derive a projection equation based on Lenses or Mirrors.

This a small trick illustrating how to create a 3d version of your 2d graphics functions such as DrawLine(x1, y1, x2, y2) , SetPixel(x, y, color).¬† Let the above two functions, have 3d version DrawLine(x1, y1, z1, x2, y2, z2) and SetPixel(x, y, z, color).¬† Obviously the 3d version has z coordinate.¬† It is a genuine question for a beginner what to do with the z value. Read More →