An all-new game engine written in C++; based on the NipSys64 framework I'm working on. This is a retro-gaming oriented 3D engine for indie development. The map format is sector-based like good ol' Build engine, but it evolves its ideas far beyond with a ton of new features like heightmaps, fast multiple reflections, HDR, lightmaps, voxels and proposed pixel-precise collision detection, as well as native multithreading support. Supporting a variety of rendering techniques (not being limited to just flat polygons), the engine also doesn't use Z-buffer, using span records instead, what makes rendering very fast even in pure software. Having a high degree of module integration and transparency between engine parts, Brahma engine is flexible and adjustable to any needs. With it, one can create very dynamic games with an oldschool look and feel.

Now a working prototype is being developed which features a software renderer inspired by Ken Silverman's Build engine, brought to the screen by the legacy Windows API, but next iterations will bring even more capabilities and speed through integration with CUDA, Direct2D, ASIO and other powerful APIs.

The reason behind this engine

I've always dreamed of making computer games powered by my own 3D engine. I've been learning programming since early 2000's, my first attempts were pointless garbage, but since I moved my development to Visual C++, things have changed a lot. I've always liked Build engine games like Duke Nukem 3D and Shadow Warrior and wanted to create something similar independently using my technology which has made a start in 2013.

Engine progress

In early 2018, I've learned how to scan sector-based maps like in Build engine, and began experimenting with various CPU-based rendering techniques. As a result, in terms of visuals my engine extends far beyond DOS Build capabilities, allowing for true flat reflections, sector over sector, vertical look, anti-aliasing, a limited form of HDR rendering and a lot more neat things. And with the multithreading support, the engine easily surpasses Build's performance on many-core processors. I'm still yet to do the physics part and proper 3D sound though.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

What is hybrid temporal-spatial anti-aliasing?

For 120+ Hz display devices, Brahma engine offers a very efficient anti-aliasing solution called 4xTSAA. Owing to subpixel precision of engine's geometry rasterization, we can shift entire frame by a fraction of pixel in any direction. Doing this and varying the direction on time basis, quickly shifting between four states, we can attain a smoother look with virtually NO performance penalty. The framerate must be stable though and perfectly vertically-synchronized.

Recently I've bought a 144 Hz Full HD gaming monitor to test my engine on high refresh rates and 1080p resolution. Having 144 Hz opens a whole new world of rasterization, since pixels now can flicker so fast that it becomes unnoticeable. 4xTSAA is based on this phenomenon and resembles the near-forgotten interlaced scan, but with modern tech brings to whole new level, giving effectively 4K appearance on an ordinary Full HD screen, coupled with a higher refresh rate!

Unfortunately, so far I don't have a support for a high-quality output API which consistently does not skip rendered frames. I gave the engine a test with the Direct2D API, but this didn't solve occasional stuttering (frame skipping), causing other problems instead, so now I'm stuck with the legacy GDI output I've been using since 2006, emulating vsync with timers (which, however, is reasonably fast and offers maximum compatibility). Still I'm in a need of perfect vsync without any stuttering.

Brahma 4xTSAA field sampling diagram

When rendering an anti-aliased scene, frames are organized into four 'fields' cycling quickly with slight sampling shift for each field, creating the impression of a static anti-aliased picture if cycling is fast enough. This also removes the need for anisotropic texture filtering, since whole scene is anti-aliased. The sampling pattern is optimal for a raster display, since the samples have evenly spaced X and Y offsets, effectively raising resolution by a factor of four.

4xTSAA field sampling diagram

Comments
SPY-maps
SPY-maps

Awesome to still see progress of your work, please know that i still watch each update and or screen that you post here! Maybe one day a video would be nice?

greetings,
Leon

(am mapping these days with Ion Fury, as you probably know, a Build game)

Reply Good karma Bad karma+1 vote
punpcklbw Creator
punpcklbw

Thank you, Leon!
I was actively working last month, brought in some new features, such as animations. Still I should take my time to optimize things a bit and fix some minor issues. Perhaps I'll be able to release a tech demo of my engine soon.
I tried to capture a long video recently. I'd wish to make a presentation with a good narrative, it will require some planning though.

Reply Good karma+1 vote
SPY-maps
SPY-maps

Wow, the last half hour i have been reading and watching this page and your companies profile page here on Moddb and i have to say that i am really very impressed. As you was i in 2000 a big fan of the buildengine and all games that were released on it. Or not really all, but at least Duke 3D, Shadow Warrior and Nam. And from that time on i dreamed about making my own game in the form on Duke or Shadow Warrior, ofcourse the Buildengine version although the 2 later released games were also great fun. Over the last 18 years or so i have been modding with a lot of new games, as level designer mainly. But it did start all with the Buildengine. 2 years ago i looked in to finally making my own indie game, even did contact Ken Silverman. And he answered he could sell the engine for a few hundred dollars for making one commercial game, but he was so honest to tell me that it was best NOT to do so. Mainly because it doesn't run well anymore on the new Windows. And he didn't feel anything for it to work on the old engine again. But just now, when i found your work here, i immediately felt that old feeling again of wanting to work with a engine like this. Ofcourse did it help a lot that you used old Duke assets, lol.

It would take at least 3 years of daily work to make a indie game, and your engine is probably not ready for that. But, i just wanted to contact you and to let you know that i will be following your work from now on, and maybe we can work ones together. Should you want to see any of my level design work then please just look under Addons and Mods on my profile site.

Leon

Reply Good karma Bad karma+2 votes
punpcklbw Creator
punpcklbw

You're welcome, sir! Feel free to visit the forum, although it has only one thread so far. Are you planning to make commercial indie games? You'll probably will be able to use my engine within a year. I need to code in physics and 3D sound and release some tech demo to gain attention.

Reply Good karma+1 vote
SPY-maps
SPY-maps

I have visited your forum, was interesting to see how you added each day something new at the beginning of this year. It is really great that you want to add physics because these days engines really need that, Buildengine really did miss that. I am tracking your engine here, and your profile for that matter. So each time you place a new article, screen, video or whatever i will be notified about it. So i will keep on track with your progress. To answer your question, when i finally start working on a indie game then that will be a commercial one. It takes way to much time to just do that as hobby, also have i made tons of mods and mappacks over the years as a hobby. Feel i have a bit outgrown that stage.

Much success,
Leon

Reply Good karma Bad karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Platforms
Windows
Company
NIP Labs
Contact
Send Message
Licence
Proprietary
Release date
Engine watch
Follow
Share
Embed Buttons
Link to Brahma by selecting a button and using the embed code provided more...
Brahma
Statistics
Rank
81 of 954
Last Update
Watchers
4 members
Articles
1
You may also like
Unreal Engine 2
Unreal Engine 2 Commercial
Unity
Unity Commercial
Raycasting Game Maker
Raycasting Game Maker Public Domain
M.U.G.E.N
M.U.G.E.N GPL
S2ENGINE HD
S2ENGINE HD Commercial
X-Ray Engine
X-Ray Engine Commercial