All Projects → afritz1 → Opentesarena

afritz1 / Opentesarena

Licence: mit
Open-source re-implementation of The Elder Scrolls: Arena.

Labels

Projects that are alternatives of or similar to Opentesarena

Openapoc
Opensource rebuild of the XCOM Apocalypse Engine that requires the original files to run.
Stars: ✭ 344 (-37.34%)
Mutual labels:  sdl2
Simple2d
🎮 Simple, open-source 2D graphics for everyone
Stars: ✭ 390 (-28.96%)
Mutual labels:  sdl2
Introtodeeplearning
Lab Materials for MIT 6.S191: Introduction to Deep Learning
Stars: ✭ 4,955 (+802.55%)
Mutual labels:  mit
Doomretro
The classic, refined DOOM source port. For Windows PC.
Stars: ✭ 349 (-36.43%)
Mutual labels:  sdl2
Libsdl2pp
C++11 bindings/wrapper for SDL2
Stars: ✭ 385 (-29.87%)
Mutual labels:  sdl2
Citgm
Canary in the Gold Mine
Stars: ✭ 405 (-26.23%)
Mutual labels:  mit
Desktopsharing
桌面共享, 支持RTSP转发, RTSP推流, RTMP推流。
Stars: ✭ 337 (-38.62%)
Mutual labels:  sdl2
Openloco
An open source re-implementation of Chris Sawyer's Locomotion
Stars: ✭ 504 (-8.2%)
Mutual labels:  sdl2
Basque
A top-down 2d game engine, written from scratch in under 1000 lines of C. Development of the game based on this engine is streamed on Twitch: https://www.twitch.tv/ryanpcmcquen
Stars: ✭ 388 (-29.33%)
Mutual labels:  sdl2
Cdogs Sdl
Classic overhead run-and-gun game
Stars: ✭ 422 (-23.13%)
Mutual labels:  sdl2
Godot Platformer 2d
2d Metroidvania-inspired game for the 2019 GDquest Godot Kickstarter course project.
Stars: ✭ 365 (-33.52%)
Mutual labels:  mit
Leopotamgrouplibraryunity
Tools library for unity 3d game engine: animator graph helpers, serialization (json), localization, event routing (eventbus, ui actions), embedded scripting, uGui xml markup, threading, tweening, in-memory protection and other helpers (pure C#)
Stars: ✭ 373 (-32.06%)
Mutual labels:  mit
Dosbox Staging
DOS/x86 emulator focusing on ease of use
Stars: ✭ 412 (-24.95%)
Mutual labels:  sdl2
Myra
UI Library for MonoGame, FNA and Stride
Stars: ✭ 348 (-36.61%)
Mutual labels:  mit
Playerdemo
一个视频播放器,开源版 potplayer ,用于总结播放器开发技术。
Stars: ✭ 491 (-10.56%)
Mutual labels:  sdl2
Vangers
The video game that combines elements of the racing and role-playing genres.
Stars: ✭ 339 (-38.25%)
Mutual labels:  sdl2
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (-28.42%)
Mutual labels:  sdl2
Nodegit
Native Node bindings to Git.
Stars: ✭ 5,022 (+814.75%)
Mutual labels:  mit
Nestur
The NES (emulator) you left outside in the rain but let dry and still kind of works
Stars: ✭ 505 (-8.01%)
Mutual labels:  sdl2
Cc
一个基于angular5.0.0+ng-bootstrap1.0.0-beta.8+bootstrap4.0.0-beta.2+scss的后台管理系统界面(没基础的同学请先自学基础,谢谢!)
Stars: ✭ 416 (-24.23%)
Mutual labels:  mit

OpenTESArena

This open-source project aims to be a modern engine re-implementation for "The Elder Scrolls: Arena" from 1994 by Bethesda Softworks. It is written in C++17 and uses SDL2, WildMIDI for music, and OpenAL Soft for sound and mixing. There is support for Windows, Linux, and macOS.

Current status Build Status

No actual gameplay yet, but all locations and interiors can be accessed for testing. Citizens wander around cities and the wilderness but cannot be interacted with. Fast traveling works and you can go to any city or dungeon on the world map. Collision detection is barebones (just enough for playtesting) and needs work. Character creation works but character questions and player attributes are not implemented. Some of the in-game interface icons work; for example, left clicking the map icon goes to the automap, and right clicking it goes to the world map.

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

Preview

Project Details

Inspired by OpenXcom and OpenMW, this started out as a simplistic ray tracing tech demo in early 2016, and is now steadily inching closer to something akin to the original game. I am using a clean-room approach for understanding Arena's algorithms and data structures, the details of which can be found in the wiki. It is a behavioral approximation project, not about matching machine instructions, and quality-of-life changes are made where they make sense.

There are two versions of Arena: the floppy disk version (which Bethesda released for free) and the CD version. The user must acquire their own copy of Arena because OpenTESArena is a standalone engine and does not contain content.

OpenTESArena is MIT-licensed.

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

Installation

If you would like music played in-game, see Music setup below. The engine uses ArenaPath and MidiConfig from the options file to find where the game files and MIDI config are.

Windows

  • Get the most recent build from the releases tab.
  • Download the Full Game from the Bethesda website, or get the CD version from somewhere such as GOG.
  • Extract Arena106Setup.zip and run Arena106.exe.
  • Pick a destination folder to install into. This can be anywhere on your hard drive or in the OpenTESArena data folder.
  • Open options-default.txt in the options folder and change ArenaPath to where you put the ARENA/ARENACD folder.
  • Run OpenTESArena.exe.

If you see an error about missing MSVCP141.dll or similar, download and run the Visual C++ Redistributable Installer for Windows:

  • 64-bit (recommended): vc_redist.x64.exe
  • 32-bit: vc_redist.x86.exe

If you see a warning about alcOpenDevice() failing, or there is no sound, download the OpenAL 1.1 Windows Installer and run oalinst.exe.

macOS

Get the data files for The Elder Scrolls: Arena

  • Download the Full Game from the Bethesda website.
  • Unzip Arena106Setup.zip
  • 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

  • Download the most recent build from the releases tab.
  • Open the .dmg and copy OpenTESArena to the Applications folder or another location
  • Right-click on the app and choose "Show Package Contents"
  • Navigate to Contents/Resources/data and copy in the files for Arena that you extracted earlier
  • 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:
    • 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.

Linux (Ubuntu 16.04)

Substitute <version> with the current version number (0.#.0), and <arch> with the desired architecture (32 or 64).

sudo apt-get install wget unzip rar
wget https://cdnstatic.bethsoft.com/elderscrolls.com/assets/files/tes/extras/Arena106Setup.zip
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
cd ..
./run.sh

Options files

options-default.txt comes with releases and stores default settings. options-changes.txt is generated in your user prefs folder and stores user-specific settings, and you can either create it yourself or let the program create it. For now, you can change things like ArenaPath in options-default.txt, but in the future, a wizard will take care of this instead. The prefs folders are:

  • Windows: <username>/AppData/Roaming/OpenTESArena/options/
  • Linux: ~/.config/OpenTESArena/options/
  • macOS: ~/Library/Preferences/OpenTESArena/options/

Music setup

Arena uses MIDI files for music, so the user must have MIDI sound patches in order to have music play in-game.

The easiest way is to download one of the eawpats packages (zip, tar.gz) and place the extracted eawpats folder into the OpenTESArena data folder.

If you would like to use a different sound patches library like OPL3, edit MidiConfig in the options file to point to the MIDI .cfg file for that library.

Building from source

Project dependencies

Building the executable

  • Create a build folder in the project's top-level directory.
  • Use CMake to generate your project files in build. In a Unix terminal, the command might look like:
cd build
cmake ..
make -j4
  • Other user-specific parameters may be necessary for CMake depending on your IDE.

Running the executable

  • 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.
  • Make sure that MidiConfig and ArenaPath in the options file point to valid locations on your computer (i.e., data/eawpats/timidity.cfg and data/ARENA respectively).

If you struggle, here are some more detailed guides:

If there is a bug or technical problem in the program, check out the issues tab!

Resources

The Unofficial Elder Scrolls Pages are a great resource for information all about Arena. Various tools like WinArena and BSATool allow for browsing Arena's content, and there is a very detailed manual as well. I also recommend the Lazy Game Review on YouTube for a humorous overview of the game's history and gameplay.

Project YouTube channel: https://www.youtube.com/channel/UCJpmkgtHRIxR7aOpi909GKw

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].