OpenTESArena is a C++ rewrite of Arena's game engine that has been in development by Afritz1 since at least 2016. It is written in C++17 and uses SDL2 for cross-platform video, WildMIDI for music, and OpenAL Soft for sound and mixing. There is currently support for Windows, Linux, and macOS. The engine is still in early pre-alpha and is not stable or playable enough for the majority of people to try out. Over time, several people have contributed to the project in various ways, including:
- OpenAL Soft and WildMIDI audio integration
- Original game data format documentation and decompressing. Currently, the engine is able to understand nearly all of the original game's data formats.
- PKLITE executable unpacking
Early on, the engine had a very experimental GPU ray tracer but it was removed due to various performance and maintainability factors such as NVIDIA not supporting newer versions of OpenCL in their drivers, and the fact that OpenCL is not a high-performance graphics API. Eventually, Afritz chose to make a software renderer instead for novelty and ease of prototyping, with the intention that it would become a viable way to play the game at modern resolutions.
- Distinct focus on engine and tech before gameplay. It is predominantly an engine with focus is on 64-bit executables for Windows, Linux, and macOS.
- New renderer written from scratch
- Support the floppy disk version and CD version of the game data (must be installed on the player's hard drive)
- Match or otherwise closely approximate most of the original game's features
- Quality of life improvements such as an options menu, mouse-look, adjustable field of view, and fixing severe bugs found in the original game
- Unlimited resolution, anywhere from 320x200 to 3840x2160 and beyond
- Support loading the original game's saves
- Have the software renderer, which is currently a 2.5D ray caster, achieve 60 fps at 1920x1080 on mid- to high-end (~8 core) CPUs and 3840x2160 on very high-end (~16 core) CPUs
There are currently no plans for big new features like a scripting engine or multiplayer, and more fleshed-out modding support is being deferred until after the engine is mostly feature-complete.