I'm throwing in the towel. My codebase is a mess, I'm having performance issues, and I seem to have code-architected myself into a corner. But that's okay! I've learned a lot with this project, a lot of which is immediately actionable.
https://www.youtube.com/watch?v=ZSW__yYF6mQ
Basically, my main three issues are the following:
Not understanding Lua's data flow and scoping
Lua is a lot looser with it's scoping than I'm what used to (C#) due to it's table-based design. I ended up accidentally redefining variables and overwriting tables I didn't mean to, leading to weird bugs that stuck their fingers in many different places.
Punishment: Read the PIL, fool! that, or choose a different tool next time.
Lack of implementation foresight
This is just a failure of me being rusty and lazy with Love2D and Lua. I ended up revisiting code I had hastily hacked together, which made it very difficult to expand upon, resulting in architecture lockup.
Punishment: Make more demos and mini-prototypes, finish reading Bob Nystrom's excellent (and free) "Game Programming Patterns" book.
Lack of ability to playtest early on
Similar to above. I spent the entire first 6 to 8 hours writing scaffolding to handle input, entities, worldstates, etc.
Punishment: Find and/or write some reliable tools for use with Love2D.
Failure? Yes. Waste of time? Absolutely not! This is the closest I've ever gotten to finishing a game, which makes me pretty happy. I'm sure once I can get myself to sit down and read some documentation and stop turning my nose up at using tools and code made by others, I might be able to actually finish something :v
Cheers.