Open-source re-implementation of The Elder Scrolls: Arena.
Open-source re-implementation of The Elder Scrolls: Arena.
This is a modern open-source engine being written from scratch 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.
Enemies attack the player and give loot and experience when defeated. Items can be picked up, equipped, and dropped. Shopkeepers provide services like buying/selling items, renting tavern rooms, and curing diseases. Citizens wander around and can provide directions and talk about rumors. The player can fast travel to any world map location. Character creation is implemented except for class generation questions.
Plate item materials (Dwarven, etc.), potions/on-use items, quests, spells, and loading/saving are not yet implemented.
Windows
.zip.zip which creates an uncompressed eawpats foldereawpats folder into the OpenTESArena data folderMidiConfig in options/options-default.txtotesa.exealcOpenDevice() warningsoalinst.exeLinux (Debian-based)
Steam install
.tar.gzManual install
sudo apt-get install wget unzip rar
wget https://cdnstatic.bethsoft.com/elderscrolls.com/assets/files/tes/extras/Arena106Setup.zip
Replace with the latest build number (`#.##.#`) and with an architecture (x86-64, rpi4) available on the Releases page.
wget https://github.com/afritz1/OpenTESArena/releases/download/opentesarena-/opentesarena--linux_.tar.gz
tar xvzf opentesarena--linux_.tar.gz
cd opentesarena--linux_/data
unzip ../../Arena106Setup.zip
rar x Arena106.exe
.tar.gz which creates an uncompressed eawpats foldereawpats folder into the OpenTESArena data folderMidiConfig in options/options-default.txtcd ..
./run.sh
sudo apt-get install mesa-vulkan-driversmacOS
Steam install
.dmg and copy otesa.app to the Applications folder or another location you preferManual install
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.gz which creates an uncompressed eawpats foldereawpats folder into the Contents/Resources/data folder in otesa.appMidiConfig in options/options-default.txtApplications 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.
/AppData/Roaming/OpenTESArena/options/~/.config/OpenTESArena/options/~/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
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)-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:
Check out CONTRIBUTING.md for details on how to assist with development.
No open issues yet, or sync has not completed.