Landing page
Full-stack Web DevelopmentGame Development

My Favourite Game Shut Down - So I Coded it Myself

7 min read

From Childhood Dreams to Game Development: The Story of League of Nations

The Birth of a Dream

When I was a child, I really wanted to create my own country. I gathered my friends together and declared myself the president of Potatoland. I assigned government positions, such as vice president and general of the army, to my friends. My treasurer printed our currency, potato dollars, to pay our salaries. We drew up war plans against the copycat nations that sprung up after my idea spread. I even tried to put Potatoland as my country of residence when filling out forms. However, my parents noticed and made me change it.

Discovering a New World

Deciding to take the next step towards becoming the youngest world leader, I searched for "create your own country". Although I did not find a tutorial on declaring independence from Canada, I did see numerous games that advertised you could be the leader of your own country. The game I ended up playing was called NationsGame, which had a relatively small community and was lesser known in the genre. I loved the game's style and got all my friends to play it with me.

The End of an Era

This continued until October of 2020. While working on assignments from online school, I tried to log in to NationsGame and was met with a "down for maintenance" notification. When this message finally disappeared, it was because the game had shut down for good; for the next few years, the rest of the community and I assumed that the game would never return.

"Sometimes good things fall apart so better things can fall together." - Marilyn Monroe

The Spark of Inspiration

Then, after just over four years had passed, I was bored at home, realizing, "I need projects for my résumé". While thinking of what to build, I remembered NationsGame and decided to bring it back.

I wouldn't be the first to try this, nor was this my first attempt to recreate the game. My first attempt was back when I was in Grade 8, when "learn to code" was all the rage. My teacher gave us an assignment to "code something". That was it. No restrictions, no direction. The only programming language I knew at the time was Python, and I made a pitiful, single-player recreation using Tkinter. Unfortunately, the source code of this game has been lost to time, which is a shame, as it would be pretty interesting to see how I wrote code five years ago.

Another fellow player created the game as one of his university projects. This one was better fleshed out - it was online and multiplayer. Although it was fun, the creator eventually shut down the game due to a lack of players.

This time, I vowed to see myself through to the end. I started by following a YouTube tutorial on developing multiplayer games using HTML, PHP, and SQL. I called it "League of Nations", and it was extremely rudimentary. Still, as I had almost zero web development experience at this point, it was a good introduction.

The original PHP version of League of Nations

Within a couple of weeks, I had a rudimentary prototype up and running. My high school AP computer science teacher generously allowed me to host my game on the school's server. I contacted my classmates as well as former players from the original game, and soon, I had a decent player base.

I added new features every week, increasing the complexity and variety of the game. At the same time, I gained many new players organically through word of mouth. Soon, cracks in the game started showing; I had never prepared for so many players, and the lag was beginning to prove it.

At the same time, I felt limited by PHP, basic HTML, and SQL. I turned to more modern technologies. After conducting some online research, I decided to use Firebase as the backend, complemented by tools such as React and Tailwind CSS for the frontend design. The result was a game that looked more professional, loaded faster, and didn't require you to refresh the page every minute to see updated changes.

In June 2025, as the school year came to a close, I finally completed development on League of Nations and relaunched the game. The player base skyrocketed to over sixty in just a week, and players loved it. After eight months of hectic development, three AM coding sessions to meet the deadlines I set for myself, and moderating the Discord server, the game was finished. I could finally relax.

The newly launched League of Nations game

Nevertheless, that doesn't mean the game is over. I plan to continuously add new features to the game to keep things interesting. I also have a lot of work to do in terms of advertising the game.

The Business of Gaming

Although creating the game was backbreaking labour (staring at a computer was not good for my posture), at least I earned some money from it. I gave players the option to purchase a premium subscription service, which provided them with special in-game perks, resulting in over $500 of additional spending money. I've carefully logged these payments and also budgeted some to pay for server costs and my domain name.

However, money isn't my primary motivation. I promised my players I would never make my game pay-to-win because I hated pay-to-win games myself. That's why premium players only have cosmetic and convenience-based features. To me, the best part about being a game developer was seeing my community grow: the new players coming from referrals asking about a game mechanic, the dedicated tryhards optimizing their growth and writing strategy guides, and the rise and fall of alliances as they fought wars for global hegemony.

At 3 AM, when I was quashing persistent bugs, I wanted to give up. Really. There were several times I was tempted to admit defeat and shut the game down, just like the others who had come before me. But when I see people having fun playing my game, discussing strategy, or debating in-game politics, it makes all the blood, sweat, and tears worth it.

As my first big project, to say I learned a lot would be an understatement. The most important takeaway I learned was to have a clear vision of the final product. Sure, actions speak louder than words, but you need to have a plan in place.

I developed on the go, adding one feature at a time, with no regard for future additions. My carelessness came back to bite me; some features required inconvenient overhauls, such as when I added different continents to the game and had to force my existing players to choose a continent. Some heavily-requested features became outright impossible, such as fighting wars with multiple players on a side. Sketching out everything I wanted to add would have allowed me to plan by structuring my database properly and modularizing my code properly.

Why League of Nations Stands Out

So, what makes the League of Nations better than the other country simulation games already available on the web?

Deep Economic Simulation

For one, League of Nations has a highly detailed economy with much more depth than the other simulators I've played. With dozens of types of natural resources and factories to exploit them, the possibilities are endless. You can also control the input and output of your nation's industries rather than relying on an automated deduction or increment system, which puts you in control of your economy.

The detailed combat system that sets League of Nations apart

Tactical Combat System

Another unique feature, and my personal favourite, is the combat system. Unlike most games where your military is just a number of soldiers, tanks, ships, and planes, League of Nations brings you down to the level of individual soldiers. You can name them, give them pieces of equipment, put them into divisions, and send them on over twenty-five different missions, each one revealing additional lore about the world.

True Alliance System

And unlike other nation simulators where your alliances only pretend to help you while taxing you 50%, your allies in League of Nations can actually send divisions to help defend against foreign invaders or to strike down your enemies together. It's a much fairer system that prevents established grinders from dominating new or casual players.

A Community Like No Other

Lastly, the community is still small (for now!). Unlike the big-name games where you need an international relations degree to make sense of the treaties, in League of Nations, the community is much more intimate. Everybody knows each other, and it's much easier to keep track of everything.