General thoughts on enhancements

Wrote this on github, decided it’s better to post here.

I’ve been messing with the OGL2 rendering and find the rendering capable with some minor issues, despite the issues I’m impressed with how far ioq3 has come over the years. I’m going through the code to see if I can make some changes. Some plans, ideas and things in progress. Let me know if there are any concerns or objections or suggestions.

I’ll have my fork up on github soon, just note I’m using Cmake for my project with some file/folder restructure.
Base custom assets will be included in the repo, the PBR texture overhaul most likely will go on moddb.

Cubemaps not merging or clamping correctly with other surfaces on the neighbour brushes and cubemap output images having weird positions to the scene. Maybe a dynamically updated cubemap probe on the player which updates the reflections, not sure how expensive that will be.

SSAO rendering on top of fog and transparent surfaces. Not sure if a depth issue, tried changing some things, but ended up breaking the depth buffer, will have to study the rendering some more.

PBR images, adding support for RGBA channel packed textures to save on asset size and memory use. Still need to study the material system. Wrote a small cli app in C to take in roughness, metallic, heightmap and ambient occlusion maps and pack them to a image in that order. Possibly an alternative material system to make workflow easier with Blender BRDF material.

Fog with 3D Textures to add more atmosphere instead of the plain solid looking fog.

Water enhancement, I feel their would be more tension underwater if it has some fog or murkiness to obscure player vision.

Skybox enhancements, the sun is way too big, still looking where to change the size. Add HDR environment support to give lighting to the scene. Also another option is dynamic sky with day/night cycle and particle based clouds.

Adding gltf2 model support since I’m always fighting with MD3 addons when Blender updates break older scripts.

Modernizing the particles to look realistic and behave realistically.

A clean modern menu system overhaul. I think the user experience can be improved with less navigation time and cleaner graphics. I’ve updated the code to use a higher resolution font sheet and have made a template in Affinity Designer create new sheets.

1 Like

The ioQuake 3 codebase has a navigable structure that is relatively easy to comprehend. However, it might be beneficial to investigate replacing the platform code with a more efficient alternative such as QT or ImGui for cross-platform development purposes. Furthermore, I am considering implementing new tools similar to those found in the editor of Doom 3, but with a modernized approach, such as Trenchbroom, as opposed to the outdated Radiant editors.

It is also worth exploring the potential advantages of rewriting the engine using C++, taking advantage of the latest features from C++17 and beyond. A rewrite would provide ample opportunities to introduce additional libraries such as Assimp, which can handle more models and facilitate a shift towards SDL3. It is worth noting that ImGui has an existing implementation for SDL3 that can serve as a robust foundation for further development.

Post deleted as it was on wrong thread.