Skip to content

A reasonably simple framework for the development of interactive applications, simulations and video games

License

Notifications You must be signed in to change notification settings

RetroBytes32/FrameEngineGamework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Features

  • Rendering

    • Simple textured mesh renderer
    • Point and directional lights
  • Physics support by ReactPhysics3D

    • Rigid body simulation
    • Terrain height field mapping
    • Much more
  • ActorAI

    • Psudo-genetics based actor generation
    • Neural network / state machine hybrid for actor personality
  • Resource management

    • Image: PNG BMP
    • Models: OBJ
  • Multithreading



Overview

This framework is designed to provide the functionality of a game engine without a full editor. The primary use case would be for the creation of applications that require user interactivity and physical simulation. The core fuctionality of the framework covers rendering, physics, AI and resource management.



Platform

While this framework currently only supports windows, I look forward to porting to linux in the future.

  • Windows (x64)



Building the repository

First, clone the repository with git. You can then use cmake to generate the project files of your choice. You have three primary build options in cmake. Each option will generate a project file which will compile the selected part of the framework. To use the framework you would want to select BUILD_APPLICATION_LIBRARY. However, modifying the core requires you to select BUILD_CORE_ENGINE. To build the runtime executable select BUILD_RUNTIME_EXECUTABLE.

git clone https://github.com/RetroBytes32/FrameEngineGamework



Dependencies

Building this repository will require the following libraries. These libraries and their associated licenses will be included in the "vendor" directory in this repository. Links to the latest version of these libraries could be found below. Note: The latest version of these libraries may be incompatible with the current version of this framework.



Architecture

This engine has many sub systems which are split up into several dynamic libraries. The engine core and the user application code are located in separate dynamic libraries with a runtime executable to launch the application. The physics engine, ReactPhysics3D, is contained in it's own dynamic library. External resources are located in a directory named 'data' in the working directory of the runtime executable. These resources include models, textures and shaders that are loaded automatically by the engine`s resource manager.



Application entry point

The source file "Application.cpp" is the application layer entry point and the starting point for your application code. The framework will provide you with the functions Start() and Run(). These functions will serve as an entry point for your application. The Start() function will be called once during application initiation while Run() will be called once per frame.



Examples

Below are a few examples covering the use and interaction of objects and components in the framework

Game objects
Working with components



Screenshots

You can find screenshots of development progress here.



About

A reasonably simple framework for the development of interactive applications, simulations and video games

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published