Just a little progress report...
Currently I'm working on removing the limitations on how many Buildings and Wonders can have an effect on the game.
I'm using an adapted (included serialization, for game saves, and full cell access for network functionality) STL Bitvector to do the work of storage, instead of UINT64's.
I tested the concept of this on "achievements" which uses uint64's to store game "achievements" basically whether sea cities have been built, intended to trigger access to the different map layers, but wasn't needed, since they fudged the issue.
Bitvectors work fine, compile fine and run fine... I have to do some testing on MP, however.
I'm currently working on implementing city improvement and wonder flags this way... and the concept is essentially the same, except that there are hundreds more references to them.
A big issue is that you have to be really careful not to overload a virtual network packet (max 8192 bytes- frame size for CTP2 data, not TCP) by including too much data, or you'll have fragmented sends.
I don't see this as a big limitation... although we'll probably be limited to say... a max of 1024 flags (E.G. 1024 each of Wonders and City Improvements.)
If it becomes an issue, I'll split out separate network packet structures for them.
Currently I'm working on removing the limitations on how many Buildings and Wonders can have an effect on the game.
I'm using an adapted (included serialization, for game saves, and full cell access for network functionality) STL Bitvector to do the work of storage, instead of UINT64's.
I tested the concept of this on "achievements" which uses uint64's to store game "achievements" basically whether sea cities have been built, intended to trigger access to the different map layers, but wasn't needed, since they fudged the issue.
Bitvectors work fine, compile fine and run fine... I have to do some testing on MP, however.
I'm currently working on implementing city improvement and wonder flags this way... and the concept is essentially the same, except that there are hundreds more references to them.
A big issue is that you have to be really careful not to overload a virtual network packet (max 8192 bytes- frame size for CTP2 data, not TCP) by including too much data, or you'll have fragmented sends.
I don't see this as a big limitation... although we'll probably be limited to say... a max of 1024 flags (E.G. 1024 each of Wonders and City Improvements.)
If it becomes an issue, I'll split out separate network packet structures for them.
Comment