Defective Engine is a custom Friday Night Funkin' engine that offers an efficient source code modding experience.
Organized source code with many powerful tools:
- Simple week and level loading
- Individual level classes (Think of Psych or Codename Engine's "song" scripts, but much more powerful!)
- Chart conversion for multiple engines
Several optimizations:
- Notes, sustains, sustain tails, and note splashes are all recycled, which avoids creating tons of new instances
- Sustains are now rendered as 2 sprites (the "piece" and the "tail") instead of dozens of separated sprites
Other:
- Multiple opponents, players, and spectators
- More than 2 strumlines
- More (and less) than 4 keys
- Character editor
- Options menu
- Support for several targets (cpp, hl, html5)
Follow these steps to build the game:
- Install Haxe.
- Install the required libraries by running the following commands:
hxcpp:haxelib git hxcpp https://github.com/HaxeFoundation/hxcpplime:haxelib install limeopenfl:haxelib install openflflixel:haxelib install flixelflixel-addons:haxelib install flixel-addonshaxeui-core:haxelib git haxeui-core https://github.com/haxeui/haxeui-corehaxeui-flixel:haxelib git haxeui-flixel https://github.com/haxeui/haxeui-flixel
- Build the game by running the following command in a command prompt (replace :target: with a specific target, like cpp, hl, or html5):
haxelib run lime build :target:
- Detective Baldi: Programming
- KayipKux: Artist and composer
- Berry: Artist and composer
- Sword352: Tons of optimizations
- The Funkin' Crew Inc.: Created the original game
Defective Engine is still in early development. The engine is already very capable, although, if you plan to develop a mod, there are a couple of things to take into consideration:
- I use many placeholder levels to test development features, which you would want to remove if you make a mod. All of the current placeholders will be replaced with a coherent modding example once the engine nears a full release.
- The engine is not super beginner friendly! There isn't a ton of documentation right now and you can cause a LOT of confusing crashes if you don't know what you are doing! Error handling and documentation will be significantly improved in the near future.
