Welcome to the first devlog for a game I’m currently referring to as “Starship Salvager”. My hope is to release a new devlog once a month to document the progress on this game (as long as there’s progress to show).
The Story so Far
The game focuses on you as a salvage expert moving throughout the galaxy and scrapping “abandoned” star ships and stations you come across. As luck would have it, more often than not, these locations are not fully abandoned nor are they fully deactivated. You’ll encounter security systems, rogue AIs, and alien creatures who have already laid claim to these dilapidated ships and locations.
You don’t get this far as a salvager if you don’t take precautions and adapt. In each location you will pilot a clone of yourself through the decks of the ship. In the case that your clone dies before making it all the way to the end, you’ll have to start again from the beginning.
Along the way you’ll spend your scrap earnings to upgrade your clones and equipment to take on more and more dangerous contracts.
The player avatar is dropped onto the game board. You can then select an adjoining space to uncover. The space may contain a resource, enemy, trap, or other things I have yet to dream up. You move through the board uncovering tiles, fighting off enemies, and trying to collect resources including the key code to unlock the airlock to the next deck of the ship. You must make it through all the decks to complete the ship/station.
Progress so far: Systems, Systems, and More Systems
I’ve been working on the foundation of this game, on and off, for a few months now. I wanted to start with a strong base so as the game grows it’s easier to add new features into it.
The first systems I put together were the procedural game board system. Play takes place on a gridded game board that is procedurally generated and populated with items based on weighted random generation. Currently I am generating rectangular decks, but the plan is to also support irregularly shaped boards.
Next up was a player pawn and the ability to navigate the board. With the exception of the players starting space, all other spaces are obscured. Each turn the player can choose to use an option to reveal a space. I started with a simple player pawn, but very recently updated that to an animated character. I also recently replaced the initial teleporting behavior with simple A* pathfinding.
I’m using assets from Synty Studio while I prototype, most of these will be eventually replaced with updated art that matches the style of my game. More on that in a future dev log.
Once these basic game functions of building and navigating a game board were working, I’ve set up a few other core systems. A game manage the overall flow of the game, as well as a “level” manager which is used to manage moving from deck to deck of and the progress of each location or ship. There was also some simple UI to show when the key card was collected, and allow you to move on once you reveal the airlock space. I really do not like the current UI and will most certainly be making something a bit nicer in the near future.
The final system I want to mention is the turn manager. Since this is a rouge-lite game, play takes place in rounds. A player does an action, followed by each revealed enemy, and any traps or other board actions. To accomplish this, I built a turn system which utilizes state machines for the board and the board actors. I’m pretty happy with how this is architected and as I continue to add actors and complexity, we’ll see if it all holds up.
I’m currently working on setting up some basic attack and health systems. Once those are in place, the core game loop will be pretty much complete. I also hope to start working on the art side a bit more with an updated user interface and some concept art to start modeling.