Skip to content

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

License

Notifications You must be signed in to change notification settings

silver984/AetherEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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