-
Notifications
You must be signed in to change notification settings - Fork 86
Home
OpenTESArena is an open-source engine re-implementation for the game "The Elder Scrolls: Arena" by Bethesda Softworks, being developed from scratch in modern C++. It requires a copy of the original data from the floppy disk version to run (available on the Bethesda website here).
Documentation about the technical details behind Arena is either hard to find or non-existent, so for decoding many of the original file formats, either researching patterns in the data itself or adapting other existing open-source tools is necessary. Thankfully, the Arena manual is an excellent resource for understanding the game's rules and design.
This is a rough list of features acting as the long-term roadmap. Features may be added, removed, or iterated on as time goes by, so they might come and go from here depending on how the project is progressing. Of course the higher priority items like the renderer, data formats, level data, etc. are to be done first, and the more gameplay-focused items like NPC interaction and spells are to be done afterwards.
- Walls
- Floors and ceilings
- Raised platforms
- Diagonal walls
- Edges
- Chasms
- Doors (swinging, raising, sliding)
- Transparent walls
- Fading walls
- Sprites
- Transparent sprites
- Lights
- Night light textures
- Distant sky (mountains, sun, clouds, stars)
- Water and lava
- Y-shearing
- Back-to-front transparent voxel rendering
- Loop unrolling
- Nearest-neighbor mipmapping
- Occlusion buffer
- Projected vertex reuse
- SSE2
- Struct of arrays format
- Wall texture rotation
- CEL (character question sky animations)
- CFA (entity and spell animations)
- CIF (various textures)
- COL (palettes)
- DAT (font files)
- DFA (static entity animations)
- EXE unpacking
- FLC (cinematics)
- IMG (various textures)
- INF (map info)
- MIF (map data)
- RCI (water/lava)
- RMD (wilderness map data)
- SET (wall textures)
- VOC (sound)
- XMI/XFM (music)
- Voxel data
- Sprite data
- Sound/text triggers
- Miscellaneous (locked doors, spawn locations, loot locations, ...)
- Main quest locations
- Interior locations
- Interior <-> interior transitions
- Interior <-> exterior transitions
- Exterior <-> wilderness transitions
- Premade cities
- City generation
- Dungeon generation
- Wilderness generation
- City building names
- Wilderness building names
- Automap
- Automap notes
- Character creation
- Character classes
- Character stats/traits/specials
- Cinematics
- Cinematic voice (CD version only)
- Clicking in game world
- Collision detection
- Jumping
- Swimming
- Chasm climbing
- Inventory
- Items (equipment, potions, quest items, ...)
- Journal
- Hostile NPCs
- Wandering NPCs
- Periodic creature sounds
- NPC name generation
- NPC conversations
- NPC services (bartender, blacksmith, priest, wizard)
- NPC color variation
- Crime (lockpicking, pickpocketing, guards)
- Melee weapon animations
- Ranged weapon animation
- Main quest
- Random quests
- Holidays
- Camping
- World map locations
- Province map searching
- Fast traveling
- City entrance jingle
- Spells
- Weather (rain, snow)
- Saving/loading
- Modern interface mode
- Options menu
- 3D sound
- Floppy version support
- CD version support
- Original save support
- Key bindings
- Localization