Eldiron, an Introduction

Welcome to Eldiron!

I vividly remember playing Ultima 4 and the following Ultima’s in my childhood. And after that many of the great RPG of the 90s and early 2000s. These days were magic and I try to capture some of this magic with Eldiron.

Eldiron aims to be a creator of classical RPGs but based on modern technology. I try to give a general overview here of how Eldiron does things and why. At this stage I am already working on Eldiron for several years, including 2 rewrites as the scope of it all got bigger and I fell more and more in love with the project (I am more or less now working full-time on it now).

I will reference the more detailed information in the documentation for each section (if available, creation of the documentation is right now just starting).

Graphics

I am a big fan of top-down views, both isometric and otherwise, and of course also of classical first person views. Eldiron offers several ways to achieve this.

In Eldiron you model the regions of the world. It’s all connected, the aim here is to create a breathing universe with FX and player interactions. This is also why you cannot import maps created in other tools, like Tiled for example.

Tile-sets

First, you can paint with your existing tile-sets like you would in any other tile based 2D game engine.

Eldiron actually comes with its own Ultima 4-5 style tile-set to give you a quick start!

Using tile-sets you can create games like Ultima 4-5 and similar. While painting tiles you select if you paint the Floor or a Wall or the Ceiling. This way Eldiron automatically knows where your characters can go and where not, also it can use this information in the 3D views to texture the floor, draw a cubic wall and so on.

Everything you do in Eldiron works for both 2D and 3D views. You can decide over time if you want to release a 2D or a 3D game (and in which perspectives!).

Tile-sets in Eldiron however have one limitation. And that is that only straight top-down tile-sets are supported. Isometric and similar tile-sets are not supported as this would create problems with the 2D / 3D compatibility, Eldiron renders these kind of perspectives by itself!

Procedural Generation

A big focus of mine is procedural content creation with which I already experimented for years. Eldiron has inbuilt mechanisms for procedural world creation, and of course it all works in 2D and 3D:

  1. You can paint with geometry nodes to create walls, columns and so on. You can than apply / paint procedural materials to this geometry, including true 3D effects like extrusions and full featured Disney BSDF Materials. Eldiron has its own material node system for this.
  2. In 3D, geometry is rendered based on a height-map to add elevation to your region. Editing support for this is currently limited, a full featured realtime height-map editor and drawing tool is in preparation.
  3. You can draw and mix up to two materials with brushes / fall-off support on the height-map.

These are the procedural tools which are currently implemented (but maybe not yet fully worked out).

A procedural character creator is also in preparation for v1.

3D Rendering

In the 3D top-down views the region is pre-rendered with an inbuilt Disney BSDF path tracer. The aim here is create pre-rendered backgrounds like RPGs had in the early 2000s (I loved that look).

Of course the effects and characters can interact with the pre-rendered background.

The first person view is rendered in realtime but currently only supports regions painted with tile-sets, the procedurally created geometry is not yet supported the first person view (this will come later, currently focusing on the top down views).

Effects

There is a node system dedicated to visual effects, like mirrors, lights, particles (under preparation) and more.

And of course it works in both 2D and 3D views.

Character Behavior and Mechanics

An earlier version of Eldiron worked with behavior nodes. But there were several problems with this. Mainly nodes always need a framework in which they can exist, and that always limits the flexibility of what is possible.

I wanted a solution which provides a real sandbox solution for Eldiron while retaining the visual feedback provided by nodes.

I came up with a unique solution I call CodeGridFX, which are basically blocks of code in a grid. This provides the flexibility of real code while also providing status information about what is going on.

RandomWalk

CodeGridFX will be able to interact with the region’s geometry and effects. Making it a truly powerful tool.

Solo Games / Client - Server

Right now Eldiron supports only solo games, however earlier versions were already multi-player with a client / server architecture. I will re-introduce the server and client apps before the release of v1.

The current architecture internally is already fully server / client based. Even in Eldiron Creator itself the server runs separate from the clients. I just want to wait until a few architectural decisions are made for CodeGridFX before working on the server / client functionality.

Your Support Is Crucial

I try to create the best, classical RPG creator ever, if you want to help me with my efforts please consider joining my Patreon or supporting me on Ko-Fi.

1 Like