Browse by type
This is an in-progress modern open-source engine for the 1994 DOS game The Elder Scrolls: Arena by Bethesda Softworks. The goal is to replicate all aspects of the original game with a clean-room approach while making quality-of-life changes along the way. Details on Arena's inner-workings can be found in the wiki. No game assets are distributed.
Player movement is nearly feature-complete - currently you can jump, climb out of chasms, and swim, but stairsteps are unsolved. Enemies can be killed but their AI is not yet implemented. Items in containers can be picked up and found in the player's inventory but cannot be equipped yet. All world map locations are implemented and the player can fast travel to them. Citizens wander around and have their names generated but conversations are not yet implemented. Character creation is mostly implemented except for class generation questions.
Windows
.zipC:\Program Files (x86)\Steam\steamapps\common\)ARENA folder then highlight the current directory path and copy with Ctrl+Coptions/options-default.txt and paste the game directory after ArenaPaths=ArenaPaths=C:\Program Files (x86)\Steam\steamapps\common\The Elder Scrolls Arena\ARENA.zipeawpats folder inside the OpenTESArena data folderMidiConfig in options/options-default.txt so it points to the MIDI .cfg file for that libraryotesa.exealcOpenDevice() warningsoalinst.exeLinux (Debian-based)
sudo apt-get install wget unzip rar
wget https://cdnstatic.bethsoft.com/elderscrolls.com/assets/files/tes/extras/Arena106Setup.zip
Replace <version> with the latest build number (#.##.#) and <arch> with an architecture (x86-64, rpi4) available on the Releases page.
wget https://github.com/afritz1/OpenTESArena/releases/download/opentesarena-<version>/opentesarena-<version>-linux_<arch>.tar.gz
tar xvzf opentesarena-<version>-linux_<arch>.tar.gz
cd opentesarena-<version>-linux_<arch>/data
unzip ../../Arena106Setup.zip
rar x Arena106.exe
.tar.gzeawpats folder inside the OpenTESArena data folderMidiConfig in options/options-default.txt so it points to the MIDI .cfg file for that librarycd ..
./run.sh
sudo apt-get install mesa-vulkan-driversmacOS
Arena106Setup.zipArena106.exe is a self-extracting RAR file. Use a tool such as The Unarchiver to extract it into a folder of data files.dmg and copy otesa.app to the Applications folder or another location you preferContents/Resources/data and copy in the files for Arena that you extracted earlier.tar.gzeawpats folder inside the same Contents/Resources/data folder in otesa.appMidiConfig in options/options-default.txt so it points to the MIDI .cfg file for that libraryApplications folder or wherever you have the app installed and open otesa.app. If you have Gatekeeper turned on (the default for macOS), you will need to do the following:options-changes.txt is created in your user prefs folder the first time OpenTESArena runs and stores values that differ from the ones in options-default.txt.
- Windows: <username>/AppData/Roaming/OpenTESArena/options/
- Linux: ~/.config/OpenTESArena/options/
- macOS: ~/Library/Preferences/OpenTESArena/options/
Linux (Debian-based)
sudo apt-get install git g++ cmake libsdl2-dev libopenal-dev libvulkan-dev libwildmidi-dev
macOS
The Vulkan SDK from the LunarG website provides MoltenVK which is necessary for running Vulkan on macOS. Make sure to select System Global Installation in the SDK installer. If you try running without MoltenVK, you may get a VK_KHR_surface error on startup.
git clone https://github.com/afritz1/OpenTESArena
cd OpenTESArena
bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=? ..
make -j8
where CMAKE_BUILD_TYPE is one of:DebugReleaseGenericNoLTO - typical development/testingReleaseGeneric - release build for general audience, uses your CPU architecture (x86-64, ARM64)ReleaseNativeNoLTO - ReleaseGenericNoLTO with better CPU instructionsReleaseNative - max performance compatible only with your exact CPU (equivalent to -march=native)OFF in CMake (more information)
bash
-DUSE_SSE4_1=OFF -DUSE_SSE4_2=OFF -DUSE_AVX=OFF -DUSE_AVX2=OFF -DUSE_AVX512=OFF -DUSE_LZCNT=OFF -DUSE_TZCNT=OFF -DUSE_F16C=OFF -DUSE_FMADD=OFF-DUSE_AVX512=ON to CMake for improved performanceCMAKE_BUILD_TYPEMidiConfig and ArenaPaths in options/options-default.txt point to valid locations on your computer (i.e., data/eawpats/timidity.cfg and data/ARENA respectively)otesa binarysoft_oal.dll must be renamed to OpenAL32.dll. A post-build command will fix this eventuallyOther options: - Automated install & build using Visual Studio/CMake/Git/vcpkg (Windows) - Building with Visual Studio (Windows) - Building with MSYS2 (Windows)
Check out CONTRIBUTING.md for details on how to assist with development.
$ claude mcp add OpenTESArena \
-- python -m otcore.mcp_server <graph>