[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94853":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":16,"starSnapshotCount":16,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},94853,"OpenTESArena","afritz1\u002FOpenTESArena","afritz1","Open-source re-implementation of The Elder Scrolls: Arena.",null,"https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena","C++",1389,87,126,18,0,6,54.43,false,"main","2026-08-24 04:01:22","# OpenTESArena\r\n\r\n[![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fafritz1\u002FOpenTESArena\u002Fall.svg)](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases\u002Flatest)\r\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Factions\u002Fworkflows\u002Fcmake.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Factions)\r\n[![MIT License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green)](LICENSE.txt) \r\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F395739926831824908.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https:\u002F\u002Fdiscord.gg\u002FDgHe2jG)\r\n[![YouTube Channel Views](https:\u002F\u002Fimg.shields.io\u002Fyoutube\u002Fchannel\u002Fviews\u002FUCJpmkgtHRIxR7aOpi909GKw)](https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCJpmkgtHRIxR7aOpi909GKw)\r\n\r\nThis is a modern open-source engine being written from scratch for the 1994 DOS game [*The Elder Scrolls: Arena*](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FThe_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](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Fwiki). No game assets are distributed.\r\n\r\n\u003Cbr\u002F>\r\n\r\n![Preview](Preview.PNG)\r\n\u003Cbr\u002F>\r\n\r\n## Current status\r\n\r\nEnemies attack the player and give loot and experience when defeated. Items can be picked up, equipped, and dropped. Shopkeepers provide services like buying\u002Fselling 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.\r\n\r\nPlate item materials (Dwarven, etc.), potions\u002Fon-use items, quests, spells, and loading\u002Fsaving are not yet implemented.\r\n\r\n### Controls\r\n- Move\r\n  - Modern mode - W\u002FA\u002FS\u002FD\r\n  - Classic mode - W\u002FS. Hold LCtrl for A\u002FD\r\n- Turn\r\n  - Modern mode - mouselook\r\n  - Classic mode - A\u002FD\r\n- Jump - spacebar\r\n- Activate\r\n  - Modern mode - E\r\n  - Classic mode - left mouse button\r\n- Draw weapon - F\r\n- Attack\r\n  - Modern mode - right mouse button\r\n  - Classic mode - hold right mouse button and move mouse in a direction\r\n- Inspect\r\n  - Modern mode - left mouse button\r\n  - Classic mode - right mouse button\r\n- Pause menu - Esc\r\n- Character sheet - Tab\r\n- Character status - V\r\n- World map - M\r\n- Local map - N\r\n- Thieving - P\r\n- Cast Spell (unfinished) - C\r\n- Camp - R\r\n- Logbook - L\r\n- Player position - F2\r\n- Debug display - F4\r\n- Screenshot - PrintScreen\r\n- (debug) Force open locked door \u002F destroy voxel: hold G then Activate\r\n\r\n## Playing OpenTESArena\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Windows\u003C\u002Fsummary>\r\n\r\n#### Download [*The Elder Scrolls: Arena* on Steam](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F1812290\u002FThe_Elder_Scrolls_Arena\u002F)\r\n- Alternate downloads: [GOG](https:\u002F\u002Fwww.gog.com\u002Fen\u002Fgame\u002Fthe_elder_scrolls_arena), [Bethesda website](https:\u002F\u002Fcdnstatic.bethsoft.com\u002Felderscrolls.com\u002Fassets\u002Ffiles\u002Ftes\u002Fextras\u002FArena106Setup.zip)\r\n\r\n#### Download OpenTESArena\r\n1. [Get latest Windows build](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases)\r\n1. Extract the `.zip`\r\n\r\n#### Music (optional)\r\n1. Download [eawpats](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases\u002Fdownload\u002Fopentesarena-0.1.0\u002Feawpats.zip)\r\n1. Extract the `.zip` which creates an uncompressed eawpats folder\r\n1. Copy and paste the uncompressed `eawpats` folder into the OpenTESArena `data` folder\r\n   - You're encouraged to find higher-quality sound patches \u002F soundfonts (.sf2) to use with `MidiConfig` in `options\u002Foptions-default.txt`\r\n  \r\n#### Run `otesa.exe`\r\n\r\n#### Common issues\r\n- Sudden exit on startup \u002F Missing MSVCP141.dll error\r\n  - Download and run latest Visual C++ Redistributable with \"X64\" Architecture [vc_redist.x64.exe](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fcpp\u002Fwindows\u002Flatest-supported-vc-redist#latest-microsoft-visual-c-redistributable-version)\r\n- No sound, `alcOpenDevice()` warnings\r\n  - Download [OpenAL 1.1 Windows Installer (zip)](https:\u002F\u002Fwww.openal.org\u002Fdownloads\u002F) and run `oalinst.exe`\r\n\r\n\u003C\u002Fdetails>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Linux (Debian-based)\u003C\u002Fsummary>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Steam install\u003C\u002Fsummary>\r\n\r\n#### Download [*The Elder Scrolls: Arena* on Steam](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F1812290\u002FThe_Elder_Scrolls_Arena\u002F)\r\n\r\n#### Download OpenTESArena\r\n1. [Get latest Linux build](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases)\r\n1. Extract the `.tar.gz`\r\n\r\n\u003C\u002Fdetails>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Manual install\u003C\u002Fsummary>\r\n\r\n#### Download packages\r\n```bash\r\nsudo apt-get install wget unzip rar\r\n```\r\n\r\n#### Download *The Elder Scrolls: Arena* from Bethesda website\r\n```bash\r\nwget https:\u002F\u002Fcdnstatic.bethsoft.com\u002Felderscrolls.com\u002Fassets\u002Ffiles\u002Ftes\u002Fextras\u002FArena106Setup.zip\r\n```\r\n\r\n#### Download OpenTESArena\r\nReplace `\u003Cversion>` with the latest build number (`#.##.#`) and `\u003Carch>` with an architecture (`x86-64`, `rpi4`) available on the [Releases](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases) page.\r\n```bash\r\nwget https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases\u002Fdownload\u002Fopentesarena-\u003Cversion>\u002Fopentesarena-\u003Cversion>-linux_\u003Carch>.tar.gz\r\ntar xvzf opentesarena-\u003Cversion>-linux_\u003Carch>.tar.gz\r\n```\r\n\r\n#### Extract game assets\r\n```bash\r\ncd opentesarena-\u003Cversion>-linux_\u003Carch>\u002Fdata\r\nunzip ..\u002F..\u002FArena106Setup.zip\r\nrar x Arena106.exe\r\n```\r\n\r\n\u003C\u002Fdetails>\r\n\r\n#### Music (optional)\r\n1. Download [eawpats](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases\u002Fdownload\u002Fopentesarena-0.1.0\u002Feawpats.tar.gz)\r\n1. Extract the `.tar.gz` which creates an uncompressed eawpats folder\r\n1. Copy and paste the uncompressed `eawpats` folder into the OpenTESArena `data` folder\r\n   - You're encouraged to find higher-quality sound patches \u002F soundfonts (.sf2) to use with `MidiConfig` in `options\u002Foptions-default.txt`\r\n\r\n#### Run OpenTESArena\r\n```bash\r\ncd ..\r\n.\u002Frun.sh\r\n```\r\n\r\n#### Common issues\r\n- Vulkan renderer crash on startup\r\n  - You might be missing Vulkan drivers: `sudo apt-get install mesa-vulkan-drivers`\r\n\r\n\u003C\u002Fdetails>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>macOS\u003C\u002Fsummary>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Steam install\u003C\u002Fsummary>\r\n\r\n#### Download [*The Elder Scrolls: Arena* on Steam](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F1812290\u002FThe_Elder_Scrolls_Arena\u002F)\r\n\r\n#### Install OpenTESArena\r\n1. [Get latest macOS build](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases)\r\n1. Open the `.dmg` and copy `otesa.app` to the `Applications` folder or another location you prefer\r\n\r\n\u003C\u002Fdetails>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Manual install\u003C\u002Fsummary>\r\n\r\n#### Download *The Elder Scrolls: Arena*\r\n1. Get the full game from the [Bethesda website](https:\u002F\u002Fcdnstatic.bethsoft.com\u002Felderscrolls.com\u002Fassets\u002Ffiles\u002Ftes\u002Fextras\u002FArena106Setup.zip)\r\n1. Extract `Arena106Setup.zip`\r\n1. `Arena106.exe` is a self-extracting RAR file. Use a tool such as [The Unarchiver](https:\u002F\u002Ftheunarchiver.com) to extract it into a folder of data files\r\n\r\n#### Install OpenTESArena\r\n1. [Get latest macOS build](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases)\r\n1. Open the `.dmg` and copy `otesa.app` to the `Applications` folder or another location you prefer\r\n1. Right-click on the .app and choose \"Show Package Contents\"\r\n1. Navigate to `Contents\u002FResources\u002Fdata` and copy in the files for Arena that you extracted earlier\r\n\r\n\u003C\u002Fdetails>\r\n\r\n#### Music (optional)\r\n1. Download [eawpats](https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\u002Freleases\u002Fdownload\u002Fopentesarena-0.1.0\u002Feawpats.tar.gz)\r\n1. Extract the `.tar.gz` which creates an uncompressed eawpats folder\r\n1. Copy and paste the uncompressed `eawpats` folder into the `Contents\u002FResources\u002Fdata` folder in `otesa.app`\r\n   - You're encouraged to find higher-quality sound patches \u002F soundfonts (.sf2) to use with `MidiConfig` in `options\u002Foptions-default.txt`\r\n\r\n#### Run OpenTESArena\r\n1. Return to the `Applications` 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:\r\n   1. Right-click on the app and choose \"Open\"\r\n   1. In the warning that appears saying that it is from an unidentified developer, choose \"Open\"\r\n   1. The app will start. In the future, you can just double-click on the app without having to go through these steps\r\n\r\n\u003C\u002Fdetails>\r\n\r\n### For the best experience\r\n1. Navigate to options menu in pause menu\r\n2. On Graphics tab:\r\n   - Set Graphics API to Vulkan\r\n   - Set FPS Limit to your monitor's refresh rate\r\n3. Restart game\r\n\r\n### Options files\r\n`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`.\r\n- Windows: `\u003Cusername>\u002FAppData\u002FRoaming\u002FOpenTESArena\u002Foptions\u002F`\r\n- Linux: `~\u002F.config\u002FOpenTESArena\u002Foptions\u002F`\r\n- macOS: `~\u002FLibrary\u002FPreferences\u002FOpenTESArena\u002Foptions\u002F`\r\n\r\n## Building OpenTESArena from source\r\n\r\n#### Install third-party tools and libraries\r\n- [Git](https:\u002F\u002Fgit-scm.com\u002Fdownloads)\r\n- [CMake](https:\u002F\u002Fcmake.org\u002Fdownload\u002F)\r\n- [SDL 2.0.12](https:\u002F\u002Fgithub.com\u002Flibsdl-org\u002FSDL\u002Freleases)\r\n- [OpenAL Soft 1.19.1](https:\u002F\u002Fopenal-soft.org\u002F#download)\r\n- [Vulkan 1.3.280](https:\u002F\u002Fvulkan.lunarg.com\u002F)\r\n- [WildMIDI 0.5.0](https:\u002F\u002Fgithub.com\u002FMindwerks\u002Fwildmidi\u002Freleases) (required for music)\r\n\r\n\u003Cdetails>\r\n\u003Csummary>Linux (Debian-based)\u003C\u002Fsummary>\r\n\r\n```bash\r\nsudo apt-get install git g++ cmake libsdl2-dev libopenal-dev libvulkan-dev libwildmidi-dev\r\n```\r\n\r\n\u003C\u002Fdetails>\r\n\r\n\u003Cdetails>\r\n\u003Csummary>macOS\u003C\u002Fsummary>\r\n\r\n#### MoltenVK\r\nThe [Vulkan SDK](https:\u002F\u002Fvulkan.lunarg.com\u002F) 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.\r\n\r\n\u003C\u002Fdetails>\r\n\r\n#### Download source code\r\n```bash\r\ngit clone https:\u002F\u002Fgithub.com\u002Fafritz1\u002FOpenTESArena\r\ncd OpenTESArena\r\n```\r\n\r\n#### Build OpenTESArena\r\n- Navigate to the root of the repository\r\n- Use CMake to generate your project file. In a Unix terminal, the commands might look like:\r\n    ```bash\r\n    mkdir build\r\n    cd build\r\n    cmake -DCMAKE_BUILD_TYPE=? ..\r\n    make -j8\r\n    ```\r\n    where `CMAKE_BUILD_TYPE` is one of:\r\n  - `Debug`\r\n  - `ReleaseGenericNoLTO` - typical development\u002Ftesting\r\n  - `ReleaseGeneric` - release build for general audience, uses your CPU architecture (x86-64, ARM64)\r\n  - `ReleaseNativeNoLTO` - ReleaseGenericNoLTO with better CPU instructions\r\n  - `ReleaseNative` - max performance compatible only with your exact CPU (equivalent to `-march=native`)\r\n- **Warning**: Jolt Physics enables CPU features which may cause illegal instruction errors. You can set these `OFF` in CMake ([more information](https:\u002F\u002Fgithub.com\u002Fjrouwe\u002FJoltPhysics\u002Fblob\u002F20eedf47c4bf064e740c9de2f638a8c1d57ce2ed\u002FBuild\u002FREADME.md#illegal-instruction-error))\r\n    ```bash\r\n    -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\r\n    ```\r\n- If your CPU supports AVX-512, you may provide `-DUSE_AVX512=ON` to CMake for improved performance\r\n\r\n### Run OpenTESArena\r\n- Navigate to the directory where the executable was built. When using an IDE like Visual Studio, this is a folder in your build directory named after your `CMAKE_BUILD_TYPE`\r\n- Make sure that `MidiConfig` and `ArenaPaths` in `options\u002Foptions-default.txt` point to valid locations on your computer (i.e., `data\u002Feawpats\u002Ftimidity.cfg` and `data\u002FARENA` respectively)\r\n- Run the `otesa` binary\r\n  - On Windows you may need to copy the .dlls that came with SDL2, OpenAL Soft, and WildMIDI to this directory. OpenAL Soft's `soft_oal.dll` must be renamed to `OpenAL32.dll`. A post-build command will fix this eventually\r\n\r\nOther options:\r\n- [Automated install & build using Visual Studio\u002FCMake\u002FGit\u002Fvcpkg (Windows)](windows\u002Fsetup_OpenTESArena.bat)\r\n- [Building with Visual Studio (Windows)](docs\u002Fsetup_windows.md)\r\n- [Building with MSYS2 (Windows)](docs\u002Fsetup_windows_msys2.md)\r\n\r\n## Contributing\r\nCheck out [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to assist with development.\r\n\r\n## Resources\r\n- [Unofficial Elder Scrolls Pages](https:\u002F\u002Fen.uesp.net\u002Fwiki\u002FArena:Arena) - a great resource for information about Arena\r\n- [Various tools](https:\u002F\u002Fen.uesp.net\u002Fwiki\u002FArena:Files#Misc_Utilities) like WinArena and BSATool for browsing Arena's assets\r\n- The Elder Scrolls: Arena [manual](https:\u002F\u002Fen.uesp.net\u002Fwiki\u002FArena:Files#Official_Patches_and_Utilities)\r\n","OpenTESArena 是一个从零开始编写的开源引擎，用于重新实现1994年DOS游戏《上古卷轴：竞技场》。项目采用清洁室设计，完整复刻原版游戏逻辑与世界系统，同时引入现代操作支持（如WASD移动、鼠标视角）、UI优化和跨平台兼容性。核心功能包括实时战斗、物品交互、NPC对话、城镇服务、世界地图快速旅行及角色状态管理。适用于怀旧玩家运行原版游戏资源、MOD开发者扩展内容，或游戏引擎研究者学习经典RPG架构。",2,"2026-08-17 02:30:05","trending"]