top of page

Friday Night Funkin': Benjine

Roles
Date
Engine
Sole Developer
9 months (1/22-9/22)
Godot
Project Type
Purpose
Platforms
2D DDR-esque rhythm game engine

Independent project

Disclaimer: I am not affiliated with The Funkin' Crew Inc.


Friday Night Funkin': Benjine is a fan-made game framework based on the upcoming indie rhythm game Friday Night Funkin'. As Boyfriend, you challenge various opponents to a rap battle to keep them from messing with your girlfriend, Girlfriend. The purpose of this framework was to make a platform for mods of Friday Night Funkin' with a more organized codebase and a more flexible game engine.


Accomplishments
  • I recreated the original game from the ground up, and reorganized the code from the monolithic classes present in the original Friday Night Funkin' to more modular components.

  • I developed an original implementation of a "conductor," or a system that keeps track of and emits events based on the BPM of a music track, based on my implementation from Friday Night Funkin' VR.

    • After the project was done, I spun this into an addon that will be open-source for anyone to use and improve.

  • I implemented a system to create mods for the engine by exporting folders to Godot's native data pack format and loaded dynamically at runtime.

    • This included allowing for player preferences across mods and implementing the ability to switch to a VR mode, particularly useful for turning Friday Night Funkin' VR into a mod so it could gain some quality-of-life improvements.


Takeaways
  • This was my first time developing a system that was capable of modifying a game at runtime. I learned a ton about how Godot handles its data packs via trial-and-error, and how to make game systems work with such flexibility. Although the engine is not widely used for modding purposes, it gave me great insight on how to make another system like it in the future.

  • A surprising lesson was how little the engine actually matters when making the game. I was able to recreate almost all of the original game, nearly matching it pixel-for-pixel. It showed me that when making a game, what tools you use and what organization you keep for your assets do not matter so long as you accomplish what you set out to do.

bottom of page