Sometimes, a seemingly small change leads you down a rabbit hole of large changes all over the place.
I already mentioned in last week’s dev-log that I was changing the way we deal with identifiers throughout the game, both on the client-side (what the player sees and enters) as well as on the server-side (what our systems and databases work with). While I previously dealt with concepts and plans only, this week I dove into the actual implementation…and I got sucked down a vortex leading straight into refactoring hell :-)
As said, these identifiers touch every part of the game. I mean this literally…every single part, every piece of code. When adjusting source file after source file to properly use the new identifiers, most of the work was tedious but easy. But every now and then I came across cases in which it wasn’t just „replace one with the other“, though. Usually, these more fundamental issues were rooted in the way the old identifiers allowed you to take shortcuts that are really bad practice with the new ones.
But one has to see the positive aspects as well: Since we’re ramping up to have an actual playable version for testers beyond our core team, I used the opportunity to get rid of dummy or testing code that was added in the early days of prototyping to get quick results. Since I have to look at every feature of the game anyway, I can remove or clean up these parts in the process. The result will be a cleaner codebase much closer to what the final production version will look like.
This week I focused on getting the flight within star systems working again and provide a nice UI for it. In the prototype you had to type in the name of the destination star system and select the planet you want to fly to in a drop down box. While this worked perfectly fine it was a bit cumbersome to use. To overcome this, I got rid of the dropdown list and made the text input field a bit smarter. For example: If you want to fly to “Toroth Beta a” (the first planet of Toroth Beta) you now can type in “Tor Be” for example and it will autosuggest all planets within the systems that start with these letters. Ideally we can include recently used and favorite locations in the autosuggest box at a later point. Another addition that might come handy would be a button right next to the text field that allows to pick a destination location from a map, but I’ll have to prototype that first and see how it works out.