Open-source The Elder Scrolls: Arena

Off topic discussion. Talk about gaming and life in general. Be awesome to each other.
Post Reply
User avatar
afritz1
Posts: 43
Joined: Thu Nov 24, 2016 1:19 am
Contact:

Open-source The Elder Scrolls: Arena

Post by afritz1 »

Hello everyone,

I would like to let you all know about my Arena project I've been working on this year. It's an open-source engine re-implementation for The Elder Scrolls: Arena in C++, available on GitHub here: https://github.com/afritz1/OpenTESArena. It's still pretty early in development, but progress has been steadily chugging along for a while now. I posted about it in the OpenMW forums in early October as well: https://forum.openmw.org/viewtopic.php?f=4&t=3835.

I also saw that Interkarma recently got support for CFA files implemented. I finished support for that myself just a couple weeks ago with the help of WinArena as well :). I'm pretty sure my project can handle all the Arena image formats now.

Anyway, good luck with Daggerfall Unity! I'm occasionally on the #opentesarena freenode channel if anyone would like to talk about my project or Arena in general.

User avatar
Interkarma
Posts: 7236
Joined: Sun Mar 22, 2015 1:51 am

Re: Open-source The Elder Scrolls: Arena

Post by Interkarma »

Hey afritz1, welcome to the forums! :)

It's always great to meet another person crazy enough to take on something like this.

I was lucky with the CFA files - only needed to implement a subset of the format. Daggerfall only has 4 CFA files, all 8-bits wide and no muxing. Made it very simple to plug into my existing graphics converters.

All the best with OpenTESArena!

User avatar
afritz1
Posts: 43
Joined: Thu Nov 24, 2016 1:19 am
Contact:

Re: Open-source The Elder Scrolls: Arena

Post by afritz1 »

OpenTESArena is my first try at a game engine, and it's been quite the learning experience this year already.

I'm mainly a graphics person, so I've been spending most of my time on the architecture for the ray tracing pipeline. Reflections in Daggerfall Unity are an amazing addition and I'd like to add support for it in my project sometime, too. I already have ray casted shadows from the sun for voxels and sprites. Daggerfall Unity has me beat on distant land, though. The view distance is stunning to say the least!

Arena shares a lot in common with Minecraft since both games have pseudo-randomly generated voxel terrain (Arena's is nearly all flat, though). There are even spells in Arena to create and destroy voxels. I haven't decoded any of the map data yet, so everything in my test world is simply hand-placed, and I'm leaving wilderness generation for later (it would involve writing a whole chunk-based system in addition to my current renderer). The wilderness outside each city, town, and village is essentially its own independent Minecraft world (that's the model I'm envisioning), since you need to fast travel everywhere to get from place to place on the world map. This is in contrast to Daggerfall, where all outdoor locations are in the same world. The closest distance I've seen between two locations on the Arena world map is 40 kilometers! One thing I do like about Arena's wilderness though is that it is more densely populated with little villages, farms, and things compared to Daggerfall, so it is actually worthwhile to wander around the outside of a location looking for places like dungeons.

I don't have a lot of game development experience yet, so for things like the game interface and physics I'm just learning a quick and easy solution as I go, and they should be refined as time goes by hopefully. I was originally a bit shy about other programmers making changes and additions to my code, but I see now it's definitely better in the long run. I don't have any plans for features like scripting or extensive mod support, so I guess the best I can do at the moment is to just keep everything open source. My mindset is that it is going to remain a "small-scale" project with a relatively narrow scope (again, it's my first game engine!).

Post Reply