 |
|  |
 |
|
MrBaggins
|
|
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.
|
|
|  |
 |
|
MrBaggins
|
|
ROFL. There is just so much to change, with these bitvectors...
Its amusing to note that the code contains some wonderful nuggets such as
code: C:\ctp2\ctp2_code\gs\gameobj\UnitData.cpp(294):
sint32 wonderHPBonus = wonderutil_GetIncreaseHP
(g_player[m_owner]->m_builtWonders);
Essentially the code is liberally sprinkled with public member variable access, when the access should almost always be public function returning protected/private member var.
|
|
|  |
 |
|
MrBaggins
|
|
Right... however, it can be achieved through SLIC, unless there is some game effect that should include the destruction of Wonders by default...
Bombardment?
Conquest?
If there is any interest in this we should vote and decide a specific implementation method.
|
|
|  |
 |
|
MrBaggins
|
|
(specific random destruction, that is)
|
|
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:34
|
|
I was looking through citydata.cpp and noticed that nanoinfections can destroy wonders. I think there's a few other obscure cases like this.
|
|
|  |
 |
|
epeterson
|
|
I think that if you destroy a wonder you should get the same amount of points subtracted from your score that the builder got added to his/her score for building it. It would at least discourage such a nefarious act! I mean really folks, could you even imagine destroying the colisseum or the pyramids??
If you build a wonder, it should give you some advantage. But the good part about some of the latter wonders is that they give the player that didn't build it the chance to compensate by building city improvements. (ie Internet Wonder=Computer Centers)
BTW, it's annoying as all get out that you can still build city improvements when you have already been given the equivalent advantage by building the wonder. (once again, the Internet Wonder). Even if you build them it doesn't help you because the wonder already took care of it! Can't we just remove those city improvements from the list of improvements for the build que once you have the wonder?? You can always make the CIs available again if the wonder is destroyed or captured.
Last edited by epeterson on 18-02-2004 at 22:08
|
|
|  |
 |
|
Maquiladora
|
|
quote: BTW, it's annoying as all get out that you can still build city improvements when you have already been given the equivalent advantage by building the wonder. (once again, the Internet Wonder). Even if you build them it doesn't help you because the wonder already took care of it! Can't we just remove those city improvements from the list of improvements for the build que once you have the wonder?? You can always make the CIs available again if the wonder is destroyed or captured. |
This was fixed before through SLIC IIRC so it shouldnt be a problem.
|
|
|  |
 |
|
MrBaggins
|
|
Its kind of a choice a player has to make... IMO
Essentially the reasoning for still allowing you to build an improvement after you've gotten a particular Wonder, is that the virtual buildings that are created can disappear, and you might want to anticipate that, and build actual, real life buildings in their place.
If the city with the wonder in, is conquered, they disappear (for the original player,) as they would if the city was destroyed, or the wonder became obsolete.
Building a replacement wouldn't happen instantly, and a player should be given opportunity to have these building effects be uninterrupted.
Its a (reasonable) design decision, not a bug.
|
|
|  |
 |
|
MrBaggins
|
|
Nope... no maintainance cost
Here's the way things are structured...
In the city data record, there is a function, "GetEffectiveBuildings()" that returns the "effective" buildings the city has. This function returns a combination of the real buildings and the virtual buildings.
For effects, "GetEffectiveBuildings()" is called. For upkeep, only the actual buildings are referenced.
|
|
|  |
 |
|
MrBaggins
|
|
Should it affect your score? Probably. The question is does that score matter, right now?
A player's score is pretty irrelevant at the moment, IMO... If the game is played through to completion (victory) regularly, and people care about how they did, relatively speaking, then it does. That should happen when we've "fixed" the game as it were.
If you want an effect which might make someone think twice about committing such an atrocity, then you should make it a diplomatic atrocity... your diplomatic regard with all civs goes down... (of course this is assuming that diplomacy means something in general.)
|
|
|  |
 |
|
epeterson
|
|
I agree! But neither the score or diplomatic reputation seem to have any real consequence in the game as they stand right now.
Perhaps automatic trade embargos, (technology included), should take place when your reputation is in the crapper?
|
|
|  |
 |
|
MrBaggins
|
|
Agreed.
An "embargo" is a very specific type of CTP2 restriction, restricting you from forming caravan trade deals for that nations goods... where you get gold in return.
The problem is that gold is effectively meaningless in CTP2, right now...
Thats why we are planning to make that more important, and for alliances to mean something (other than just another cheesy way for a human player to win.)
|
|
|  |
 |
|
epeterson
|
|
Since we are on the subject of wonders...
Has there been a discussion about the wonder that gives worldwide radar coverage?? My brother and I have agreed to NOT build the wonder as it gives an unfair advantage to one player that the other player can NEVER overcome. As a solution, I suggest that when one player builds a wonder the other player can somehow compensate albeit with some sort of penalty.
For example: If I build the Internet wonder, he can build computer centers in all his cities to play catch-up. It's better for play balance this way and it may give you the ability to have a long and fun game. I think the way you have it now is that not only can I build the wonder but I also can have computer centers virtually ensuring my scientific dominance!
Then again...If you have the ability to build the wonder AND computer centers why should you be handicapped just in the interest of play balance??:shrug: I still think the radar coverage wonder needs some serious addressing!
|
|
|  |
 |
|
MrBaggins
|
|
Make it a limited (or minor, depending on what we call the new feature,) wonder
Thus every civ can built it, but only once.
|
|
|  |
 |
|
MrBaggins
|
|
Here's the thread on wonder balancing.
|
|
|  |
 |
|
Kull

|
|
El Paso, TX USA
Mar 1999 time: 22:34
|
|
quote: Originally posted by MrBaggins
Its kind of a choice a player has to make... IMO
Essentially the reasoning for still allowing you to build an improvement after you've gotten a particular Wonder, is that the virtual buildings that are created can disappear, and you might want to anticipate that, and build actual, real life buildings in their place.
If the city with the wonder in, is conquered, they disappear (for the original player,) as they would if the city was destroyed, or the wonder became obsolete.
Building a replacement wouldn't happen instantly, and a player should be given opportunity to have these building effects be uninterrupted.
Its a (reasonable) design decision, not a bug. |
One problem: This advantage (such as it is) accrues only to the human player. The AI isn't smart enough to determine it's about to lose the city containing the Wonder and thus to "plan ahead" by building replacement improvements. Even worse is the far more likely scenario that AI Civs will build both a Wonder AND the related city improvements. While the human player recognizes a waste of production when he sees it, I'm guessing the AI won't make that distinction.
|
|
|  |
 |
|  |
All times are GMT. The time now is 05:34. Apolyton Time is 00:34. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|