Weekly 0: Friday Facts and SilverTiger

19 June 2020, Ecen


This week we started work on Network Override for this summer. As a fan of Factorio and their weekly Friday Facts, I suggested to Algot that we should also do a weekly update. It seems like a good practice in order to be transparent about what we do, and like a good time to reflect on what we do each week.

Last time we worked on Network Override, we ended in a very large refactoring of the project. This meant that the game that worked well at the end of last summer, now didn’t work at all. However, we had already done much of the restructuring and creating many of the necessary classes, so our first priority was to get the rendering to work.

We are using our own OpenGL based render engine that we are calling SilverTiger, after the author of the lwjgl 3 tutorial we used to get it running to begin with. Using our own engine is seeming like a necessity, but it does come with some issues. Since we upgrade the engine alongside the game, the engine and the game logic had developed some dependencies on each other which both made it very confusing to debug, and caused problems when we were now refactoring all the game logic.

Our solution was to give SilverTiger it’s own repository where we can test it with no game logic involved. This made it much easier to see which parts should belong to the engine and which should belong to the game. Moving the engine was surprisingly easy, but took some time due to the amount of code involved. We were then able to make the engine easier to use and much less dependent on any outside logic. Finally, re-integrating the new SilverTiger in our main Network Override project did not take too much effort, and when done, rendering simply worked!

In the latter part of the week we moved on to our game logic and have so far managed to re-implement/move to the new system displaying windows and being able to type in them. There is still a fair bit of work left, but as we get more core systems working again, getting other stuff to work becomes easier, thanks to the new structure.