![FelFlameEngine](https://github.com/realtradam/FelECS/blob/master/logos/felflame-logo-text.png?raw=true) [![MIT License](https://img.shields.io/github/license/realtradam/FelFlameEngine)](https://github.com/realtradam/FelFlameEngine/blob/master/LICENSE) [![Ko-Fi](https://img.shields.io/static/v1?message=Buy%20me%20a%20coffee&logo=kofi&labelColor=ff5e5b&color=434B57&logoColor=white&label=%20)](https://ko-fi.com/tradam) --- FelFlame Engine is a modular "library-style" Ruby game engine. It consists of a core set of libraries(mruby + Raylib) which you can freely add your own mruby or C libraries on top of to be compiled into a single game or interpreter. Currently it exports to Windows, Web and Linux. ## How to build Currently building only tested/used on Linux(Artix/Arch and OpenSUSE). If you are on windows you could try using WSL but this is currently untested. You need to have any requirements for compiling [Raylib](https://github.com/raysan5/raylib) installed. You must also have Zig and Emscripten installed(it is recommended to use [asdf](https://asdf-vm.com/) to install these) 1. Clone the repository and install gems ```sh git clone --recursive git@github.com:realtradam/FelFlameEngine.git cd FelFlameEngine bundler install ``` 2. Build the underlying libraries ```sh rake build:raylib rake build:mruby ``` ###### At this point you could play around with the interpreters at `core/mruby/bin/mirb` and `core/mruby/bin/mruby` 3. Playtest your game ```sh rake play # or rake p ``` ###### This will execute your game located here: `game/main.rb` 4. Build your game ```sh rake build:win # build for windows rake build:web # build for web rake build:tux # build for linux ``` ###### The binaries are located under `build` in their respective directories 5. Test the web export of your game ```sh rake serve # or rake s ``` ## Directories Explained: ### mrbgems/ Here are all the gems you wish to be compiled into the engine. Any directories in this directory will be treated as a gem to be included into the compilation process however you may still need to edit the [build file] to add the appropriate flags if necessary. ### game/ All your game files. `main.rb` is the "entry point" of your game and the assets directory is where your assets should go as they are bundled for the web export. ### vendor/ The location of any compiled libraries and headers. These are 'included' into the engine or game when it is compiled. ### core/ Contains the core git-submodules which are needed for the engine(mruby for the Ruby language and Raylib for rendering). Also contains some template and configuration files used during compilation. ### build/ Where your game is exported to when it is compiled. ## Extras: By default this engine comes with just Ruby and Raylib. Here are some additional gems you could use if you want more: | Gem | Description | | --- | --- | | [FelECS](https://github.com/realtradam/FelECS) | Pure Ruby ECS designed for ease of use | | ... | More coming soon | ### FelBind You can create your own gems based on C libraries more easily by utilizing the binding generation library FelBind. See more here: https://github.com/realtradam/FelBind