GithubHelp home page GithubHelp logo

markusmoenig / eldiron Goto Github PK

View Code? Open in Web Editor NEW
340.0 13.0 12.0 136.19 MB

Create cross platform retro RPGs in 2D and 3D. Written in Rust.

Home Page: https://www.eldiron.com

License: MIT License

Rust 97.52% Objective-C 0.04% Swift 1.91% C 0.10% Metal 0.44%
classic rpg creator ultima pixel-art eldiron game-development game-engine gamedev retro

eldiron's Introduction

screenshot

Classic RPG Creation


Windows macOS Linux

YouTube

MIT license version Discord Patreon Twitter

Eldiron: A Next-Generation Classical RPG Creator

Vision

Eldiron aims to revolutionize the creation and experience of classical role-playing games (RPGs) by blending the nostalgic charm of timeless RPGs with the cutting-edge capabilities of modern technology. My mission is to empower creators with an intuitive, yet profoundly flexible platform, while enchanting players with immersive, dynamic worlds that breathe life into every adventure.

Core Features:

Grid based Visual Coding System

Screenshot

Code character and game behavior in a grid based visual node system. Combining the power and speed of real code with the ease of use and visual debugging of a true node system.

Create worlds using tiles or model with nodes.

Either draw in pixel-perfect precision using 2D tilemaps or model worlds procedurally with an integrated powerful node system.

Both ways allow you to create world regions in both 2D and 3D. Eldiron ships with an integrated Ultima like tilemap to get you started.

Model

Visual effects made easy

You can easily add visual effects to your world. Imagine placing light sources, animating gates or adding mirror effects. To name just a few.

Effects.

Time based behavior

Everyting in Eldiron is driven by a 24 hour timeline. Define time based character behavior, open gates or passages at given times or modify the world by estinguishing light sources during the day.

Worls created by Eldiron are not static but dynamic in every possible way.

Timeline

Render your worlds the way you like it

Eldiron provides a vast array of rendering options, either classical 2D tiles or fan favourite first person or top down perspectives like isometric top down views or even tilted perspectives like in Ultima 6 / 7.

Define rendering options per region to be able to seamlessly switch between different views.

Screenshot

... and much more like the upcoming multi-player / server support.

Supporting Eldiron

If you want to help me on my Eldiron mission, please consider becoming a Patreon or a GitHub Sponsor.


I will start documenting the Eldiron progress and provide tutorials soon on YouTube. So please make sure to like and subscribe to my channel.

Also consider joining the community on Discord to get in contact.

Installation

You can download the current pre-release in Releases.

On macOS you can get access to the current Beta via a public TestFlight Link.

For ArchLinux users, simply add Eldiron from AUR:

yay -S eldiron-bin

Building Eldiron Locally

If you have Rust installed, you can build Eldiron Creator simply via cargo build --release --bin eldiron

Linux:

Make sure these dependencies are installed: libasound2-dev libatk1.0-dev libgtk-3-dev

License

The source and all assets I commissioned for Eldiron are licensed under the MIT.

Unless explicitly stated otherwise, any contribution intentionally submitted for inclusion in Eldiron, shall be MIT licensed as above, without any additional terms or conditions.

Acknowledgements

Sponsors

Digital Ocean

eldiron's People

Contributors

fralonra avatar markusmoenig avatar taffer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eldiron's Issues

Error "folder '/Users/myName/GitHub/Eldiron/core_embed_binaries/embedded/' does not exist"

What my intention was:

Download the repo and start the Creator

What was the result?

