ten3roberts / ivy

A modular game engine framework written in Rust
Apache License 2.0
32 stars 2 forks source link

Ivy

What it is

Ivy is a modular application and game framework for Rust.

This crate provides an amalgamation and rexport as well as aliasing for the multiple ivy crates.

Guide

A user guide is provided to quickly familiarize the user with the basic usage of the engine.

Features

Gallery

Cubes and Collision

How it works

Layers

The core of the program is an application. [core::App]. It defines the update loop, and event handling.

From there, logic is extracted into layers which are run for each iteration. Within a layer, the user is free to do whatever they want, from reading from sockets, rendering using vulkan, or dispatching ECS workloads.

Due to the layered design, several high level concepts can work together and not interfere, aswell as being inserted based on different configurations.

Layers can be thought of as plugin in high level containers of behaviour.

The existance of layer allow importing of behaviour from other crates without concern of implementation details.

Inter-layer communication

The application exposes different ways in which two layers can influence each other.

See the documentation for [core::Layer]