Creating an RPG in Godot


Game development Godot

Creating an RPG in Godot

Three to four months ago, I started to seriously pursue game development. My first real experience with game development was with a little game I made in the PyGame framework (see my post on that here). I did everything, all of the music, sounds, and art. It was a lot of work, for seemingly little payoff. I also rushed it. But, I learned a lot, and I finished it - I made a game from scratch!

This time around, I took my time. I was able to learn a lot about C#, really get a hang of the engine (well, the 2D part anyhow), and finish another game that was actually fun to play. The end result was a silly RPG game that made my friends laugh, so it was all worth it in the end.

Start of Development

I knew that I couldn’t waste time with creating art and music, because that’s part of what dragged me down when I made my first game. So, I had my friend who owns a version of RPGMaker export sprites and other art from it. I found the music, backgrounds, sound effects, and other misc assets on OpenGameArt. This was extremely helpful, and I’m very thankful to the people that devote some of their time to making free assets.

Another friend of mine set up project management through Taiga. This helped me to focus on specific tasks and it allowed me to see the big picture. It also allowed me to ask myself valuable questions like “Is this feature really essential?", or “Is the time that I’d have to put into this task worth the result?".

Mid Development

The point at which I would consider development mid-way would be when core systems are working, although not feature-complete. I had a simple dialogue system, the combat system was coming along, most of the levels were created, and I had reusable characters and actions. My main frustration was with asynchronous code, but eventually I figured things out and had a stable system.

I was starting to feel burnt out at this point. I didn’t really want to make a fully-fledged RPG, but I also wanted to finish it. I was getting frustrated, development wasn’t as fun, and I was starting to feel like it wasn’t worth it. So, I cut things out. Quests? Nah, we don’t need those. Cutscenes? Who needs them? Seriously though, these were things that I, at first, considered to be essentials to an RPG, let alone a game. However…it went just fine without them. I still wrote dialogue that made my friends laugh.

I mentioned that burnout and rushing were the two causes of my frustration with developing my first game. Burnout can sometimes be an avenue to rushing, but instead it should lead to thinking about your time and energy. In this case, I chose not to rush. I clearly realized that I was getting tired of working on this particular project, and I felt happy about removing features (extra work and stress) from the game. End result? I was able to focus on things that mattered to me, like code quality, dialogue, UI polish, and stability.

Final Touches

I had a working game that ran well, was fun, and had lots of funny dialogue. I spent about two months on it. I learned a ton, and I finished a game. Source code here. I’m already working on learning the 3D part of the Godot engine, and I’m constantly coming up with new ideas. I’m very glad that I decided to really spend the time to learn the engine and more about game development. I’ve always wanted to make games, and now I feel like I’m able to. Shoutout to David Welhe and his course, Game Dev Unlocked - lots of fantastic information, and a community that is super nice and caring.