Ironically, in the week of the Brexit decision, our work continued to revolve around bringing people together (Michi’s work on the chat system) and dealing with economics (Martin’s population simulation code). We also received some external help this week to get our UI design process back on track and we hope to make good progress in this area over the coming weeks.
Not much to report this week, really. Just as planned, my work on the population simulation systems continued. The planetary populations now actually consume the wares they have purchased before. This affects their satisfaction in various areas. The overall development of a population - wether and how it grows - will largely depend on these degrees of satisfaction and I got started on implementing the basic data structures for this part of the simulation as well. Since I’ll be away for a four day weekend and have a lot of external contract work to take care of next week, don’t expect anything newsworthy from me in next week’s issue of our development log.
While continuing my work on the chat system I found it more and more difficult to properly test the code I wrote. Usually I had to implement the server and client side at the same time and then test by logging in multiple users, creating a channel and writing some messages etc. I decided that it is finally time to look into a test framework for our server side of things. Luckily Akka has a testing framework for actors called TestKit. It takes away a lot of the pain of testing asynchronous messaging by allowing to write synchronous unit tests. It took a bit longer than expected to get started but now I can write server side logic, test it and when I am happy with it write the corresponding client code.
Besides the tests I managed to get multiple channels running (server & client). A player can join different star systems’ channels and chat there. The history is preserved between the sessions and the latest messages are displayed when coming back to a channel. The client side implementation is still a bit flaky but that’s okay because we need to refactor the client code as soon as we make progress with the UI design.