Friday, 12 Feb 2016
I’ve been doing some good progress on the server infrastructure systems. Today and tomorrow I’m planning on doing some polish and finalization work on many systems, as well as more tests. Most of the systems are functionnal now. Let’s have a look at the list I posted a week and a half ago… I’ll use icons to show the status: a green checkmark when the task is done or almost done; a hammer when it’s still a WIP but has seen some significant progress; and a red checkmark when the task wasn’t started or is still far from completion:
-
server authentication (players will be able to host their own dedicated servers in the future, it has to be secure) -
client authentication -
access rights verification (who has access to the prototype/game) -
security/encryption of requests and tokens -
automatic bug and
crash reporting -
sessions logging (both for client and server) -
kickstarter database importing -
indiegogo database polling and importing (because people can keep pledging) -
rewards claiming / matching databases (lots of people used a different email to pledge) -
versionning and patching ( full or incremental, nobody wants to download a 4 GB patch for every single minor update ) -
stats, error logs and backups -
available servers list displayed in the launcher -
connection limitations /
logging queue -
launcher, account management -
performance and ability to scaling up
Let’s now have a quick review of the WIP tasks:
- automatic bug or crash reports: the launcher has a tab where people can report an issue or a bug, and it is automatically submitted to our infrastructure. This works, but we need to add some security to it, to ensure people don’t abuse that functionality. Automatic crash reports hasn’t been done yet.
- IGG database polling and importing: Keith did some work on that but AFAIK we still have the problem of being notified when a user just pledged, so that he can play asap.
- rewards claiming: Keith did some work on it, but I’m not sure of its exact status, so I marked it as a WIP, but it’s possible it’s already complete.
- versionning and patching: this is the #1 task that needs the most work, and is currently the less advanced. We’re still at least a week away from having it working.
- stats, error logs etc…: we’re already logging various important events ( who logs in and at what time and from what IP ) to the Azure storage DB, we can do more but it’s now low priority.
- logging queue: low priority, I’ll come back on this in a second…
- launcher, account management: the launcher is visually a mess, it is functionnal but looks quite amateurish. Not sure how much time we can allocate to improving its look before we launch. I guess Dev-access backers wouldn’t really care. Account management is basic: it simply shows the list of pledges you’ve done so far, as well as some account details ( your name, your backer level etc… ). It’s read-only at the moment.
- performance: will eternally be a WIP
Yesterday I worked on displaying the active servers list in the launcher. I spent more time on stupid WPF issues ( DataGrid doesn’t allow double-clicks, and tricks found on the net to solve it aren’t compatible with the metro theme we’re currently using, grrrr ) than on the web code. Anyways, the servers list is now functional. It displays for each server its name, description, player count + capacity and owner name. One thing it’s lacking is ping, but we can’t ping the server directly at the moment ( due to using our own custom network protocol ) so there’s no easy solution to displaying the server latency. We’ll probably address that much later.
A server has a maximum players capacity and the launcher will refuse to connect to that server if that capacity is reached. This is already working, however I’d like at some point to add a queue where you simply wait your turn before you connect to the server. I set the default capacity to 50 players, however this is only as a start. Once we verify that the server isn’t lagging / crashing, we’ll slowly increase this threshold if that’s needed. Considering that we have something like 300-400 dev-access backers and that only a fraction of these will be concurrently playing at a given time, it is possible that we won’t even need to increase it. I guess we’ll see.
server authentication (players will be able to host their own dedicated servers in the future, it has to be secure)
automatic bug and
crash reporting
The API seems to have been designed with future expansions in mind. Lots of parameters are currently left unused for future use. That’s both a plus and minus, a plus because it should theorically make future expansions easier; a minus because it makes it look more complex than DX12.



