Why Semi?

ETGMod, the previous Enter the Gungeon mod loader, was initially created over 3 years ago in the summer of 2016. It was based largely on an even older mod loader for the game FEZ called FEZMod. It was started by 3 people with essentially no experience in the Unity engine and even less in modding Unity games. As a result, the codebase over the next year became messy and quickly patched together for result without much consideration.

Real life and diminished interest forced the leader of the project, 0x0ade, to quit it in a very unfortunate time, not long after another core team member (at the time RyokuTheSlayer) quit due to lack of interest. This left only me, Zatherz, with little knowledge of the code or Unity modding techniques (0x's contributions amounted to over 95%). Over the next ~2 years, I have made multiple attempts at rewriting ETGMod while trying to at least maintain the software so that it'd work on the latest version of the game. Around the time I have also been losing interest for the game. This made it hard to get myself to work on the project and my refusal to quit caused me a lot of stress. I didn't want the project to die, and I knew that it most likely would if I officially just gave up on it.

The first attempt at a rewrite was called "ETGMod Reloaded". The goal was to make a mod loader that would allow Lua modding instead of the more direct C# modding. This proved insanely hard as I had to also maintain a highly customized fork of a Lua library and work with two languages at the same time, trying to make them work and interchange data together. This and diminished interest in even playing the game, much less modding it, made progress on the project slow down until almost a complete stop.

The second attempt at a rewrite, possibly the least successful and developed one, was Stock. It came to me in the middle of Reloaded development - you see, Reloaded was a mod loader written in C# that loaded mods written in Lua. I wanted to see if it'd be feasible to write only the tiniest bridge between C# and Lua in C#, and write the rest including the mod loader, the mods, etc. all in Lua. Once I realized how much memory was being leaked by the Lua library I used and how bad the performance was, I scrapped this project as well.

Semi is the third attempt at a rewrite, and at not even half a year old, surprisingly the most developed one. I gave up on the idea of Lua mods, letting me focus on providing a good and clean API instead of constantly debugging native crashes.

At the moment, Semi has exceeded ETGMod's capabilities, as it provides an API for localizations, items, guns, synergies, audio and more to come soon. I've been waiting for the moment where I can finally say "ETGMod is dead" for about 2 years, and I'm proud to present a better, faster, cleaner and more futureproof alternative.

Last updated