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.
No actual gameplay yet, but all locations and interiors can be accessed. Citizens wander around but can't be interacted with. Collision detection is barebones and needs work. Character creation works but class questions and player attributes are not implemented.
Controls:
- WASD - move and turn. Hold LCtrl to strafe.
- Esc - pause menu
- Tab - character sheet
- F - draw/sheathe weapon
- G - hold and click voxel to destroy
- L - logbook
- M - world map
- N - automap
- V - status
- F2 - player position
- F4 - debug profiler
- PrintScreen - screenshot
Windows
Download The Elder Scrolls: Arena on Steam
- Alternate downloads: GOG, Bethesda website
- Get latest Windows build
- Extract the
.zip
Copy game assets path (skip if Steam library is default C:\Program Files (x86)\Steam\steamapps\common\)
- In your Steam library, right-click The Elder Scrolls: Arena then select Manage -> Browse local files
- Open
ARENAfolder then highlight the current directory path and copy with Ctrl+C - Back in the OpenTESArena release folder, open
options/options-default.txtand paste the game directory afterArenaPaths=- Example:
ArenaPaths=C:\Program Files (x86)\Steam\steamapps\common\The Elder Scrolls Arena\ARENA
- Example:
- Download eawpats
- Extract the
.zip - Move the extracted
eawpatsfolder inside the OpenTESArenadatafolder- If you'd like a different sound patches library like OPL3, edit the value of
MidiConfiginoptions/options-default.txtso it points to the MIDI.cfgfile for that library
- If you'd like a different sound patches library like OPL3, edit the value of
- Missing MSVCP141.dll error
- Download and run latest X64 vc_redist.x64.exe from Microsoft
- No sound,
alcOpenDevice()warnings- Download OpenAL 1.1 Windows Installer (zip) and run
oalinst.exe
- Download OpenAL 1.1 Windows Installer (zip) and run
Linux (Debian-based)
sudo apt-get install wget unzip rarwget https://cdnstatic.bethsoft.com/elderscrolls.com/assets/files/tes/extras/Arena106Setup.zipReplace <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.gzcd opentesarena-<version>-linux_<arch>/data
unzip ../../Arena106Setup.zip
rar x Arena106.execd ..
./run.sh- Download eawpats
- Extract the
.tar.gz - Move the extracted
eawpatsfolder inside the OpenTESArenadatafolder- If you'd like a different sound patches library like OPL3, edit the value of
MidiConfiginoptions/options-default.txtso it points to the MIDI.cfgfile for that library
- If you'd like a different sound patches library like OPL3, edit the value of
macOS
- Get the full game from the Bethesda website
- Extract
Arena106Setup.zip Arena106.exeis a self-extracting RAR file. Use a tool such as The Unarchiver to extract it into a folder of data files
- Download the latest macOS build
- Open the
.dmgand copyotesa.appto theApplicationsfolder or another location you prefer - Right-click on the .app and choose "Show Package Contents"
- Navigate to
Contents/Resources/dataand copy in the files for Arena that you extracted earlier
- Return to the
Applicationsfolder or wherever you have the app installed and openotesa.app. If you have Gatekeeper turned on (the default for macOS), you will need to do the following:- Right-click on the app and choose "Open"
- In the warning that appears saying that it is from an unidentified developer, choose "Open"
- The app will start. In the future, you can just double-click on the app without having to go through these steps
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/
- CMake
- OpenAL Soft 1.19.1
- SDL 2.0.10
- WildMIDI 0.4.4 (required for music)
Example Unix terminal commands on a fresh machine:
sudo apt-get install git g++ cmake libsdl2-dev libopenal-dev libwildmidi-dev- Navigate to the root of the repository
- Use CMake to generate your project file (Visual Studio .sln, Unix Makefile, etc.). In a Unix terminal, the commands might look like:
where
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=<?> .. make -j8
CMAKE_BUILD_TYPEis one ofDebug|ReleaseGenericNoLTO|ReleaseGeneric|ReleaseNative- For maximum compatibility, use
ReleaseGeneric - For maximum speed only compatible with your specific CPU, use
ReleaseNative
- For maximum compatibility, use
- Other parameters for CMake may be necessary depending on the IDE you are using
- Copy the
dataandoptionsfolders from the project's root folder to the same directory as the game executable (this should be fixed in the future with a post-build command) - Make sure that
MidiConfigandArenaPathsin the options file point to valid locations on your computer (i.e.,data/eawpats/timidity.cfganddata/ARENArespectively)
Other guides:
Check out CONTRIBUTING.md for details on how to assist with development.
- Unofficial Elder Scrolls Pages - a great resource for information about Arena
- Various tools like WinArena and BSATool for browsing Arena's assets
- The Elder Scrolls: Arena manual