About this blog
Space 4x game on a galactic scale
Entries in this blog
I've probably done a lot less than I would have liked to recently! But, I have just managed to change the way fleets work. Previously if a fleet had a connection it'd instantly take action with the star at the other end, regardless of where the fleet could be, in a kind of omnipotent way. Now, there is an actual little fleet that follows the route you set; when it needs to replenish ships it will move to systems that have ships to spare, and when it has ships and can attack it'll move to an enemy system you've made a connection to. It's overall route-finding it a little iffy atm (it only gets as far as immediate neighbors), but in theory it's all working. :)
Here's a screenshot!
As you can see, I also changed the display panel for the system and added one for the fleet too. The previous big box panel was getting on my nerves having to move it all the time, especially in windowed mode. So I change it to something more compact, everything should still fit, probably!
The reason for a fleet view panel is that there may be multiple fleets patrolling a single system, so on clicking that system it'll come up with multiple fleet views, from which you can select one to focus on and take action with.
Remember none of that art is even started let alone final, lol.
But that ship sprite I grabbed from this guy's blog: http://millionthvector.blogspot.co.uk/
Lot's of cool free stuff there.
I had this idea that fleets could be made up of different ships, created by different types of star systems. But in practice this didn't seem to be as clear than just a single number to represent all ships in a fleet, and there wasn't a good way to represent it outside of a screen-space-stealing menu display or something. So I ditched that and went back to using a single number, this keeps it simple and easy to display.
Now, seeing as fleets won't be comprised of different ships, which would have given them different attributes, I've decided to go back to getting buffs directly from stars. But these buffs would be fleet-wide, if a fleet is "patrolling" certain stars it'll get it's buffs in all stars it's connected to. These could be stacked too, for example; if the fleet patrolled several red stars (red represents an attack buff) it's attack would be increased many times, albeit it this would naturally mean lower defense and production and what-not.
Fleets draw their ships from the garrison of every star it's connected to, it can also transfer ships from it's fleet into a garrison. This will be automatically managed based on the demand of the fleet and the demand of it's patrolled stars. So when a fleet isn't doing any fighting, it'll more likely fill up garrisons to increase happiness in the star systems (call it security), and when there is fighting it'll take ships away and would naturally make the system unhappy (no one likes constant war).
Fleets can also only move so far from system to system. But this won't mean that you can only attack so far away... If you can make a route that's connected to only your systems, then it's all good. However, if the fleet is trying to attack something far away it may have to pass through several systems, if you don't own these systems then the fleet will suffer attrition for as long as ships have to take that route.
I've written way more than I intended to here, lol! Here's a picture of some basic routes, fleets can also capture systems now, it's coming along! Thank you for reading. :)
So graphically, the galaxy has always spun around even when you play, I don't know why I done this but I just found it cool (you can turn it off though, lol). However, it spun around evenly... Meaning that the stars further away from the center of the galaxy moved faster to keep an equal orbit, this looks a little weird on large maps, but it stopped the map from changing. The reason I didn't want the map changing was because I didn't know, when I first done it, how to handle stars overlapping (because they all moved at the same speed, stars in the center had shorter orbits). But the solution I'm using now uses specific regions to place stars, so instead of a completely random distance, it rounds it to the nearest 200 pixel. So now I can have pretty chaotic, ever-changing galaxy maps:
(Sped up for demonstration)
So, this is the start of the first project I'll be able to work full time on. How did this happen? I've been making games for aaages as a hobby, and it got me a job in the industry over four years ago. It was a good enough job, but it basically killed dead any drive to create games in my own time. I learned a lot in my 4+ years though, but it seemed the longer I was there the less I learned, and I certainly wasn't doing much recently. So with that experience under my belt and some money stashed away (always helpful), I thought now was as good a time as any to leave my job. I don't plan to do this full time forever, but for the time being that is where I am.
Spiral Lords was a game I created in 2009, it was the second game I ever released (a long two years after my first game). It was a game of galactic conquest. It wasn't a complicated game at all, and I was super proud of the AI I created for it. Up close it looked like this:
Your mission was to connect the stars so that ships could move between them. Ships would move to your own stars or attack enemy stars. You could make ships travel all around the galaxy in a big circle it you wanted too, though it'd take you a while to setup all those connections! The AI would do the same thing, I was proud of the AI because it was basically node-based weighted route-finding before I even knew what any of that meant! Graphically it was pretty shiny, lots of fiery animations and the black hole in the center spinning around like crazy gave it some dramatic sense of size. And you could zoom out to reveal the full extent of the galaxy you were playing in, complete with generated spiral arms:
So that's all the old stuff. For the new game I wanted everything better, but also simpler. Clearer gameplay, easier navigation, sexier visuals and more depth.
The game play; this will no longer require the player to create connections for every single star system and keep track of a long chain of them, instead the game will be introducing Fleets. Fleets can be created in an owned system, from there they can be assigned patrol points to other systems. From these other systems, the fleet will gather new ships (if you own that system) or attack (if it's an enemy system). So the the concept of "connections" is still there, but limited within fleets, which themselves will be limited in number and how many connections they can make.
Navigation will be a lot easier and more intuitive, with panning, zooming and toggles for all on-screen information. The player should be able to see anything without spending time searching for it. I also added a cool feature that lets you actually spin the galaxy round, it's similar to panning.
Depth is something the old game didn't really have, because the game was so simple. So this is a tricky one to add, as I don't want to layer on more concepts for the player to have to grasp. Everything should be directly related to the core concept of fleet movements, and could be ignored and learned through practice rather than teaching. For example, a tech tree could be used to help you toward a certain play-style, this could involve unlocking extra fleets, allowing more fleet connections, increasing the distance fleets can move in one connection, etc. There will be different types of ship (some of which are useless without others, like fighters can't travel without carriers), and ship production, so system happiness could also be a factor to consider when moving fleets, left too much alone and they may stop producing anything! Whatever it is, it can't be a distraction.
Visuals, well the shininess is the least of my worries. The most important thing is that information is displayed clearly, as there is a lot to see, the players must be able to decide quickly what is important without browsing the whole galaxy! So far all HUD elements are small icons, I've not found this to be an issue myself, as it allows a lot more of the actual game to be seen, but I understand some people would prefer them larger so I'm trying to make it as scalable as possible. Anyway, for the time being this is what I got, thank you for reading: