Giter Club home page Giter Club logo

opentesarena's Introduction

OpenTESArena

GitHub release Build Status MIT License Discord YouTube Channel Views

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.


Preview

Current status

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

Playing OpenTESArena

Windows

Download OpenTESArena

  1. Get latest Windows build
  2. Extract the .zip

Copy game assets path (skip if Steam library is default C:\Program Files (x86)\Steam\steamapps\common\)

  1. In your Steam library, right-click The Elder Scrolls: Arena then select Manage -> Browse local files
  2. Open ARENA folder then highlight the current directory path and copy with Ctrl+C
  3. Back in the OpenTESArena release folder, open options/options-default.txt and paste the game directory after ArenaPaths=
    • Example: ArenaPaths=C:\Program Files (x86)\Steam\steamapps\common\The Elder Scrolls Arena\ARENA

Run OpenTESArena.exe

Music (optional)

  1. Download eawpats
  2. Extract the .zip
  3. Move the extracted eawpats folder inside the OpenTESArena data folder
    • If you'd like a different sound patches library like OPL3, edit the value of MidiConfig in options/options-default.txt so it points to the MIDI .cfg file for that library

Common issues

Linux (Debian-based)

Download packages

sudo apt-get install wget unzip rar

Download The Elder Scrolls: Arena from Bethesda website

wget https://cdnstatic.bethsoft.com/elderscrolls.com/assets/files/tes/extras/Arena106Setup.zip

Download OpenTESArena

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

Extract game assets

cd opentesarena-<version>-linux_<arch>/data
unzip ../../Arena106Setup.zip
rar x Arena106.exe

Run OpenTESArena

cd ..
./run.sh

Music (optional)

  1. Download eawpats
  2. Extract the .tar.gz
  3. Move the extracted eawpats folder inside the OpenTESArena data folder
    • If you'd like a different sound patches library like OPL3, edit the value of MidiConfig in options/options-default.txt so it points to the MIDI .cfg file for that library
macOS

Download The Elder Scrolls: Arena

  1. Get the full game from the Bethesda website
  2. Extract Arena106Setup.zip
  3. Arena106.exe is a self-extracting RAR file. Use a tool such as The Unarchiver to extract it into a folder of data files

Install OpenTESArena

  1. Download the latest macOS build
  2. Open the .dmg and copy OpenTESArena to the Applications folder or another location
  3. Right-click on the app and choose "Show Package Contents"
  4. Navigate to Contents/Resources/data and copy in the files for Arena that you extracted earlier

Run OpenTESArena

  1. Return to the Applications folder or wherever you have the app installed and open OpenTESArena. If you have Gatekeeper turned on (the default for macOS), you will need to do the following:
    1. Right-click on the app and choose "Open"
    2. In the warning that appears saying that it is from an unidentified developer, choose "Open"
    3. The app will start. In the future, you can just double-click on the app without having to go through these steps

Options files

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/

Building OpenTESArena from source

Dependencies

Example Unix terminal commands on a fresh machine:

sudo apt-get install git g++ cmake libsdl2-dev libopenal-dev libwildmidi-dev

Building OpenTESArena

  • 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:
    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=<?> ..
    make -j8
    where CMAKE_BUILD_TYPE is one of Debug|ReleaseGenericNoLTO|ReleaseGeneric|ReleaseNative
    • For maximum compatibility, use ReleaseGeneric
    • For maximum speed only compatible with your specific CPU, use ReleaseNative
  • Other parameters for CMake may be necessary depending on the IDE you are using

Running OpenTESArena

  • Verify that the data and options folders are in the same folder as the executable. If not, then copy them from the project's root folder (this should be fixed in the future with a post-build command)
  • Make sure that MidiConfig and ArenaPaths in the options file point to valid locations on your computer (i.e., data/eawpats/timidity.cfg and data/ARENA respectively)

Other guides:

Contributing

Check out CONTRIBUTING.md for details on how to assist with development.

Resources

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.