3.10 is largely fixing bugs and some quality of life improvements, but we also wormed some new features in. It's not exhaustive a list(that'll come with the changelog for the release) but here's some highlights for 3.10:
- Added MacOS support
- Updated some of the libraries, like bullet, vorbis, png, and recast
- Various fixes to D3D11 and OpenGL, which help stability and performance
- Ipv6 support
- OpenAL-Soft audio support(better than the old OpenAL)
- Replaced OpenGl's epoxy with GLAD, which is cleaner and simpler for building out the GL feature list.
- OpenVR support, which allows you to use the Vive
- Hardware Skinning support
- A bunch of fixes and tweaks to lighting stuffs to make it all play better with the linearized lighting
And as said, a crazy number of other fixes and tweaks aside from these(So far, we have 105 PRs merged in for 3.10, with a few that'll go in before release yet)
For 4.0, it'll be a pretty gigantic update and improvement in a lot of areas. I'd suggest poking through my workblog thread for some ideas on stuff I've been working on my side of it in line with it all. Important highlights are:
- Dropping D3D9, allowing us to modernize the GFX stuff for OpenGL and D3D11, which should help bring a lot of performance improvements and new features like compute shaders down the line
- Full switchover to a linear color system, specifically utilizing sRGB textures internally, which are a) better performing because the hardware does the dirty work, and b) all colors to be very consistent and correct across platforms and tools/workflow.
- PBR(Physically Based Rendering) for the primary material lighting model. This will allow materials to look much more realistic, and have far, far better integration with modern toolsets with less effort.
- Updates to HDR and tonemapping, which will perform better, look better, and behave a lot more consistently.
- Hardware PCF shadows, which will look nicer AND run faster
- A drastically slimmed down gBuffer, which will help the engine run better on older hardware
- A new base template that has all the cruft trimmed out, so it's easier to use, change and loads faster.
- The new template will also heavily utilize the new Module/Assets system, as well as make the Entity/Components system the standard for game classes. The huge monolith classes like Shapebase will be deprecated, and down the line removed. This will MASSIVELY help cut back on iteration and testing time, allowing people to focus on gamedev rather than fussing.
- Updating the stock Torque physics to hook through the Physics abstraction API, so game code is consistent regardless of if you use, Torque's physics, Bullet, or PhysX
- Drastic improvements and updates to the tools and editor suite, including visual editing of shaders, state machines, more benchmarking tools, etc.
- Shift all the platform code to utilize SDL, letting us get rid of a lot older, platform-specific code and make things a lot more consistent
- Big expansion on included starting examples, as well as better documentation and tutorials.
- Code cleanup, including making sure files are adhering to the coding guidlines, and removing a lot of unwanted cruft, excessive includes which drag down compile times, and not-errors-but-not-right code which can cause bugs and irregular behavior, which should help stability of the engine across the board.
I think that covers the major highlights of what the plan for 4.0 covers. I said earlier I'm working on a proper Roadmap/Master Thesis breakdown of the plan for 4.0, and thankfully while that list looks daunting, a huge amount of the above is either actually done, or rather far along already, just waiting for us to get 3.10 out the door so we can start merging stuff in.
Lemme know if you have any other questions