<Nexus>
Traveler of the Multiverse
Can't wait to see it go (semi-)public 

Sounds awesome.*Optimisation in progress*
Turn time of T209 on the gigantic test map is down to 1.3s-1.4s using clang-cl or ~1.6s using MSVC.
Switched out the "plot index"-based A* to coordinate-based, which is what a sane person would do if they needed to wrap coordinates.
A lot of time in pathing is spent just doing priority queue pops. It's disappointingly difficult to make a faster priority queue. Currently using a quaternary heap, which is ever so slightly faster than the std heap. I also have an SIMD quaternary vector heap which can sometimes be faster, but not by much. And an SIMD "multi root heap" which is slower.
I also tried Block A* (without LDDB), which was faster in simple pathing tests, but turned out to be slower for Civ4 pathing. Cost function overhead probably.
Think I can finally stop trying to make pathing faster and move onto other things.
I've also set Windows Terminal as the default now, finally, so maybe I could actually use all the Unicode at some poin
Am I the only lunatic whose opinion regarding more civs/bigger map is: MORE!!!!!!!!!!!!!!!!!!!! ?Some/few mods already have a limit of 50 civs in a game or even 100. For a real simulationist game 32 is hardly enough. Such mods want to have as many civs as possible even if most them are no challenge. But that's realistic: there are big countries and small countries.
I remember a modder even tried 200 civs limit but that failed. He discovered that the final limit was around 120-130.
Music to my ears, I assume the same goes for map size?I think players will be limited only by memory in my engine *(and whether the UI can handle your 128x128 relations matrix...). They will each need a largish chunk of memory for their caches. But performance might be terrible. Each player needs to calculate a cache of pathing plot props and found values, and maintain it. And some cache invalidations are broadcasted to each player: every player needs to maintain a plot danger bitmap that gets invalidated every turn by thousands of barbs. But I suppose you could solve all those problems with a little bit of war. It would be a good game if performance can only get better.
1040x640 is enough for everybody! Might be too much for me though. I end up feeling disoriented on Huge maps because everything looks the same... I'm thinking location hotkeys would be nice.Music to my ears, I assume the same goes for map size?
AI_foundValue computeFoundValue_Vectorised
avx512 avx2 avx512 32x avx512 16x avx2 32x avx2 16x
msvc 1251.99 1245.88 186.62 124.12 155.38 170.21
clang-cl 997.49 966.29 7.69 10.38 15.93 15.05
x 1.26 1.29 24.25 11.96 9.75 11.31
Soon. One day. I really should stop optimising... making sure at least a normal game works would be great.May I asky you kindly and carefully - do you have any idea when you expect your work be ready for public ? days,weeks, months (years) ?
1040x640 is enough for everybody!
Bill Gates said:640K ought to be enough for anybody.
Mods need bigger maps not the base game. Mods with more terrain types and features, even natural wonders, and of course better mapscripts are not like that.I end up feeling disoriented on Huge maps because everything looks the same..
It would be the AVX2 build. I'm on Alder Lake, so I shouldn't even have AVX512!What would happen if one tries to run your code on a CPU that does not support AVX512?
#if __AVX512F__
inline constexpr bool kEnableAVX512 = true;
#else
inline constexpr bool kEnableAVX512 = false;
#endif
Narrator: It wasn't enough for everybody.1040x640 is enough for everybody! Might be too much for me though. I end up feeling disoriented on Huge maps because everything looks the same... I'm thinking location hotkeys would be nice.
Oh yeah, a Super Marathon game speed would definitively be required.And then you have maze maps. How about a 1040x640 maze. You'll be there for weeks trying to win domination (you'd also have a super marathon game speed so you have enough time to meet everybody).
I wouldn't like that. I prefer Epic and Snail game speeds. Yes, it takes much longer but I like it that way in my modYou could also argue for the need for a movement speed multiplication setting, otherwise wars would last foreveeeer once empires are big enough.
I don't mind slower speeds, I like long games myself.I wouldn't like that. I prefer Epic and Snail game speeds. Yes, it takes much longer but I like it that way in my mod![]()
For hexes, what you'd do I think is just create a whole new renderer. And reuse some components like city billboards and symbols.@snowern a question: How are tiles implemented in your engine? Do you think it would be possible to add an alternate implementation? Such as hexes, or SMAC-esque dynamic voxel terrain?
Yeah, but SMAC's turns represent weeks or months, not decades, rigth?I always thought 4X games like Civ had an issue with time-space scale myself. Armies are too slow, wars take too long, years go by too fast, especially in the early game. It's not a big thing, but it just bugged me. SMAC is better in that regard.
How is it in Paradox games? And could those be used in Civ4, if possible at all?Also, since I started playing Pdox games, I realized the way they do diplomacy and ownership is just superior. Take Territory = Own Territory is a bad implementation. 4X's diplomacy implementations leans too much towards "Winner Takes All" and "Total War" types of game loops, but that's not how things happened historically, especially in pre-modern times.
Care to explain? I'm always looking for ideas for my mod what to add/improve/implement, if I can(honestly I love 4X games but my big issue with them is that people are still cargo culting Civilization and MOO after decades, when we should be innovating. There are features from games like Call to Power, SMAC and Space Empires IV that weren't ever picked by their sucessors, or barely-reused)
Maybe Civ5-6-7 map scripts could be used/adapted but AFAIK those are not as good as the ones written for Civ4 by some modders.Maybe you'd need new map scripts.
There are still only 2 dimensions for hexes, so most things except those hardcoded with squares in mind (rivers and city working range-related) would still work if you changed rules of movement and range calculation between them. In Snowern's words:Maybe Civ5-6-7 map scripts could be used/adapted but AFAIK those are not as good as the ones written for Civ4 by some modders.
a lot of things in the DLL appear to be grid-agnostic.