From Fallen Cities to Functioning Main Menus: The Birth of a Text-Based RPG

GallantGargoyleGallantGargoyle
3 min read

They say creation is an act of sheer will. And I must agree. It started with a mood. Nothing concrete, just the yearning to build a world I’d want to live in.

Before I knew it, I had the name of a fallen city, mythical weapons, and of course — a main menu.

I was sitting at my desk, staring at code I didn’t understand in the slightest, so of course, my brain decided to abandon reality and go on a little adventure. I had been on holiday for a few weeks. And I’d been itching to work on my own game for quite a while.

Partly because I was tired of working on purely technical projects, and partly because I wanted the satisfaction of seeing people enjoy playing a game I had created. Totally not because I had built castles in the clouds around the idea of reaching one million downloads. Perish the thought.

From Dreams to Reality

So. The idea has been mined from the mind.

(Get it? No? Sheesh, tough crowd.)

What next? Well, I wanted to keep my Java skills intact. It was the first programming language that truly clicked for me — probably because I fell in love with object-oriented programming. (Shoutout to Matt Weisfeld’s The Object-Oriented Thought Process.)

Coming from C, where memory management was the bane of my existence and free() haunted my dreams, Java felt liberating. (What’s that? There’s a String datatype? What??) Classes, inheritance, abstraction — it all just felt right.

I got to work.

I started building the basics: a Player class, a Weapon class.

Then along came the problem of storage. One of the first things I learned in object-oriented programming is to not create a class that serves no purpose other than storage. A WeaponRepository class was out of the picture.

Enter JSON. Of course, I would have to migrate to a cloud database later on, but for now, this would suffice. That particular problem was now in the rearview mirror.

CLI or a Fancy UI?

I was plodding along happily, when another thought struck me.

Did I really want it to be a simple CLI? No, I did not.

I wanted something immersive, something aesthetically pleasing, something with replay value that I could make truckloads of money from and retire early.

Uh, strike that last part.

The problem now, was that using something like JavaFX would mean reinventing the wheel. Scene management, transitions, asset handling — I’d have to do everything myself.

The Switch to Godot

Enter Godot. It was like letting a child loose in an amusement park.

Within an hour, I had a functioning main menu (thank you, YouTube tutorials) and basic text display for the game’s introduction.

Instead of wrestling with input handling, I was suddenly worldbuilding, creating factions, setting up juicy betrayals and plot twists.

Progress So Far

As of yesterday, I have:

  • Sketched out several factions

  • Designed a handful of key NPCs

  • Completed the first three quests (these introduce core gameplay mechanics and lay the narrative foundation for what’s to come)

I’ve split gameplay into three acts, and if all goes to plan, Act I will be released on the Play Store in November.

Assuming I don’t get eaten by a walrus. And I don’t get sidetracked. (I’ll let you decide which is more likely.)

And yeah, that’s all for now. I’ll be posting biweekly or monthly devlogs like this one as I add features and expand the world.

Thanks for reading, and see you soon.

2
Subscribe to my newsletter

Read articles from GallantGargoyle directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

GallantGargoyle
GallantGargoyle