❯ cargo run --bin creator
   Compiling libc v0.2.132
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.43
   Compiling quote v1.0.21
   Compiling unicode-ident v1.0.3
   Compiling syn v1.0.99
   Compiling bitflags v1.3.2
   Compiling version_check v0.9.4
   Compiling autocfg v1.1.0
   Compiling core-foundation-sys v0.8.3
   Compiling cc v1.0.73
   Compiling log v0.4.17
   Compiling rustc-hash v1.1.0
   Compiling glob v0.3.0
   Compiling memchr v2.5.0
   Compiling foreign-types-shared v0.1.1
   Compiling block v0.1.6
   Compiling typenum v1.15.0
   Compiling minimal-lexical v0.2.1
   Compiling lazy_static v1.4.0
   Compiling bindgen v0.59.2
   Compiling wasm-bindgen-shared v0.2.83
   Compiling regex-syntax v0.6.27
   Compiling once_cell v1.14.0
   Compiling shlex v1.1.0
   Compiling lazycell v1.3.0
   Compiling peeking_take_while v0.1.2
   Compiling smallvec v1.9.0
   Compiling bumpalo v3.11.0
   Compiling termcolor v1.1.3
   Compiling serde_derive v1.0.144
   Compiling byteorder v1.4.3
   Compiling cty v0.2.2
   Compiling hashbrown v0.12.3
   Compiling wasm-bindgen v0.2.83
   Compiling same-file v1.0.6
   Compiling serde v1.0.144
   Compiling opaque-debug v0.3.0
   Compiling parking_lot_core v0.8.5
   Compiling crc32fast v1.3.2
   Compiling core-foundation-sys v0.7.0
   Compiling unicode-width v0.1.9
   Compiling scopeguard v1.1.0
   Compiling adler v1.0.2
   Compiling bit-vec v0.6.3
   Compiling ppv-lite86 v0.2.16
   Compiling static_assertions v1.1.0
   Compiling cfg_aliases v0.1.1
   Compiling cpal v0.14.0
   Compiling ttf-parser v0.15.2
   Compiling hexf-parse v0.2.1
   Compiling serde_json v1.0.85
   Compiling profiling v1.0.6
   Compiling bytemuck v1.12.1
   Compiling crossbeam-utils v0.8.11
   Compiling itoa v1.0.3
   Compiling cpal v0.13.5
   Compiling ryu v1.0.11
   Compiling humantime v2.1.0
   Compiling tinyvec_macros v0.1.0
   Compiling arrayvec v0.7.2
   Compiling either v1.8.0
   Compiling paste v1.0.9
   Compiling cfg-if v0.1.10
   Compiling dispatch v0.2.0
   Compiling copyless v0.1.5
   Compiling audio-engine v0.4.1
   Compiling colors-transform v0.2.11
   Compiling winit v0.26.1
   Compiling fixedbitset v0.4.2
   Compiling hound v3.4.0
   Compiling rfd v0.10.0
   Compiling pollster v0.2.5
   Compiling colori v0.1.1
   Compiling pathdiff v0.2.1
   Compiling fs_extra v1.2.0
   Compiling zeno v0.2.2
   Compiling libloading v0.7.3
   Compiling instant v0.1.12
   Compiling wgpu-types v0.12.0
   Compiling generic-array v0.14.6
   Compiling ahash v0.7.6
   Compiling ahash v0.8.0
   Compiling foreign-types v0.3.2
   Compiling num-traits v0.2.15
   Compiling indexmap v1.9.1
   Compiling lock_api v0.4.8
   Compiling smartstring v1.0.1
   Compiling clang-sys v1.3.3
   Compiling fxhash v0.2.1
   Compiling ogg v0.8.0
   Compiling raw-window-handle v0.4.3
   Compiling raw-window-handle v0.5.0
   Compiling objc_exception v0.1.2
   Compiling walkdir v2.3.2
   Compiling codespan-reporting v0.11.1
   Compiling miniz_oxide v0.5.4
   Compiling wgpu-core v0.12.2
   Compiling bit-set v0.5.3
   Compiling regex v1.6.0
   Compiling safe_arch v0.5.2
   Compiling tinyvec v1.6.0
   Compiling itertools v0.10.3
   Compiling gcd v2.1.0
   Compiling open v3.0.2
   Compiling wide v0.6.5
   Compiling lewton v0.10.2
   Compiling malloc_buf v0.0.6
   Compiling getrandom v0.2.7
   Compiling core-foundation v0.9.3
   Compiling cpufeatures v0.2.5
   Compiling mach v0.3.2
   Compiling atty v0.2.14
   Compiling dirs-sys v0.3.7
   Compiling nom v7.1.1
   Compiling core-foundation v0.7.0
   Compiling aho-corasick v0.7.19
   Compiling flate2 v1.0.24
   Compiling rand_core v0.6.3
   Compiling crossbeam-channel v0.5.6
   Compiling core-graphics-types v0.1.1
   Compiling directories v4.0.1
   Compiling ultraviolet v0.8.1
   Compiling parking_lot v0.11.2
   Compiling core-graphics v0.19.2
   Compiling digest v0.9.0
   Compiling block-buffer v0.9.0
   Compiling integer-sqrt v0.1.5
   Compiling png v0.17.6
   Compiling rand_chacha v0.3.1
   Compiling hashbrown v0.11.2
   Compiling objc v0.2.7
   Compiling core-graphics v0.22.3
   Compiling cexpr v0.6.0
   Compiling sha2 v0.9.9
   Compiling rand v0.8.5
   Compiling metal v0.23.1
   Compiling objc_id v0.1.1
   Compiling cocoa-foundation v0.1.0
   Compiling core-video-sys v0.1.4
   Compiling fontdue v0.7.2
   Compiling env_logger v0.9.0
   Compiling rust-embed-utils v7.2.0
   Compiling objc-foundation v0.1.1
   Compiling cocoa v0.24.0
   Compiling wasm-bindgen-backend v0.2.83
   Compiling copypasta v0.8.1
   Compiling code_editor v0.2.2
   Compiling wasm-bindgen-macro-support v0.2.83
   Compiling winit_input_helper v0.12.0
   Compiling thiserror-impl v1.0.34
   Compiling wasm-bindgen-macro v0.2.83
   Compiling rust-embed-impl v6.2.0
   Compiling uuid-macro-internal v1.1.2
   Compiling rhai_codegen v1.4.2
   Compiling coreaudio-sys v0.2.10
   Compiling rust-embed v6.4.0
   Compiling core_embed_binaries v0.1.0 (/Users/jens/GitHub/Eldiron/core_embed_binaries)
   Compiling js-sys v0.3.59
   Compiling thiserror v1.0.34
