For the last few weeks, I’ve been working on building the groundwork for my first game, Rail Spirits, starting with the combat system. The combat for the game will involve the player riding a cart along a fixed path, and they can add up to 3 weapons to the cart per run. I created a very basic test map to keep things focused for now.

First, I started with getting the aiming and movement system working. I wanted the gameplay to be similar to the rail shooters you’ll typically find in arcades, but with a bit more freedom of movement (except for specific moments, like reaction events and damage checks during boss fights). To achieve that, I made it so that the player has a limited range of view when facing any one direction, but they can change direction of their cart in 4 different directions. I also wanted the weapons on the cart to follow where the player points, and while playtesting, I kinda liked the way the RayCast3Ds looked like laser pointers, so I implemented actual laser pointers on the weapons for aiming. I still haven’t decided if I want the aiming to just be through laser pointers, or through a crosshair.
After that, I added the first 3 weapons to the game: a laser weapon, the default weapon (a slow firing gun that shoots one bullet at a time), and a shotgun. I created some starter weapon models for them, and will likely tweak them later in the process. I also added indicators so that the player can have a visual for why a weapon isn’t firing, as well as to make them a bit more distinct, and added a toggleable auto-fire mode (since some of the inspiration for the mechanics of the game comes from games like Vampire Survivors).
Lastly, I implemented damage to enemies (using some basic shapes to represent the enemies for now) and the player, as well as damage indicator numbers where the bullets hit the enemy and a shield the player can deploy for temporary damage reduction. I also made a healthbar and indicator for the special equipment (in this case the shield, but I plan to implement more) that is physically on the cart to stay on theme with the physical weapon recharge indicators (though I also plan on adding a UI with those indications since they are only visible at certain angles when aiming vertically).
I’m a bit of a nerd and love organizing things (partially because I need to or I’d otherwise forget what I should be doing), so I started using Azure DevOps to lay out the core aspects of the game, broke those down into all the features I want to add, then broke those down into bite sized “user stories” to make it easier to focus on just a few things at a time. I also use GitHub to back up the changes I make. These both give me a good look at what has been done so far, so I figured it’d be fun to throw in some statistics:
User Stories Completed: 58
Bugs Found: 4
Bugs Fixed: 3 (with 1 possibly fixed and in testing)
Commits: 99
I’m pretty happy with how things have turned out so far! For the next few weeks, I’ll be working on setting up the rail movement system, which will help me get a better feel for how well the combat mechanics are set up.
