1/22/2017 in devlog
The development of Prosperous Universe gained momentum this week: We worked on very technical things like the servers' cluster setup and monitoring as well as user interfaces and gameplay relevant topics. Feels good, let's keep it up!
I wanted to finally get done with the whole commodity exchange topic this week, but the "maintenance work" I started last week turned into a far larger project than I had anticipated. Turns out our server runs just fine in the test and development environments we've been running it in for well over a year now but it breaks down in a sad and miserable way the very moment it is confronted with an actual cluster setup like we expect to see in production. We were aware of this to some extend, but we've been putting off work on the required improvements in favor of feature development for months. So this week I finally stopped procrastinating and started to get it over with. Everything is already a lot more stable than a week ago and the invested time is definitely paying off. But I'm still not quite done yet. Some edge-cases still need to be looked into and I should probably prepare our systems for a few more failure scenarios to be expected in production.
Last week I started to fix the visualization of FTL and STL traffic in the universe map. There was only one thing missing that I added at the beginning of this week: a toggle to switch between various time ranges. So right now the traffic data is available for the last hour, the last twelve hours and the last day. This is an arbitrary setting at the moment we might change it to some values that will make more sense in the game later.
I kept working on the user interface for most part of the week. There has been an open issue on how we want to display the map controls in the universe and system maps. In the end we decided that we want have maps that are specialized by topic, e.g. navigational, political, economic. That way the amount of controls per map is rather small and clear. After doing some groundwork, namely writing button and button group components, I was able to quickly rewrite the old map controls. Some work is left for the next week: We want to be able show various data from the commodity exchanges like current price, traded volume etc on a per system and per material (e.g. traded good) level. Therefore the map controls need to allow a selection of material.
There is one more thing I was working on and off this week and that's visualization of technical metrics of our servers. Since Prosperous Universe is a distributed system with many nodes working together monitoring these computers in a efficient fashion is crucial as you can imagine. Fortunately we don't have to re-invent the wheel here and there are quite a few solutions available. I looked into them and setup a test server that monitors our database.