I've figured out most of the numbers in the files and I'm having great fun making changes for my friend (including aliens in the population, martian colonization, etc). However, I've been having trouble "converting" a person from one thing to another (such as conversative->liberal). When using "votertype_freq" I can reduce the number of people in a group by a certain proportion (unsure how the number relates to it) or increase the number in a group by adding the attribute to some in the set of ALL the population - but if I want to move a fixed amount of people (like 10000) from one group to another by removing an attribute and adding another, there seems to be no way to do it.

I think I got close when I put:
#Events,_All__freq,-1.00-(0.0*x),Aliens_freq,1.00-(0.0*x)

It seems to take the same number from everyone as it adds to Aliens (but I believe it's just 3% of the potential population that could move no matter what the equation). However, the number seems like a percentage of something as it declines each turn a move occurs. Could you clarify how changing frequency works and how to shift groups properly when certain attributes must be mutually exclusive?

what you are doing is correct, but the change happens over time. the voter freq value is a variable that is checked over each turn, and people will move between groups based on its value, As I recall you are correct about it being percentage based so its a declining rate in real terms. If the values are kept at their extremes the voter numbers should continue to change as time goes on.

First, I would like to say that I love the game. As a programmer I like to know the nuts and bolts of such a simulation and tweak it, so my suggestions are only to increase flexibility in modding it, not to criticize it.

Main points:
1) Need more flexibility when changing group frequency
2) Need to be able to make mutually exclusive groups (and honor them when changing freqencies)
3) I'm curious about your neural net setup since I have done similar things aka virtual life.
4) Population growth (but then processing time issues, eh?)

I suppose the primary problem I have is preventing someone from being both conservative and liberal at the same time (or other combination that's mutually exclusive) when changing attribute frequency. During matrix setup it's fine, but when shifting population it seems that the equation is limiting:

with attribute_freq,
a + (b*x) > 0 then 3% of people with attribute n lose attribute n
a + (b*x) < 0 then 3% of people without attribute n gain attribute n

Attribute n of course being membership in any particular group. I noticed in the original files that the only things that changed frequency were those that were standalone attributes (either you are in it or your not, rather than being in one group vs. another). The problem with it is that you cannot connect multiple groups in any way.

I would suggest a solution; if you define categories of voter groups and everyone must belong to one group from each category (with perhaps optional ones, some would be linked), and the frequency change in one is balanced with a change to another it might work. In addition, making it so that [a + (b*x)]% of people will shift makes it easier to control the effects of the simulation, rather than a fixed % change. Could also add events that randomly shift the attributes of beliefs of some groups.

Examples:

Group 1 (not optional)
_All_

Group 2 (not optional [everyone must be in one of these])
Socialist
Capitalist

Group 3: (not optional)
Conservatives
Liberal
(add: moderate?)

Group 4: (not optional)
Wealthy
Poor
MiddleIncome

Group 5: (not optional; I made them mutually exclusive even though some are not that way in the game)
TradeUnionist
SelfEmployed
Farmers
StateEmployees
Retired

Say, what are the internal variables that I can use in my policies and other things? I know of _debt_ and can actually use it in a policy. What is the variable for cash surplus, income, etc (the underscore hidden variables)?

I am very interested in this idea of group categories, and it became obvious once the game was finished that a system somethuing like that would have been beneficial. Unfortunately Im now slap in the middle of developing a new game, but Democracy has so much potential for serious modding that I think after Kudos I will have to come back and do a fully-fledged sequel that incorporates these ideas and much much more. I had considered doing a 'virtual country' game that wasnt based on existing real world setups, where you would be able to move your country forwards technologically, change its imports and exports as well as affect the polictical climate and wealth of the citizens. And of course, I'll make sure that its more mod friendly than the existing game.

I think what you are doing is spectacular. I'm a major fan of sim-games and any kind of model I can play around with. I would be happy to play-test Kudos or any other project you are working on when it reaches beta. I'm good at finding and reporting bugs etc.

I had made War Policy, Space Program, Public Satellite Uplink, and Capitalist policy, complete with graphics. Photoshop has a downloadable DDS plugin so it wasn't too hard. I found a few bugs while experimenting:

* In windowed mode, the mouse input lags severely (Direct Input?)

* When I mess up in a text file, it can lock the whole system (DirectX has this problem sometimes I believe, can't get out to kill process)

* Performance problems above 10000 voter units.

* Game crashes when webupdate fails (minor, unless you are in a game already, but autosave minimizes the problem)

However, the game is mostly bug-free (and especially so when there are no mods in place). Some suggestions for the next upgrade:

* Population growth. Player policies and conditions could effect the growth rate, and immigration. Could force certain people out, but then the nation's production and other factors would be impacted. This allows the player to control diversity in the country (which would be good, but harder to please).

* Value transitions. Government policies can affect the beliefs of people, and move them from one category to another.

* Non-socialist structure. Make it so that if there are no poor people, then public health and other services aren't necessary (and won't trigger a negative event/situation). Minor editing of situations would fix this.

* Two-way changes. If everyone is a retired religious non-motorist farmer that doesn't drink or smoke, then it becomes too easy to win the next election (plus GDP should fall, but it doesn't, because the retired people are still working). It should be possible to move the demographics any direction with policies, and prevent non-sensical combinations.

* Modding utility. Import images for policy icons. Front-end for changes to prevent crashes/errors. Step-model, threshold, and conditional relationships from policies as well as [a + bx + cx^2] format. More control over group transitions (like, reduce attribute by n% for people in group G, or move n% people from group G1 to G2).

Just some thoughts for when you finish your current project. I will continue to play with it and see what I can do.

BinaryMan wrote:Say, what are the internal variables that I can use in my policies and other things? I know of _debt_ and can actually use it in a policy. What is the variable for cash surplus, income, etc (the underscore hidden variables)?

BinaryMan brings up many good points. I'm playing with making some advanced mods too, i.e. transforming the game to be about something entirely different than country leadership. It's pretty difficult though, and all such info like what hidden variables are available would be very nice.

The ones I know about are: _random_, _default_, _winning_, _security_, and _debt_.