Crate feo_oop_engine

Crate feo_oop_engine 

Source
Expand description

githubcrates-iodocs-rs

Feo OOP Engine is an object oriented game engine.

procedural macros: feo-oop-engine-proc-macros

§Compatibility

OSCompatible
WindowsIssue id:1
LinuxYes
OSXYes

See issue #1 for Windows

§Description

The FeO OOP engine is a library I created to help me learn about 3D engines. This project is composed of two parts. feo-math, the math boilerplate; and the feo-oop-engine. The engine is built on the vulkano framework. This program is designed to facilitate 3D application development. Please note however that this program has its own unique workflow. Features of the engine include scripts, object oriented programming (or OOP for short), textures, materials, lights, game objects, and obj and mtl processing.

§Example

§Building the Scene

First create a new scene.

use feo_oop_engine::scene::Scene;
 
let scene = Scene::new(None);

This is where all of your game-objects will directly or indirectly exist on.

§Initialize the Engine With the Scene

To create an engine use the FeoEngine::init(scene, specify_hardware). This will create a feo_engine object.

use feo_oop_engine::FeoEngine;
let mut engine = FeoEngine::init(scene, Some(1));

§Build Objects

To build objects use the ::new() constructor for the object you wish to build. You might want to build a light and a camera to be able to see the scene.

use feo_oop_engine::scene::game_object::obj::Obj;
let obj = Obj::from_obj(
   Some("cube"), 
   "assets/standard-assets/models/shapes/cube.obj",
   None,
   None,
   None,
   None,
   true,
   engine.globals.clone(),
   None
);

§Pass Objects to Scene

Use the add_child() function to add the object you created to the scene within the engine.

use feo_oop_engine::registration::relation::Parent;
engine.scene.write().unwrap().add_child(obj.unwrap());

§Running the Engine

When all the game_objects have been created you can use the run() function of feo_engine to start the engine.

engine.run()

Modules§

components
Components used by game objects.
event
Engine events and user defined events container.
graphics
Everything used to render
macros
registration
Constructs for identifying GameObjects
scene
A construct within which a world can exist.
scripting
Scripting constructs
shaders
GLSL Shaders

Macros§

downcast
event_handler
frame_script
start_script
upcast

Structs§

FeoEngine
The Engine