If you know something can be done better, save it for the next game. Only change things that are precluding something else to work. It's not like players care if you are scripting or hardcoding anyway.
It's not about the players or other programmers checking out my code, it's about being helpful and kind to my future self. Scripting helps me iterate much faster, write cleaner code which has less bugs and is much easier to modify. And if I kept thinking, "ehhh, I'll change/implement it for the next game", I'd probably be confused by all the messy code and hardcoded stuff all around... While it's okay for a smaller project, my project isn't small, so I can't just "go with the flow". :S
The same applies to what Lin has said. I wouldn't make it to 1.0 with the tools I previously had. Or maybe I could but the game would be much worse and buggier than it is even now.
Take my level editor for example... After reimplementing it's interface with ImGui now helps me build much more complex levels in less time. I don't have to remember countless key bindings, I can easily add new abilities to it, etc.
I've started working on the game really hard again two weeks ago and I've made a huge progress since then. Most of the things I did can be considered refactoring and repairing broken stuff, but doing so, I've managed to improve the quality of the code and easily implement some cool things I previously couldn't.
Most of the work was done by porting some stuff from C++ to Lua, because Lua provides great simplicity and wrappers for difficult stuff which I write in C++ and then can call from Lua.
There are still lots of things I have to do before I stop doing "invisible" work and repaying my programmer debt... But I feel like I'm on the right path and things have been going very well for the last two weeks.
What makes me especially happy is that I move on pretty quick and work on very important things. Things that let me implement new game features. Things that let me fix bugs, make the game easier to expand and modify.
Yes, I could have made a game with lots of bad code and then I could have made another one where the code was better. But this isn't a case for my game, because I don't want to have many limitations which will limit me.
Here's an example of the thing that probably increased re-usability of the code and allowed me to implement very complex cutscenes in no time: action lists. Yes, I've managed to do similar stuff with state machinest... but can you imagine how difficult it would be if I had to do big cutscenes with primitive tools? This would have hurt my desire to make cutscenes really awesome and I'd be looking for a easy way out. This is not the approach I want to take.
Hopefully, I haven't been doing lots of wasteful work which you would consider as overkill. (Well, I can think of one thing: Meta serialization/deserialization system). But I think that most things I do are made to make me build the game, not just some random engine. YAGNI is an important principle which I follow and there haven't been a thing I've made for the game which I don't use.
I realize that the progress hasn't been as quick as some people want it to be. But you have to understand lots of factors which cause this: I'm a solo developer, I develop my engine from scratch (almost), I have other things to do in my life, as well as several others (which I'll explain in an article I plan to write soon).
I'll explain in detail what I did in next post which will summarize all the things I did in the previous 2-3 months.
Let's see what I'll have to say in a week or two. Hopefully, things will be very optimistic by then and I'll start working on a new content, of which there haven't been much lately.
I hope that this will be kind of a "reboot" of the thread and I'll be able to deliver more stuff.
And I just want to thank everyone for all the support and encouragment in this thread. All of it fills me with great pride for my work and makes me work harder and make Re:creation the best game I can do.