0.15
This release overhauls the graphics code to more closely match the look of the original game. The renderer now also uses meshes, shaders, and draw calls normally found in an OpenGL or Vulkan engine.
Overall FPS is below average due to draw calls not being batched yet and the rasterizer being relatively unoptimized (it was very challenging to reliably coax all compilers to output good assembly, so there is still room for improvement). One optimization of interest however is the addition of a voxel quadtree for efficiently testing visibility to the camera.
Release video is here.
New features and changes
- New 3D software renderer
- Closely matches original game's 256 color lighting (special thanks to @Carmina16)
- Improved Arena data files detection (now checks default C: Steam install on Windows)
- Added exclusive fullscreen option
- Added tall pixel correction option
- Initial work on player attributes (@gazorpo)
- Improved screenshot saving
- Minor change to player movement to match original game
- ARM64 macOS support
- Replaced debug collision option with ghost mode that allows flying
- Replaced DebugFast build config with ReleaseGenericNoLTO
- Removed time scale option
Fixes
- Fixed fog color in Elden Grove and Murkwood
- Fixed Ria Silmane voice not continuing in CD version
- Fixed floor replacement texture when deleting voxels
- Upgraded to SDL 2.0.10 to fix periodic lag caused by SDL_PollEvent()
Known issues
- Collision detection is barebones and will be improved in a later release
- Puddles are unusually expensive to render due to naïve draw call synchronization
- Puddles might not reflect entities in an adjacent chunk
- Exterior textures and sky don't update to match weather after entering and exiting an interior
- Screen-space fog is not finished and appears as a low-res cube around the player
- Some building names and interiors don't match original game