Attractadore
Chieftain
Just wondering if I can make a 360 by 180 world map and how much RAM it would take to play it with 34 civs.
So, you mean that after Industrial age it becomes too slow
Just wondering if I can make a 360 by 180 world map and how much RAM it would take to play it with 34 civs.
Conclusion: it should work. However When you zoom out you get graphical glitches as only the bottom 128 "rows" of plots are drawn. This makes a valid max height, though playing with the glitch is possible without major issues. At least colonization has this 128 row limitation in the exe and I assume bts has it too (or it would make absolutely no sense to add it to colonization).That would make 64,800 plots which is theoretically below the maximum limit of 65,536 plots.
Do you think re-implementing the pathfinding algorithm is worth it? Firaxis probably only implemented a straightforward A* algorithm, but I don't know how much you can actually optimize there. But still I remember reading some people talking about doing something like that.Another thing, which is already mentioned is performance. Many AI delays are linear as in 10 cities takes twice as long for the AI to handle than 5 cities. However unit movement doesn't have linear complexity. Pathfinding is done by the exe, which mean it's hidden (unless you add a pathfinder to the dll), which makes it a bit hard to tell precisely how fast it is. However exponentially (or worse!) performance related to number of plots is quite possible and would fit my experience. I don't think I would like to wait for the AI to take turns on such a map even on a supercomputer.
Just out of curiosity, are those optimizations available somewhere?If you really want to play on a huge map, I would recommend that you profile and optimize the DLL as a highly optimized dll will be less affected by the slowdown, or rather a 50% increase isn't as bad if your starting point is better. Sadly it's easier said than done to optimize the code. I have done it with good results, but it is time consuming and I would classify it as one of the advanced modding tasks as it is much more demanding on theoretical programming knowledge than "regular" dll modding.
I don't think it's worth it to make your own. Either stick to vanilla or use the pathfinder from K-mod. I don't have experience with the K-mod pathfinder, but from reading the comments in the file, it seems to be designed with performance in mind. It's on the todo list to take a closer look at that one.Do you think re-implementing the pathfinding algorithm is worth it? Firaxis probably only implemented a straightforward A* algorithm, but I don't know how much you can actually optimize there. But still I remember reading some people talking about doing something like that.
Not as standalone modcomps. It tends to be somewhat mod specific how to optimize. I have one general advice though. GC.getDefineINT() is dead slow. If you use one more than a few times each turn, cache it in GC and make a get function to get the cached int. I reduced the AI wait time in RaR by 2.5% by caching one getDefineINT in CVUnit::canUseProfession() because the AI calls it over and over. Naturally you can also just hardcode often used variables, but a cache in GC is more xml friendly. Also if you decide to hardcode, at least use an enum to make sure you only need to change in one location.Just out of curiosity, are those optimizations available somewhere?
I don't think it's worth considering optimization in a base on top of K-mod. The main problem is that modders add new code, which in most cases is much slower than K-mod or even vanilla. That's one reason why optimization is very mod specific.was mainly asking you because even K-Mod couldn't have covered everything; so it's always good to have all possible avenues for optimization at the back of my mind.
Conclusion: it should work. However When you zoom out you get graphical glitches as only the bottom 128 "rows" of plots are drawn. This makes a valid max height, though playing with the glitch is possible without major issues. At least colonization has this 128 row limitation in the exe and I assume bts has it too (or it would make absolutely no sense to add it to colonization).