My project (https://cthangover.github.io) is a mod-oriented platform for visual novels with RPG elements, and a game built on top of it (you can think of it as a full-fledged game, or as a demo to test-drive the engine).
Yes, it’s a classic visual novel: text, pictures, and one and a half programmers.
Yes, the basic feature set barely scratches the surface of what Ren’Py can do… for now.
Yes, I couldn’t wrap my head around Lua, so I wrote an engine within an engine, just because I can.
Yes, it’s 2026, AI is writing 3D games, and here I am trying to show off a visual novel.
However, there’s an architectural twist that, I believe, opens up interesting possibilities for virtually unlimited expansion of a finished visual novel…
The game’s inner workings are based on a code core and a few basic scenes. My Godot project has practically no assets — literally. The core assembles the final game from mods located in the root folder, in mods/, which contains various parts — scenes, scripts, resources, third-party code in source form, compiled form, etc. All of this is processed and activated at runtime, after which the assembled game runs within Godot’s scenes. By removing or adding mods, you can remove or add scenes/scripts, mechanics, and individual game elements.
It sounds like something strange, but you have to give it a try, let it sink in, and then a path opens up for people (be it developers, modders, designers, or just enthusiasts who want to put together a prototype or a fix for something in half an hour) — a path into endless modding, or even developing your own project on top of such a core, which would be unique in its own way and not even resemble the original project. You don’t even need Godot or an SDK on your PC to work on mods.
- Is that all?
- Not quite.
Actually, this project is also Open Source ( GitHub - cthangover/cthangover: cthangover engine · GitHub ), MIT License. I believe the project’s idea isn’t hollow — someone might want to get involved, help it grow, or even just take it and experiment with it.
What do I offer in terms of basic game features?
An automatic shader-based time-of-day calculation system. One background — instead of hundreds of variations for day or night phases.
A 2D lighting system that “brings to life” the atmosphere and immerses the player in the displayed backdrop.
An interactive scenario-building system with a fairly simple syntax, which can be expanded both within the engine and via mods.
Basic RPG building blocks — systems for: characters, quests, inventory, skills. (everything can be changed and extended)
A battle system implemented as card-based combat. This isn’t a modern action game, nor even an average turn-based clone of well-known titles, but a fairly simple foundation that will need a lot of polishing and improvement — but at least it’s something…
A mod system. The game is built from transparent building blocks; each one can be examined, some can be “pulled out” to see how the game simplifies and mechanics disappear.
I’m a complete beginner in Godot, but for some reason it literally inspired me. For more than 6 years I seriously “waged war” with Unity, trying to make dynamic resources, fluid architecture, something that changes at runtime, and every time I ran into huge walls that I had to overcome with pain and effort — my experience and background (over 12 years) in a field completely unrelated to gamedev didn’t help much. At some point, while applying yet another crutch against Unity, I poured my soul out to a DeepSeek chat, and it reasonably pointed out — much of what I wanted fits beautifully into Godot’s architecture and capabilities; one of my projects was literally 80% portable to Godot without significant changes, bypassing all of Unity’s crutches! Within 3 weeks on Godot, I fully ported the project, with some rethinking, and achieved what I couldn’t manage in over 6 years of studying Unity. I even had regrets about spending so much time on that lumbering giant, when I could have figured out a simpler, clearer, and most importantly — working — Godot.
- Why am I even writing this, and what do I expect here?
- Criticism. I need constructive criticism.
Unfortunately, my eyes have gone blurry — I’m missing future problems in the current architectural core of the project. Initially, the project was written solely for my own game, but it seemed to me that the potential is greater. So, what I tailored for a specific game might turn out to be too narrow a solution — I need advice, the experience of other visual novel authors, or even feedback from someone trying to use what I’m offering! I’m not asking the community to actively develop my project — it would be enough to have interested people who occasionally check in on progress, or even suggest how they see it from the outside.
After spending some time on analysis, I came to the conclusion that there are very few similar projects, and as it happens, on Godot there are exactly zero. It’s in my interest to capture this peak and dig in thoroughly.
- What’s ready at the moment?
- The core capabilities of the future engine, and a small sketch from my game.
As I mentioned, I had an idea that I tried to implement for several years in Unity. I spent a huge amount of time thinking through what I needed, how I could present it, how to implement it in Unity, how the story would look and unfold, etc. I started it and abandoned it many times, came back, but realized I was fighting the engine again. Only recently (4 weeks ago) I started writing all my ideas in Godot.
Right now I’m describing cthangover (Cthulhu + hangover).
This is the story of how the great Al-Azif, also known as the “Necronomicon,” met its one and only invincible enemy — a chronic alcoholic. The protagonist, a lost soul from a parallel reality, accidentally read a couple of lines in an unfamiliar language, after which the sky cracked, and through the gaps poured tentacles, claws, and indescribable forms from worlds beyond sleep. Humanity plunged into chaos, but the culprit of the apocalypse is picking his nose indifferently, mistaking the roar of cosmic horrors for hallucinations. The deadly curse of the Necronomicon, which shatters the minds of the mightiest mages, shatters against the “impenetrable” stupidity and chemical dependency of a drunkard. The Book itself, trapped in this absurd bond, finds itself at a dead end for the first time in its existence: it is immortal, but doomed to share eternity with a being who couldn’t care less about it. The hero isn’t thrilled either: he was just looking for his stolen stuff and a drink to cure his hangover, but instead got an eternal companion that can neither be silenced, nor sold, nor destroyed. Who even needs to save this world? Well, if it helps get rid of that annoying book…
Dark humor, dirty words, absurd situations, and an unconventional plot. All of this, digested and refined over a long time, dictated to me the core of the future system — the very thing capable of conveying this chaos, capable of changing every part of the game on the fly.
The project is still in development, but some mechanics can already be seen. I understand that the project is raw and empty in places, but I no longer have the mental strength to roll out a polished, colorful sample in the form of a good demo. I think I’ll take a little break; however, I’d be happy if someone could take a look at it and give feedback, or even constructive criticism. I think in about a week I’ll be able to continue in earnest and finish polishing the interactive objects (these aren’t just dialogue choices, but colliders that you can interact with using the cursor/finger on the scene when the dialogue is closed).
