Python Full Stack Development and Game Design

Between FastAPI in Python and Svelte's JS/CSS/HTML combination, I've finally fallen in love with full stack engineering as I build this game.

Python Full Stack Development and Game Design
API documentation of a Blasphemess backend server

Between FastAPI in Python and Svelte's JS/CSS/HTML combination, I've finally fallen in love with full stack engineering as I build this game.

That is to say, for many years and decades, front-end work on the web has been problematic. My day-to-day work focused on back-end development instead. I feel that Svelte is a glimpse into a matured web design future, and with a solid foundation on Python 3's FastAPI as the backend, all the little features I'm implementing are fun to craft!

I cannot emphasize enough how much of a joy it is to write in Python and Svelte.

If you're curious about the general architecture of the game I'm building, check out this post:

Game Server Sharding: Blasphemess Clusters and the Portal
Vertical scaling servers can only get you so far; horizontal scaling and sharding is a great complement to support massive scale.

Using containers and horizontal scaling to make a game with many settings.

Web-Based Full Stack Game Development Is Kinda Rare

Most games I pay attention to fall into a few categories: video games, tabletop games, and board games. Persistent browser-based games and Multi-User Dungeons (M.U.D.s) had their era, and that time has largely passed.

Thus, it's rare to find full stack web technology being the centerpiece of a game.

Of course, there are still several notable exceptions. Most web games exploded in popularity during the 2000s and 2010s era, and have maintained some notoriety since then. Like Fallen London, A Dark Room, Kingdom of Loathing, and others.

So why not pick up a lovely open-source engine like Godot? I've played around with Godot before, and perhaps in the future I will return to it. Yet, I specifically chose to develop a game with a web front-end to progress my skills further as a software engineer.

What Is A Full Stack Engineer, and How Are Web Stacks Different Than Game Engines?

Simply speaking, there is a huge call for full stack engineering skills in contemporary US job markets. A lot of companies end up being "CRUD apps with web frontend." (CRUD is an acronym meaning 'Create, Read, Update, Delete' and refers to common operations). These kinds of companies function well with a centralised full stack setup. Games tend to be different: most are distributed directly to gamers, and run in an offline-first mode.

Checking on jobs postings on levels.fyi for "full stack" easily returns 31.5k job postings. "Full stack game" narrows that down to just 2.6k jobs, many of which are gambling industry jobs and not game development.

Which leads to the basic question: what is a web full stack engineer?

Put simply, full stack engineers are people who write both back-end code and front-end code. Back-ends tend to be RESTful HTTP APIs in a wide variety of languages (including Python, NodeJS, and Java). Front-ends tend to be JavaScript frameworks delivered to the browser alongside CSS and HTML.

Full stack developers build websites, both the back-end server applications that run things, and the front-end that users see.

Web technologies are far, far more widespread than game engines, since nearly every business nowadays runs at least some portions of its operations using the web. Game engines are fairly numerous, some are custom-made, and almost all use specialised skills to work in them.

Transferable skills are assets to me at this point in life, so when I considered what project I wanted to take on, the high-impact skill set of full-stack engineering stood out to me.

Game Design as a Software Developer

I adore this post about "The Door Problem" for explaining what a game designer does:

There’s an impression that game design is flashy and cool and about crazy ideas and fun all the time. But when I start off with, “Let me tell you about doors…” it cuts straight to the everyday practical considerations.

Game design is an entirely separate skill set from software engineering, and it's also a different set of skills from playing games. Though, playing games can certainly foster a good sense of what works and doesn't work within a game, which aids the iterative game design process.

Likewise, software engineering may seem flashy to the uninitiated, there are also a number of practical considerations that go into everyday software development.

The amount of time I spend writing code varies, but is generally small compared to the amount of time I spend thinking about what to do.

Some of my most productive moments are spent staring at the ceiling, deep within the confines of my mind. Once I know what to do, the code flows out in a short burst.

I'm also used to more Agile methodologies for development, so the process of experimenting and refining is familiar to me from software. Iterating fast is good for game design too, turns out!

Luckily, I have a circle of friends who are experienced with games, and they help me bounce ideas around until we land upon something fun.

Which is ultimately my goal with this project. I don't want to build everything myself.

Instead, I wish to build a platform upon which non-coders can still engage in game design, and perhaps even be mentored to the point of making small code tweaks to the game's content.

I can do any of it, but if I want to go fast, I can't do all of it alone.

What Is Blasphemess?

Right now? Blasphemess is a prototype with enough functional parts that I'm willing to brave posting publicly about it. The better question is, "What will Blasphemess be?"

The goal is to build a persistent browser based RPG with strong PvE elements, a smattering of PvP, and plenty of role-play opportunities that you might draw parallels to tabletop RPGs for. This niche in gaming is largely unfilled, with few comparisons. MUDs are probably the most widespread games in a similar niche, but their inaccessibility is notable.

Blasphemess is set in a multidimensional and multi-sided struggle. Empowered beings of a wide variety of types struggle for victory amidst the cosmos. At the core of the lore for this struggle are a few associations.

These associations of people spread their common causes: the holy alliance expand their utopia, demonic sovereignties enslave more subjects to fuel the hierarchy, the exoneration coalition fights for freedom for all, and there are a number of tinier independent factions with motives of their own.

Core to this struggle is that the more powerful and capable people in the setting can come back to life; not necessarily that death is cheap, just... cheaper.

In terms of setting, the game is something of a kitchen sink; because of the nature of infinite realities, any character idea could easily be adapted to fit into the game.

Outside the lore of the game, I envision one of the varieties of ways Blasphemess fulfils players is by filling a social gaming niche and creative outlet similar to TTRPGs. At the very least, that's one of the things I get the most out of games like this.

I've found a lot of friends and comrades through gaming, and I want to help foster similar experiences for other people too.


If you're curious about the game and want to see where this project goes, I invite you to subscribe to this blog to get updates!

For a more in-depth look at the gameplay goals and lore, check out the following:

What Is The Blasphemess Game?
Blasphemess is a browser based multiplayer RPG, set in a multiverse where oppressors have spread like wildfire. The conflict is multi-sided.
Mastodon