Space Dragons System News
Over the past few months, I've been working diligently on Conversation Maker and putting in automation to help me facilitate programming the complex narratives that everyone who has played DSB is familiar with. Making a program that makes programs is very detailed and taxing work. But I believe it will pay huge dividends in the end by enabling me to create and edit dialogue and cinematic sequences hundreds of times faster than if I coded the sequences by hand.
While doing that, I wanted to do something meaningful and have an "integrated" game experience where I don't just make mini-games to replace turn-based combat but instead make a full game experience that forms the core game loop.
Yes, I still want to have RPG-style dialogue and be able to have the player experience spending time with the characters in a meaningful way.
I set off to determine what I could do that I felt would be a good core game loop.
I didn't want to do a platformer—everyone does platformers—nor did I want to do something like Vampire Survivors.
I thought about how doing a top-down tower defense game would be cool, but decided that if I was going to do that, it'd need to be 3D to make me happy, and 3D games are just not something I want to pursue right now.
I spent a while thinking about what core game loop I would enjoy making and everyone would enjoy playing. Then it occurred to me: make a beat 'em up. It's the game genre I played a ton when I was young and actually played them so much that I don't really need to play them again. I'm looking at you, TMNT Arcade and Power Rangers.
So I set out to make a beat 'em up. The cool thing about the internet is that there is information about how any type of game is made, and I found multiple sources, including one on YouTube doing a River City Ransom-style beat 'em up.
I was like, great! I can just see how he does it, fix whatever problems he introduces, and put furry art into it.
Well, following along I encountered huge problems. The YouTube guy's controller is a mess of booleans and "if" statement spaghetti. It's a huge issue I've faced throughout working on DSB but never resolved myself. Also, with all that mess, I didn't have any reasonable way to make a combo system.
I decided to try wrapping my mind around the programming pattern: Finite State Machine (FSM).
I've tried understanding FSM in the past and it never clicked for me. I've done many YouTube tutorials, blogs, and programming books. Things can get muddy fast because there are a bunch of ways to implement an FSM.
Now, with further study and absolutely tons of "not getting it" in the past, I finally got it! I made an FSM! Not only that, but I understand how it works at the level I need to expand on it. I converted almost all of what I've done in the past week doing things the old way into an FSM in about two nights. And with the way an FSM works, I have a flexible and easier-to-implement combo system.
I have included a video that shows the FSM state in the upper-left corner. It includes: idle, walk, jump, punch1, and punch2. (Jump is 3 states, but whatever.)
Check out the video, let me know what you think. Are you excited for a furry beat 'em up?