I have 2 major problems with the game at the moment, and I'm going to have to leave them in for the first release.
Posted by captain_deathbeard on Aug 14th, 2011
Firstly, performance is very bad when there are more than about 70 characters in the area. Which is almost always. For a start I have temporarily taken out all civilian NPCs from the game, and NPC numbers in general will be kept small.
This however is a temporary measure, my solution to this is to split the game code in half and run most of the code on a background thread, while the main thread will be used for rendering and physics, nothing else. What this means in laymans terms, is the frame rate will be blazing fast even if there are 100's of NPCs around, but its a major job for me and I estimate will take me a month or two. So I'll leave it for later, until then bear with the lousy frame rate.
Secondly is that loading times as you move about the map are ridiculously long, especially when a town is loaded. For now I've fixed it up a little so Its not so bad when you go back to a place you've been before, because some data is kept in memory. Its still bad though, and the main cause of it all is the pathfinding system analysing the map.
So the solution for this I have decided is to switch to a new pathfinder library (called recast). This will not only fix the loading times, but will fix the buggy pathfinding system currently in place (which is another problem). Again this is a big job that will take a month or two, and I really don't want to do it, not when I have so much else to work on at the same time, so my plan is to wait until I can hire another programmer. I need an extra hand anyway, and if I had someone in charge of keeping the movement/pathing system running smoothly I could get things done a lot faster.
So I'm leaving these problems in for now; low framerate, long loading times, buggy pathfinding. Apologies for this, but it would delay the game at least another 4-6 months and if I can release the game sooner, the sooner I can make enough money to pump back into the game and speed up development.
Now I can keep moving on, I'm going to implement game saving/loading, then I'm going to actually start playing the game a little so I can start balancing gameplay a bit.