A cross platform classic RPG game creator written in Rust.

Last update: Jun 4, 2022

forthebadge made-with-rust

Eldiron - Classic RPG Creation

Create RPGs for every platform with Eldiron.

Eldiron v1 will be able to create games similar to the classic Ultima series but with modern features.

MIT License version macOS Windows Linux Discord Patreon Twitter

screenshot

Eldiron is a cross platform RPG engine. Eldiron Creator itself runs on all Desktops (Mac, Windows and Linux) while the game clients also run on iOS and Android devices and on any other device Rust compiles on. The engine is designed from the ground up to be extremely portable.

Eldiron comes with a range of freely usable tile-maps, however you can of course use your own maps.

The game engine contains client and server modules, although currently no multi-player options exist yet, the code has been written with multi-player support in mind from the ground up.

Support for retro 3D areas like dungeons is upcoming. In general I want to explore many different ways to display and create content, from procedurally created tiles to 3D assets. These kind of features will get implemented over time.

Join the community on Discord.

Eldiron Book

Below on this page is an overview of the functionality of Eldiron Creator. However I am currently working on the Eldiron Book. Please refer to the Book for more detailed information on the creator, the server and clients and the overall project.

Updates

Please see my development blog for updates on Eldiron here.

Installation

Eldiron is written in Rust, to run it you have to install Rust and its package manager cargo. Please follow the instructions on this page.

After you successfully installed Rust, clone this repository (or download the source via a .zip file), open a terminal, navigate to the Eldiron directory and start Eldiron with cargo run --release.

At a later stage I will provide pre-build binaries for each platform.

Tiles View (95% Done)

update_screenshot

In the Tiles view you can assign roles and animations to individual tiles in the currently available tilemaps.

Eldiron reads all assets from the assets directory, this is a top level directory in this repository. If you want to add your own tilemaps to Eldiron you will need to paste the tilemap image into the assets/tilemaps directory. Note that right now only tilemaps with square tiles are supported.

You can multi-select a range of tiles (via mouse click and drag) and by clicking the Set Anim button you create an animation for the first tile in the range. The other tiles will be set to Unused by default.

When you click the Enter Tags button you can assign , separated tags to a tile, like cupboard or waterfall. Tags are always lower case.

The Clear Anim button will remove an animation sequence form the currently selected tile.

The Set Default button will set the currently selected tile as the default tile of the tilemap, it will be shown as a tilemap icon in the tilemap overview.

The roles a tile can have are:

  • Unused - This tile is ignored and will not be shown in the area editor.
  • Environment - This is the default tile type for any kind of non blocking terrain. Use it for grass, floors etc.
  • Road - Same as Environment but the AI in the upcoming Pathfinder node will prefer road tiles over environment tiles.
  • Blocking - Every environment tile which is not accessible to the player, like rocks, mountains, walls etc.
  • Character - Character tiles, like animation tiles for a warrior.
  • Utility - Utility character tiles. Like a ship or a horse.
  • Water - Water tiles. Tiles where a ship can go.
  • Effect - Effect tiles, like an explosion.
  • Icon - Icons.

Note that the behavior and look for tiles in a certain area or for a given tile in general can be freely adjusted via the Behavior node system.

The Regions View (70% Done)

Regions are game regions (like a city, dungeon or the world itself) or screen space regions (like a specific UI area).

The regions view has 3 different modes.

Drawing Tiles

screenshot

At the bottom of the view you can select the tiles of the selected tilemap (or tilemaps). You will see all tiles you marked as Environment, Road, Blocking or Water.

You can view all tiles of all tilemaps or select a specific tilemap. Also you can enter tags to only show tiles containing this specific tag. Useful for quickly finding tiles.

Select a tile and click and drag in the region to apply the tile to the area map.

While the basic functionality of the area editor is working, some functions are missing:

  • Undo / Redo
  • Rectangular operations (cut / copy / paste / move / copy) etc.
  • Assigning tiles to groups

Editing Areas

screenshot

Areas are a named group of tiles inside a region. They are useful to mark specific game areas of interest (like a house of a character you want to mark or use in the Pathfinder node) or maybe you want to spawn monsters in the area, lay a trap or displace tiles.

You can add, delete or rename areas. In Add Mode new tiles are added to the area while in Remove mode tiles are removed from the area.

Area Behavior

screenshot

You can assign behavior to a specific area in the view. For example in the above screenshot, if any character is inside the area around the door, the door icon is replaced with a floor icon to simulate an opening door.

Characters View (80% Done)

screenshot

In this view you are able to create any kind of behavior for characters.

Systems View (80% Done)

screenshot

The Systems view is similar to the Characters view. It's main function is to be able to create reusable behavior trees which can be invoked from any character. Like in the above screenshot is a basic implementation for a Combat system with a Melee tree. You would not want to create a combat system for every character, but a general one which uses the variables of the character to calculate damage dealt and received. You can of course still write customized individual AI for specific characters.

