Skip to content

Fussion is a simplistic "game engine" project to help me demystify how general purpose engines work.

License

Notifications You must be signed in to change notification settings

MineBill/Fussion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fussion

This is a very simple project that aims to help me learn how graphics work and how to develop a simple game engine. It is NOT a serious tool but a learning project, so please keep that in mind.

Status

Currently, only work on the "Editor" part is being done. Once i'm satisfied with that, the next step would be to get the "runtime" working, meaning being able to load a "cooked" game from a single asset file.

Architecture

The engine uses a "component" based system. Entities exist in the world and can have multiple components attached to them. It follows the logic of Unity's MonoBehaviour and not an ECS. The reason for this is that i just feel more comfortable working with this type of components and speed is not a hude concern right now.

Vulkan is used for rendering, with a simple wrapper that tries to make it more friendly to work with.

Building and Running

Warning

The project is highly volatile and there is a chance you won't be able to compile it. If you do encounter issues, please open in issue, i would love to help you get it working!

Linux

The engine and editor are designed in such a way to be cross-platorm but there are several missing implementation of various systems, simply because i'm too lazy to boot into Linux, implement and test them. This means that most likely it won't compile in Linux.

MacOS

No

Requirements

  • A C++ compiler
  • Vulkan SDK
    • You MUST make sure the SDK is installed with the debug versions of the shader libraries!
  • XMake

Building the Editor

Building the editor will also build the engine library as a dependency.

Configure xmake to build either in release or debug mode:

xmake f -m debug|release

Once that is done, you should be able to build the engine by simple running xmake with no args:

xmake

To launch the editor, you first need to create a project. A project creator is "in the works" and will be runnable with the following command:

xmake r Editor # Run the Editor target without any args

However, currently you need an existing project. A sample is provided under Editor/Assets/Projects/SampleProject:

xmake r Editor -Project=Editor/Assets/Projects/SampleProject/SampleProject.fsnproj

Hopefully, the engine should now be running!

Discord

Everybody and their mum has a discord server, so why not me? :) Join the Discord

About

Fussion is a simplistic "game engine" project to help me demystify how general purpose engines work.

Topics

Resources

License

Stars

Watchers

Forks