Skip to content

silver984/AetherEngine

Repository files navigation

AETHER ENGINE

Stars Forks Build status Issues License Repo size Supported platforms


Friday Night Funkin'

Friday Night Funkin' is a rhythm game. Built using HaxeFlixel for Ludum Dare 47.

Links:

This project includes assets from the original Friday Night Funkin' game, which are owned by their respective creators and used here for educational and non-commercial purposes. All original assets created by me are released under the project's license.

What is Aether Engine?

Aether Engine is a Friday Night Funkin' engine written in C++, built in a custom game engine. This engine aims to introduce a more flexible way of modding Friday Night Funkin'.

Why choose Aether?

Bullets here are still in work in progress! These can be treated as goals for this engine.
  • Aether gets rid of callbacks like getProperty() and setProperty() by implementing a way for users to directly manipulate objects and behavior without the use of reflections.

    Example:
    Syntax is subject to change
     local new_pos = point(0, 0)
     local rotation = 0
    
     PlayState:init
     {
     	function()
     		debug.log.info("entered PlayState!") -- log to console
     	end
     }
    
     PlayState:update
     {
     	function(delta_time) -- callback 1
     		new_pos = point(player.pos.x + (20 * delta_time), 400)
     		player.pos = new_pos -- change the player's position
     	end,
    
     	function(delta_time) -- callback 2
     		rotation = rotation + (10 * delta_time)
     		player.rotation = rotation -- change the player's rotation
     	end
     }

  • Aether aims to be much more optimized than other engines

    Example:
    to-do benchmark comparison

  • Aether supports fully scriptable gameplay

    Example:
    to-do showcase

  • Scripts aren't bound to one game state

  • Scripts are able to declare global variables that are accessible across all other scripts

  • Aether allows you to render completely 3D objects with just lua scripts

    Example:
    to-do showcase

  • Easy modding workflow, and more!


Building

Prerequisites

To be able to build Aether Engine, you will need at least the following:

  • A C++ compiler (depending on your platform)

    Visual Studio on Windows

    After launching the installer, select Desktop development with C++. You may choose other features, but you NEED at least MSVC and Windows SDK installed.

    macOS

    Use Xcode’s command line tools, which gives you Clang
     xcode-select --install
    

    Linux

    Ubuntu
     sudo apt install build-essential
    
    Fedora
     sudo dnf install gcc gcc-c++
    
    Arch
     sudo pacman -S base-devel
    
    Clang is also usually optional everywhere
     sudo apt install clang
    

  • CMake : 3.1 to 4.1.1

Compiling

# setup cmake
# only needed once unless CMakeLists.txt is modified
cmake -S . -B build

# build release
cmake --build build --config Release 

# build debug
cmake --build build --config Debug 

Credit/s

  • silver984 : Lead developer

  • CallMeBryze : Playtester


License

Aether Engine is released under the MIT License. Look here for more information.

About

Aether Engine is a Friday Night Funkin' engine written in C++, built in a custom game engine.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages