It was the perfect time to try something new: entering lockdown during the early days of a once-in-a-hundred-years pandemic, furloughed from my job because the economy has been gut stabbed…
What’s not to love? So much unplanned free time!
Yes, a few months ago I came up with a plan to make a video game. I’m writing about it now because my plan has come to fruition.
I love computer games and role playing games in particular. These days I don’t have much time to play them, but that’s okay because I played my brains out every day of my entire childhood.
The Gold Box AD&D games and the original Wasteland were like crack for me for years, and I got to play them on a real-life C64 and C128!
But aren’t there enough games? It’s common knowledge that the sales statistics for indie games are generally grim. There are some wild successes here and there, but you need skill and luck to be wildly successful.
Well, my gamedev skills are fledgling, and I’m only slightly above average in the luck department. So instead of setting off to chase wild success, I figured I’d just try my best and see what happens 🙂
“I should make a video game.”
Those words came out of my mouth about four years ago to some friends during a birthday party. I don’t know what prompted the idea — it just came to me. I hadn’t ever given serious thought to gamedev before but, well, drinking was involved…
I took my first baby steps in gamedev by dabbling with the LÖVE game framework for Lua. Most of what I made was barely recognizable as a game. But I did get a taste for gamedev.
For this lockdown project, and my first serious gamedev attempt, I chose the Godot framework. I built with Godot for two main reasons:
- It has developed a reputation as the preferred alternative to Unity and Unreal for 2D games in particular.
- Godot supports C#. Being able to transfer these skills over to gamedev is very cool, and I’ve found the C# implementation to be killer. It’s really a pleasure to work in.
I started out by following a few tutorials on Godot. I took what I learned from those to begin my own custom game engine built with Godot in C#. I call it Andromeda. I’ve built a proof-of-concept RPG with the engine and I’m ready to share it.
Introducing Agent of Procyon
Agent of Procyon is a sci-fi computer role playing game with a space exploration and adventure theme. You must explore space stations and alien worlds to unravel the mysterious signal emanating from the Procyon system.
When I set out to build Agent of Procyon I had a few core gameplay elements in mind:
- Tile-based movement with player field-of view computation.
- Semi-realtime combat system.
- Items found in the world which can be acquired and discarded.
- Player inventory system to pick up, drop, equip or use those items.
- Player skills acquisition and development system.
- Scripted event system to trigger story elements and allow for deeper player interaction with the environment.
- Branching dialogue system to allow for rich NPC conversations that can affect the direction of the story.
All of those features currently exist and are usable to some degree.
Okay, no more waiting. Here’s a screenshot. The left side has has an optional in-game CRT screen simulation effect applied for extra retro warm fuzzies.
I chose the Commodore 64 color palette with 8×8 tiles mostly for nostalgic reasons, but also because I dig the muted tones of the color scheme and the simplicity of the pixel art.
These screenshots show a tile-based gameplay field — anyone who has played a roguelike will be familiar with the style.
Stay up to date on Agent of Procyon’s progress. Subscribe to blog updates.
(But just to be clear Agent of Procyon is not a roguelike. It also isn’t intended to be a precise re-creation of a C64 game, more “inspired by.” It has a retro design theme, but I’m working to give the gameplay a more modern feel.)
For the game’s UI, in the top left is a skill interaction panel, and below that is the character panel representing the location of equipped items and various player attributes. On the top right we have a minimap, and below that is the player inventory with a number of action buttons. At the bottom of the screen is the game log.
In this next screenshot we see an example of the skill progression panel. Here the player the player can choose to apply skills earned through gameplay events. Examples of skills one can develop might be hacking, telepathic attack and defense skills, and so on. Below that is a dialogue box for story narration.
And lastly, here’s a .gif of some gameplay. I call it gulp.gif.
Officially Pre-Alpha!
So as of right now Agent of Procyon is still pre-alpha, but I have nearly all the features in place to create the kind of RPG I envisioned. There are some items I still need before the engine does reach an alpha state:
- A game state save and load system. That’s a pretty critical piece for any RPG.
- A player character customization process.
- An audio subsystem to play music and sound effects.
Though I’m generally settled on the feature set, I’m considering some additional features to round out the engine (and the story).
Those additional features, in order of likelihood:
- A NPC party system. There are a lot of shades of gray in how much control the player would have over NPCs.
- An “overland travel” system of some kind — that is, a sort of sub-game for when the player moves between locations.
- Procedural generation of tile maps. Currently the game has static levels that I manually design. Most of what I need to support procedural generation is already in place aside from the generation algorithms themselves.
- An in-game journal system to record every NPC interaction and other important info found along the way. I’m somewhat disinclined to add this to the game. The games that influenced my design of Agent of Procyon mostly didn’t have this feature. However I also see how a journal makes “picking up where you left off” easier for busy players.
The Path to Alpha
This blog series will follow my efforts to complete the alpha version of my game engine.
Once the alpha ready — that is, once the core scope of gameplay features is set and minimally viable — I’ll turn my focus over to the beta version. That will involve developing game content and refining existing engine functionality.
Speaking of content, holy smokes do I need a lot of content. Story, music, sound effects, skills, equipment, and NPCs to populate the world. The list goes on…
Developing a CRPG is a fairly complex task, to put it lightly. This complexity means it takes a lot of time for ideas to coalesce from the aether into something resembling a playable game.
So maybe you’re starting to see where I’m going with this, dear reader…
I’m trying to gauge if there’s any commercial opportunity for Agent of Procyon. If there is, that end result may culminate in a Kickstarter or similar fundraising campaign(s). Those funds would go toward supporting the development of Agent of Procyon and potentially hiring contractors to help flesh out the content.
My goal is to build a game you want to buy and play. So to be notified about my progress in releasing Agent of Procyon, please enter your email in the form below:
[…] My New Game: Agent of Procyon […]