error: proc-macro derive panicked
 --> core_embed_binaries/src/lib.rs:4:10
  |
4 | #[derive(RustEmbed)]
  |          ^^^^^^^^^
  |
  = help: message: #[derive(RustEmbed)] folder '/Users/jens/GitHub/Eldiron/core_embed_binaries/embedded/' does not exist. cwd: '/Users/jens/GitHub/Eldiron'

error: could not compile `core_embed_binaries` due to previous error
warning: build failed, waiting for other jobs to finish...`

What was I expecting?

That I can compile and run the Creator Module

What I did exactly:

  • cloned/pulled the repo from Github on a MacBook pro running the Beta of macOS Ventura, rust installed
  • tried to start the process via console "cargo run --bin creator"

Collaborators Needed

I think what I need for a v1 are some collaborators who can help with the design of the character system and help to flesh out the demo. I am mostly a developer and while I played the Ultima and similar games a lot, I am not an expert in all of the character class design systems on the market. I just want to make sure to support all possible use cases for weapons, gear, spells, crafting character progression and so on, which is a lot of stuff.

Would be great if some of you would collaborate on this a bit, it would make a v1 much easier todo on my side as I do not need to worry about design choices all the time.

Release v0.7.5 is incompatible with Ubuntu 20.04

Hello!

I wanted to try your project out of curiosity (I bumped into your project looking at Rust game engines).

You may be already be aware of this incompatibility:

$ /usr/bin/creator_main 
/usr/bin/creator_main: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by /usr/bin/creator_main)
/usr/bin/creator_main: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /usr/bin/creator_main)
/usr/bin/creator_main: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/bin/creator_main)
/usr/bin/creator_main: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/bin/creator_main)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

For info, I did not quite understand what Eldiron is by reading the README. Is it a no-code tool? Will I program my game in Rust? Etc. You may be interested in that feedback to refine the README just a tad :)

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', core_shared/src/asset/tileset.rs:72:67

Hi,

ran into another problem (if I'm bothering you with there minor issues, just let me know :-) )

Jens

❯ cargo run --bin creator
   Compiling core_shared v0.1.0 (/Users/jens/GitHub/Eldiron/core_shared)
   Compiling core_server v0.1.0 (/Users/jens/GitHub/Eldiron/core_server)
   Compiling core_render v0.1.0 (/Users/jens/GitHub/Eldiron/core_render)
   Compiling creator v0.5.5 (/Users/jens/GitHub/Eldiron/creator)
    Finished dev [unoptimized + debuginfo] target(s) in 5.59s
     Running `target/debug/creator`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', core_shared/src/asset/tileset.rs:72:67
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Under linux index out of bounds: the len is 56520 but the index is 57004

With the new version 0.8.6 i get following error with the linux precompiled build.

thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/theframework-0.1.18/src/thedraw2d.rs:656:40:
index out of bounds: the len is 56520 but the index is 57004
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.