Extending the generic property system

But there was some cool stuff in google on him.:lol:

He was the most entertaining (and plain wacky) lecturer I ever had. Lots of us did his course just for the lectures, with no intention of actually attempting any of the questions from that course in the exams.
 
AIAndy, everything you said made perfect sense but I am still missing something. the last time I did anything with calculus was 1974/5 it was the first and only exam I forgot everything as I walked in the door and had to prove everything from first principles before answering the questions. I did not do well on that exam (just passed) so concentrated on computers and pure mathematics instead.

So I googled "predict-correct numerical integration scheme" and "Conway functions". While interesting the resultant pages were related to that new fangled "Game Theory" stuff. Is that right? I don't think I have done anything on game theory ever.;)
It is not really game theory.
Rather it is related to Finite Element Method.
 
When I get around to it, I want to implement two more things here:
Run time evaluated Expressions and Conditions (meaning boolean expressions).

The idea is to allow expressions that depend on the game object to determine the parameters of property manipulators (or their activity in the case of conditions).
So instead of a specific population dependent property source as there is now for crime, you would use the default constant one with an expression depending on the city game object attribute population for iAmountPerTurn.

EDIT: Btw, that will also be used for some other things like Prereqs (so we don't need all those very specific prereq and/or/whatever tags).
 
@AIAndy:

I first posted this on the Balance thread, but it probably belongs here instead. :mischief:

OK, so to do civilization powers, the following changes would need to be made.

1. Outcomes would need to be able to be tied to buildings (preferably the Palace)

2. Outcomes would need to be able to have a <prereqcivilization> tag or something similar.

3. Property Growth would need to have the option to be scalable by gamespeed.

4. Outcomes would need the ability to affect things on a global scale, not just in one unit/building/city. Example; One of the powers I'm considering would give +1 River Commerce per tile for x number of turns, which brings me to my last point,

5. The effects of Outcomes need to be able to have long durations, currently IIRC it is only a one-off thing. I may be wrong on this one though.

How hard/how much work would it take to implement these, if they aren't implemented already?
 
@AIAndy:

I first posted this on the Balance thread, but it probably belongs here instead. :mischief:

1. Outcomes would need to be able to be tied to buildings (preferably the Palace)
It is already possible to have an outcome mission type require a building.

2. Outcomes would need to be able to have a <prereqcivilization> tag or something similar.
When the boolean expressions evaluated on game objects are finished, that will be one of the possibilities.

3. Property Growth would need to have the option to be scalable by gamespeed.
With the integer expressions on the property manipulator parameters, that will be possible.

4. Outcomes would need the ability to affect things on a global scale, not just in one unit/building/city. Example; One of the powers I'm considering would give +1 River Commerce per tile for x number of turns, which brings me to my last point,

5. The effects of Outcomes need to be able to have long durations, currently IIRC it is only a one-off thing. I may be wrong on this one though.
I think best would be to have the ability for outcomes to apply temporary buildings/features/promotions/traits and use those to have an effect (as there are plenty of effects already implemented for those).
 
I think best would be to have the ability for outcomes to apply temporary buildings/features/promotions/traits and use those to have an effect (as there are plenty of effects already implemented for those).

Could the duration of those effects also be scaled by gamespeed?
 
I am having trouble with the new Disease Property. It seems to work fine but the icon/button is the same as the Air Pollution symbol even though I added a new one in the GameFont files. :(

Did something change or did I miss a step?
The FontButtonIndex refers which icon to use now (starting from 0 which is the crime icon and so on).
 
As mentioned in another thread I am considering extending the generic property system towards supporting 1D-properties. That means instead of a single value for a property, you have an array of values.

The target is to make it easier to add simulations of the spread of specific cultures or religions or similar (which currently are just there in a city or not).
Each of the cultures/religions will spread/diffuse like single properties, but instead of a simple decay, they interact. Two more static properties (like flammability, but I will improve the support so you can add/remove to it from civics and the like) will provide culture/religion capacity and individualism. The higher the capacity, the higher the sum of the culture/religion property can get in a city before it decays. The higher the individualism, the more the decay will be applied on the strong cultures/religions so you end up with lots of smaller cultures/religions and on the opposite end of individualism the decay will be applied to the weak cultures/religions so you end up with few strong cultures/religions.
 
As mentioned in another thread I am considering extending the generic property system towards supporting 1D-properties. That means instead of a single value for a property, you have an array of values.

The target is to make it easier to add simulations of the spread of specific cultures or religions or similar (which currently are just there in a city or not).
Each of the cultures/religions will spread/diffuse like single properties, but instead of a simple decay, they interact. Two more static properties (like flammability, but I will improve the support so you can add/remove to it from civics and the like) will provide culture/religion capacity and individualism. The higher the capacity, the higher the sum of the culture/religion property can get in a city before it decays. The higher the individualism, the more the decay will be applied on the strong cultures/religions so you end up with lots of smaller cultures/religions and on the opposite end of individualism the decay will be applied to the weak cultures/religions so you end up with few strong cultures/religions.

:clap::clap::clap::woohoo::woohoo:
 
As mentioned in another thread I am considering extending the generic property system towards supporting 1D-properties. That means instead of a single value for a property, you have an array of values.

The target is to make it easier to add simulations of the spread of specific cultures or religions or similar (which currently are just there in a city or not).
Each of the cultures/religions will spread/diffuse like single properties, but instead of a simple decay, they interact. Two more static properties (like flammability, but I will improve the support so you can add/remove to it from civics and the like) will provide culture/religion capacity and individualism. The higher the capacity, the higher the sum of the culture/religion property can get in a city before it decays. The higher the individualism, the more the decay will be applied on the strong cultures/religions so you end up with lots of smaller cultures/religions and on the opposite end of individualism the decay will be applied to the weak cultures/religions so you end up with few strong cultures/religions.

What sort of effect will that have on end-turn times? Currently from my profiling it looks like there is about 1 sec of turn time per property (or more accurately, 5 secs or so of time difference between manual measurement and the profiler, which is probably due to the properties being multi-threaded). That isn't bad, but if we start getting huge arrays of properties could that be an issue?
 
What sort of effect will that have on end-turn times? Currently from my profiling it looks like there is about 1 sec of turn time per property (or more accurately, 5 secs or so of time difference between manual measurement and the profiler, which is probably due to the properties being multi-threaded). That isn't bad, but if we start getting huge arrays of properties could that be an issue?
It depends on how you use it. With lots of expensive rules that involve plots and units the turn times can be high. But if the array is usually quite sparse (so not all religions/cultures/whatever are on the same object) and maybe a restriction to using cities instead of using plots the cost will not be that large.
 
It depends on how you use it. With lots of expensive rules that involve plots and units the turn times can be high. But if the array is usually quite sparse (so not all religions/cultures/whatever are on the same object) and maybe a restriction to using cities instead of using plots the cost will not be that large.

Sorry I may be slow here and I'm trying to learn all the property stuff...

By object you mean for example a unit. So you are saying if a unit only had one culture right?

And by that restriction you mean only cities would produce and collect the culture spread?
 
Sorry I may be slow here and I'm trying to learn all the property stuff...

By object you mean for example a unit. So you are saying if a unit only had one culture right?

And by that restriction you mean only cities would produce and collect the culture spread?
At least that is cheaper as there are considerably fewer cities than plots or units.
But we will see.
 
There can then be other ways for units to interact with the system (I'm pro-city only here). Units can have a declared culture and it can be quite rational for that to be unalterable after the unit was created. In fact, I was planning on using a combat class via subcombats to represent this. When trained or born they pick up the culture that has the strongest influence in the city they originate in.

Then some units, like Storytellers and Great Artists, may be able to, via their usual culture spreading missions, also add a static amount of the cultural influence that is equivalent to their 'declared culture'. Thus if you wanted to promote a given culture in your nation beyond what little buildings and trade and diffusion would be able to achieve, then you could build and send these units to promote particular cultures (as well as original Civilization Culture levels as normal.)

This diffusion is much of why I wanted to look at properties in the first place. You mentioned something about the system being fixed thus more akin to Flammability and that's my only concern because from what I understand there is no ability to diffuse with this system. So in general, I have these questions for you on this:
  • Would something more dynamic here be problematic?

  • Is the problem with a more dynamic method on this be the 'onchange' method being employed that gets checked rather frequently?

  • Could a round by round check improve processing time a bit? (checking between rounds once rather than anytime there's an immediate cause for a property change)

  • I don't think it'd be necessary to maintain the 'auto-building' response capabilities on these either. Would it help to eliminate that element? I think it'd be more appropriate to base prerequisites for building and training on the culture values instead - and a declaration of the particular culture existing in the city - I suppose it could be useful to have that as a building though... something to represent a 'local trait' as it were - but it would be based on being the strongest culture present rather than the actual strength of that culture's influence itself.
Sorry... started rambling a bit there. I'll leave it at that for now.
 
Back
Top Bottom