Alpha Flagship - 3D space tactics

Juju

Member
In between paid work, I like to fiddle around with side projects. This usually takes the form of writing open source libraries but recently I've been thinking more and more about making a game of my own. I've made some small games before with various people in loose teams, but I wanna do something a bit larger. It's just me on my lonesome thus far.

I've wanted to make a strategy game for a while, and something in 3D. I've experimented with 3D a few times in isolation - Planet Model 2 and A Mind Is A Small Place - but I'm yet to put it all together to make a traditional finished product. Strategy games are less common in the indie game community for a few reasons, but I'm gonna give it a shot.

So here we are, Flagship: A moving game of space chess, where you must defend your flagship with your fleet of ships, whilst attempting to destroy your opponent's flagship.

The gameworld is realistically modelled with gravity and momentum behaving as you'd expect in Space. Ships are customisable and get the full MechWarrior treatment where weapons, engines, shields etc. have lots of stats to balance out. The game is rendered in a vector display style, potentially aping Atari's vector rendition of Star Wars (though with hidden vertex culling to avoid visual clutter). Edit: Just remembered Vib-Ribbon which is a sorta-vector-emulation game.

The game is turn-based, and players take simultaneous turns. This is a departure from most strategy games, though Frozen Synapse does a good job of it. The game is playable in single player and networked multiplayer; turn-based games tend to be much easier to pull off with networked multiplayer. I find simultaneous games fascinating as there's more of an element of prediction and anticipation, and from a practical standpoint games go a lot faster since you're rarely waiting for long until your next turn!

The main sticking point for the project is going to be AI. Predicting trajectories in space is infamously difficult - NASA have entire supercomputer clusters dedicated to it - so it's going to be a big challenge. I think a large appeal of the game will be PvP so I'm not too worried, but it's still something to keep an eye on.

I'll be updating this thread as I go. I hope you'll join me.
 
Last edited by a moderator:

Juju

Member
First update! The core of this game is the physics system so writing a good physics integrator that fits the theoretical maths is crucial.

Here I'm using a Verlet integrator and I've used the theoretical orbit velocity... the test object has immediately entered into a stable orbit so we know the system is working as we expected!



And if you introduce more gravitational bodies you can do some fancy spirally things too.



Up next is giving orders to our test object... which involves some dreaded UI programming.
 
Last edited by a moderator:

HighlandCoo

Member
I really like the look of this! Keep going!

FYI
The main sticking point for the project is going to be AI. Predicting trajectories in space is infamously difficult - NASA have entire supercomputer clusters dedicated to it - so it's going to be a big challenge.
.. remember this is only hard for NASA because they dont know all the variables and/or there are alot of variables. In your game you control and you know ALL the variables, so you dont have this issue.
 

Dr. Wolf

Member
Very cool project! The concept reminds me of Children of a Dead Earth, but with multiplayer. I like it!
 
J

Javanotti

Guest
Man this looks like a lot of fun to play. Will check it out asap!
 

Juju

Member
Thanks for your replies everyone!


I'm trying to target a sort of pseudo-vector display aesthetic for Flagship. These displays were considered to be extremely smooth in their day, but they have the side effect of being very "bloomy" with a lot of ghosting artefacts by today's standards. I've been working on a nice line rendering shader (and a tone-mapping post-processing effect) to try to emulate these old vector displays.

I'm still working on the UI in the meantime. The biggest issue I'm facing is how to appropriately communicate the direction that a ship is firing its engines, and how best to provide a "handle" that the player can move to change the ship's direction. It's kind of a 3D UI which is... unusual and doesn't have much precedence.

Quick edit:
Wasn't happy with the OTT bloominess of the lines so I tweaked it down a bit and did some tone mapping.
 
Last edited:

Morendral

Member
Thanks for your replies everyone!


I'm trying to target a sort of pseudo-vector display aesthetic for Flagship. These displays were considered to be extremely smooth in their day, but they have the side effect of being very "bloomy" with a lot of ghosting artefacts by today's standards. I've been working on a nice line rendering shader (and a tone-mapping post-processing effect) to try to emulate these old vector displays.

I'm still working on the UI in the meantime. The biggest issue I'm facing is how to appropriately communicate the direction that a ship is firing its engines, and how best to provide a "handle" that the player can move to change the ship's direction. It's kind of a 3D UI which is... unusual and doesn't have much precedence.
I wouldn't say it doesn't have precedence, but then again there's not much to go on based on your description alone so far. First there's kerbal space program which is the king of 3D space physics. Secondly, if you are looking for something a bit more like a "handle" why not look to something like a modeling tool? SMF has rings in each to the 3 axis that you grab and rotate.
 

Juju

Member
I got distracted over the weekend unfortunately and improved my .obj loader instead of working on UI :D



You might recognise the platypus. @r0wan is using the .obj loader for his top-down shooter, and I'll be using it for this project as well. Rowan's game looks amaaaazing and y'all should go check out his work!

Regardless, I decided to open source the .obj loader on GitHub. Hopefully my work on line rendering will make it there too.

Edit:


It's Sponza in GameMaker!
 
Last edited:
Top