Working on a scripting engine is always a challenge. Ensuring your parser is truly fixed after you’ve found that weird edge case is always frustrating. After running my tests I would see something like this:
Test1: 102,005 objects loaded
Test2: 102,004 objects loaded
Test3: 102,005 objects loaded.
Ok, so 1 object sometimes loads…, and sometimes doesn’t. Is that ok? It’s really tempting to move on…, but at the same time you know something is fundamentally wrong. Typically this is a case where the thread is not being locked properly and you have random allocations/deletes happening. Personally, I think these issues should be fixed before they become larger issues, and before it’s harder to determine what the issue even is.
Text on the map
Next, I worked on how the text is rendering on the map, and if it functions as the user would expect it too. It's still not close to being as good as CK2, but it's getting there! The text can now curve properly over a mountain and other parts of the terrain.
Originally I wasn’t sure if I should have text on the map. Total War doesn’t do it, and they have a great looking map! However, during the phase of selecting a province I got frustrated not knowing which province I was selecting. So I felt it was necessary to have the text.
Finally, another issue I have with games are their load times. When I first started this project my load times were pretty crazy, and that was before loading in all of the scripting data. I think at one point it was up to 2min on textures alone. It’s not that I’m loading in a lot of textures, but my texture files are pretty large and I’m creating texture atlases on the fly to cater to the modding community. I feel it’s very important to have fast load times, or at least reasonable load times. I could be selfish about this, but partly because I want to be able to test the game fully without having to wait a good 5 min for everything to load up.
My initial goal was to try my best and match CK2/EU4 loading times. I think for the amount of data being loaded, Paradox does a really good job. I also needed to be able to see visually what was being loaded, so I created a loading screen, and as you can see in the video. I think the current loading time is pretty good.
So at this point everything from the scripts have been loaded…, and I’m now back to UI elements! :)