After a few months off where I took some time to focus on my personal life (moved house amongst others) it is now high time I return to game development.
Over the past few weeks I have been experimenting and building a few prototypes around a new project that I want to build. This is going to be something way smaller than the proejct I was working in January. It will be more focused and hopefully ready to release in a year or so.
The premise is quite simple. You have a ship, you spawn in an arena with twenty more players and you duke it out, Star Wars style. As an MVP all matches will be free-for-all but I would like at some point to add the concept of parties and group play.
Whilst I got the core idea down, there are a number of unanswered game design questions. Most importantly, how will the ship be controlled, how will the players shoot at one another and last but not least how big should the maps be.
For this project there is no procedural generation but there will be plenty of other challenges to deal with.
Progress so far
A core system of the game is the networking and matchmaking system. This is something I had researched perviously whilst working on my MMO title. For that project I had decided that the best course of action was to build my own networking as all the available solutions either didn’t scale well or were too expensive.
For a simple matchmaking, twenty player per match kind of game, there are plenty of solutions available. Even self-hosted ones. At the moment, I’m going to go with Nakama (not actually open source) but I have some concerns given the fact that server node duplication is avilable only in the enterprise solution, even when self hosting it, their matchmaking is very opinionated and the devs are not amazing at dealing with user requests. We shall see how it goes though and regardless, I’m going to write the game in such a way that I can, at a later point, switch to a different provider if need be.
Besides networking, I’ve already experimented with a few game modes and control types and got that pretty much down but the decision will have to be made after some play testing. I’ve also figured out what kind of feeling/style the game will have and the fact that it will be third person view only.
Finally, I’ve created some basic VFX and Shaders for effects using Unity’s bult-in tooling and I have to say, they’ve come a long way. That being said, I will use Unity’s URP render pipeline to be able to have really low graphics versions of the game as well as I might potentially release it for mobile or web too.
That being said, it’s time to get going on the actual MVP now. First, I will setup a simple camera orbit script so you can look around your ship.
Then I’ll deal with the turret controller. Since the ship will have multiple turrets the player will select the targets and priorities and the turrets will be responsible for tracking and hitting the appropriate target on it own, so it will need a controller capable of doing that.
Next on the list will be the actual ship controller, the thing that will allow you to control the ship. I’m currently thinking this will be a two prong approach. For smaller ships (up to and including destroyers) the player will fly the ship using the standard scheme (EliteDangerous, StarCitize, X-Wing). For larger ships (cruisers, battlecruisers, battleships and higher) which will have a slower speed and turn rate, it will be something closer to an RTS point and click or vector based (drag and drop) as the approach with those ships should be more strategic rather than mavericky.
Then it will be time to deal with SFX and VFX to make sure that this experience feels epic on its own. The ships should feel weighty according to their size. The game should look and feel like an epic space fight is about to go down. Then and only then will I be happy to move on to the actual shooting and adding some AI so you can play the “training” mode.
I’m expecting this first phase to take about a month or two to get to an MVP level. Once there, I’ll make sure to come back and share some pictures and or videos. Since most of this work is rather straight forward and it is just the amount of it that makes it take long, I will post tutorials around different topics but I don’t think it’s likely there’ll be an actual dev blog on this project untill I reach phase two.
Stay safe and see you then!