3/25/2018 in devlog
In a rare case of sociability, the simulogics team left their respective caves to get together IRL this weekend. Michi has an upcoming overhaul of the location system to report, while Martin is about to roll out the customizable notification feature to the alpha test. Julian meanwhile has found his true calling as a sniper.
I am reporting from the engine room this week. I spent the whole week working on the location refactoring as we like to call it. I'll spare you most of the technical details but still want to give a quick overview.
When Martin and I started to work on the project we only had to deal with star systems and planets. So we decided that the location of a ship for example is defined by the system and the planet. Since we don't need the spatial position of a ship to check if it's at a planet the location itself is nothing more than the system identifier and planet identifier. A location would look like this
[ABCD, 1234] with the first part being the system id and the latter the planet id.
With that system in place it was easy to perform various location-relevant tasks like checking if a material transport from ship to ship or ship to base was possible. We simply had to compare the ids in the location.
Later we added a third datum to the location: orbit. Orbits are relevant when ships drop out of FTL flight for example. In that case they are within a given system, but have no reference to a planet, but are on an orbit around the sun themselves.
As you can imagine these locations stretch all the way across the code base and are hard to maintain if they change: A ship for example has three stores (cargo, STL fuel, FTL fuel) and all three stores have a location. When the ship moves we have to update all three stores as well. This gets messy quickly, so we designed a new location system that I am implementing right now.
When I am done with it we will have a far more flexible system that allows for future implementation of all kinds of cool stuff: space stations in orbit around a sun, ships with production capabilities (think mining barge) and so on.
While the bulk of my work time was spent on our team meeting this weekend, I did get around to some classic PR work again. I had a call with Mimimi's Johannes Roth, who gave me some valuable advice regarding our launch preparations. While Early Access is still a couple of months away, building up relations with the press and gaining enough momentum for the launch to succeed is a slow and time-consuming process.
That is why, this week, I started going through the press list I made a couple of weeks ago, and started looking for individual journalists who might be personally interested in Prosperous Universe. Rather than sending out mass press releases (which is something I might do once when the game comes out), I decided to focus on a handful of people to reach out to beforehand. To find them, I searched for reviewers with a penchant for sci-fi and/or simulation games, read some of their work, and looked them up on social media. (Side note: Some news and reviews websites do a terrible job of crediting their writers.) Lucky for me, Surviving Mars came out the other day, and most gaming websites reviewed it. It's a sci-fi strategy game focusing on realism, so reviews about it provided a good starting point for me to find journalists who might be interested in Prosperous Universe as well.
Lastly, here's a new tutorial video for you to enjoy. It's meant to provide our testers with a list of commands they can look up specifically, but watching it from start to finish should at least give you an idea of what's currently possible in the game:
Very little to report from my side this week. I had to deal with lots and lots of work for an external client, with many small work items, calls and admin stuff sprinkled all over the week. That means that I rarely got the chance to focus on one bigger thing. Fortunately, all I had actually planned in terms of Prosperous Universe this week was wrapping up the last remaining items of the notification system so I can finally roll it out to the alpha server and start on something new during the next sprint. I didn't quite manage to tick all the boxes on my list due to the aforementioned work situation, but I'm tempted to just push the remaining items back into the backlog to start with a clean slate next week. Usually I'd just take care of it on the week-end, but we had the annual simulogics team meeting this Saturday and Sunday, so that wasn't an option.
Anyhow, see you next week, hopefully with news about exciting new stuff :)
As always: we'd love to hear what you think: join us on the forums!