Skip to content
/ fif Public

Lightweight 2D Game Engine, with an editor, lua scripting and much, much more

License

Notifications You must be signed in to change notification settings

rxn7/fif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fif

Fif is a 2D game engine with an editor (fifed).

Trello board

Table of contents

Features

  • Engine Editor (fifed)
  • ECS
  • Batched 2D renderer
  • Lua scripting
  • Scene System (changes made in play mode will not be saved, like in unity)
  • Resource Manager (UUID based)
  • Native (C++) scripting (not supported in the editor yet)

Components

  • TransformComponent
  • SpriteComponent
  • CircleComponent
  • QuadComponent
  • LabelComponent
  • LuaScriptComponent
  • NativeScriptComponent (not supported in the editor yet)

Modules

Fif is split into core module and other independent modules:

  • gfx
  • input
  • imgui
  • lua_scripting
  • native_scripting

Building

  • ./scripts/configure.sh - configure the build targets (needs to be called first and after creating a new source file to update the globs)
  • ./scripts/run-debug.sh - compile and run a debug build
  • ./scripts/run-release.sh - compile and run a release build
  • cmake --build build/debug - compile a debug build
  • cmake --build build/release - compile a release build

Contributing

Fif is open to contributions, make sure to format your code with clang-format before submitting a pull request though

Dependencies

The dependencies are used as submodules:

  • If you already cloned the repo, run git submodule update --init --recursive
  • To clone the repo with submodules git clone https://github.com/rxn7/fif --recurse-submodules -j8

Libraries

Fonts