But apart from Combat you can of course also implement other Systsems, like crafting or farming.

Items View (0% Done)

A specialized node view for in game items and their stats, modifiers and special effects.

Game View (30% Done)

A specialized node view for the overall game logic.

License

The source and all assets I commissioned for Eldiron are licensed under the MIT. You can use the source and assets freely.

Supporting Eldiron

You can support the Eldiron project by becoming a Patreon. I am also looking for art donations. If interested contact me on Discord.

Acknowledgements

GitHub

https://github.com/markusmoenig/Eldiron
You might also like...

Classic snake in RUST!

Classic snake in RUST!

rusty_snake Classic snake game built in Rust using Piston Window. Running the game Requirements Rust Cargo Steps to run git clone https://github.com/c

Nov 3, 2021

Solana Game Server is a decentralized game server running on Solana, designed for game developers

Solana Game Server* is the first decentralized Game Server (aka web3 game server) designed for game devs. (Think web3 SDK for game developers as a ser

Jun 7, 2022

Cross-platform (including wasm) persistent key value store plugin for rust games/apps

bevy_pkv bevy_pkv is a cross-platform persistent key value store for rust apps. Use it for storing things like settings, save games etc. Currently, it

Jun 1, 2022

Cross platform rendering in Rust

Cross platform rendering in Rust

Miniquad Miniquad is a manifestation of a dream in a world where we do not need a deep dependencies tree and thousands lines of code to draw things wi

Jun 24, 2022

Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Jun 23, 2022

IDE for cross-platform software development

Diversity Space IDE for cross-platform software development | 日本語 | English | Русский | READMEの英語版とロシア語版はDeepl翻訳を使用して翻訳されています Английская и русская вер

Feb 23, 2022

A cross platform (wasm included) networking library!

bootleg_networking A cross platform (wasm included) networking library! A networking plugin for the Bevy game engine that wraps around bevy_networking

Jun 1, 2022

A lightweight, cross-platform epub reader.

A lightweight, cross-platform epub reader.

Pend Pend is a program for reading EPUB files. Check out the web demo! Preview Image(s) Installation Building Pend is simple & easy. You should be abl

May 5, 2022

A game of snake written in Rust using the Bevy game engine, targeting WebGL2

Snake using the Bevy Game Engine Prerequisites cargo install cargo-make Build and serve WASM version Set your local ip address in Makefile.toml (loca

Dec 26, 2021
rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust
rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust

rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust. It can work as an alternative to cd where you randomly encounter enemies as you change directories.

May 27, 2021
Dwarf Fortress inspired frontend to Veloren, the multiplayer RPG voxel game written in Rust
Dwarf Fortress inspired frontend to Veloren, the multiplayer RPG voxel game written in Rust

velobracket ('veloren' + 'bracket-lib') velobracket is Dwarf Fortress inspired frontend to Veloren, the multiplayer RPG voxel game written in Rust. Us

Feb 10, 2022
Sci-fi run 'n' gun action RPG created in Rust, using Macroquad

Capstone - Twilight of the Archons This is an action/run 'n' gun RPG, created in Rust using macroquad. The future holds huge boss fights, and a mind-n

Jun 15, 2022
A basic RUST RPG created by arukovic.

Rust RPG! Hello this is a RUST RPG created by arukovic! This is just a simple RPG created by purely Rust... feel free to run it! Manually running 1st

Dec 20, 2021
rpg-cli —your filesystem as a dungeon!
 rpg-cli —your filesystem as a dungeon!

rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust. It can work as an alternative to cd where you randomly encounter enemies as you change directories.

Jun 24, 2022
Engine / framework for creating highly customizable and user modable action RPG's

Rust RPG Toolkit PLEASE NOTE: this in early and very heavy development. API is subject to constant change, as it has newly transitioned from being a g

Jun 15, 2022
Rustification of the excellent GD Script Action RPG Tutorial by youtuber HeartBeast
Rustification of the excellent GD Script Action RPG Tutorial by youtuber HeartBeast

Godot Action RPG w/Rust A GDNative implementation in Rust of youtuber HeartBeast 's great step-by-step turoial series creating a Godot Action RPG, usi

Apr 14, 2022
Cross-platform game engine in Rust.
Cross-platform game engine in Rust.

Cross-platform game engine in Rust.

Jun 17, 2022
Neutral cross-platform Rust game template

Rust Game Template Neutral cross-platform Rust game template. Build tool This project uses cargo-make task runner. It's required to build the project.

Feb 5, 2022
This is a cross-platform tool to historicize different branches/depots/manifests and generating pseudocode for it to compare different game updates
This is a cross-platform tool to historicize different branches/depots/manifests and generating pseudocode for it to compare different game updates

CSHP This is a cross-platform tool to historicize different branches/depots/manifests and generating pseudocode for it to compare different game updat

Jan 28, 2022