A curious little idea...

Started by
8 comments, last by EdR 22 years, 5 months ago
I was daydreaming yesterday, and I thought of this. I''ll lay it out in a somewhat organized fashion: You are, at first, an average citizen of a fictional island nation. There are a few political groups in the nation (arbitrarily, the Capitalists, Communists, Green, Intellectuals, and Religious) that all want to take over the Presidency, held by a man not of any political group. So do you, as a matter of fact. Also, every group has a few statistics - Integrity (bribes, heh heh), Player Support (woo a group into being your fwend, muahahaha), Cash, Leader, Second-in-command, third-in-command. The kicker is - and this is to make up for my WOEFULLY bad graphical skills - there''s somewhere around one million different people in the nation. (Feasible, on a 128MB computer, and on less if the person''s got a decent hard drive for swapping out) Every person has the following statistics: ID Number Name Age Job Salary Integrity Capitalist Support Commie Support Green Support Intellectual Support Religious Support Player Support (A person might be a group person, but then he also might like the player Mother Father Children I figure the game will randomly create 300,000 the first time it starts a new game, and I''ll research realistic birth, death, and im/emigration. You''ll be able to bribe the police chief to look the other way while you send a big supporter with a low Integrity to go kill someone - but you have to then be careful, because a high supporter with a low Integrity might decide to kill you. Everything would be intertwined, my main idea. So whaddaya think?
http://edropple.com
Advertisement
Its a great idea, but sadly it isnt new.... Take a look at Republic.
If I was feeling like coding a lot of names and such, since this isn't graphical - I could make somewhere around...oh, three, four million, probably more for a 500MB swap. I just put down a million because that's how much I could do without a swap file on a 128MB box. A lot of the stuff I saw there in the info I found on Republic I was thinking of as well. Personally, Republic looks like vaporware to me, or something that needs God in a box to run. A million different citizens, in full 3D polygonal-ness? OK, let's just set aside three gigs for it...or set it up for those nice DVD people. Heh heh heh.

Edited by - Edward Ropple on October 22, 2001 11:14:56 AM
http://edropple.com
To simulate the one million people, you need only store the mutable items. The other items can be regenerated as needed based on a seed associated with each individual. This seed need not be stored either, it is merely the index value of the person.

Also, many of the values could be stored as demographic values. One template individual could represent the demographics of 5,000 people.

If you wanted to actually simulated their movements, that is another matter.
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
bishop_pass: You are thinking.. but just a little incorrectly. Everything that can change will need to be stored, it''s not static... if it had been static, it would be simple to use the seed to gather the information as it is needed, but the fact that things can change, non-dependant on the seed, means that it has to be stored. Now granted, not everything has to be stored, just anything that can change. The only thing that *coud stay static would be the name.. children, parents, would/could change, could change jobs, if someone dies with ID 1023, then someone is born and is assigned the same ID of 1023... they will have a different name (more than likely), different parents, children, and EVERYTHING else... so I don''t see how you could just get this stuff out of thin air, unless it''s stored.

Billy

BillyB@mrsnj.com
Create a seeded randomizer function that gives the same output when you give it teh sam input...

Okay, I know this sounds strange, am not quite good at explaining it, but I have calculated this a while back. You can actually store more data on your computer then you got memory!!!
You could always combine a couple elements of your idea and an idea posted.

You want every person to be accessable because they can be part of the plot. But that isn''t easy on low end machines. So a fix I would suggest is have 10,000 individuals, and the rest are in demographic groups. That way you have more than enough fodder for storylines (killings, underlings...) but it is easy to control masses of people.
You could even have a variable membership rate in each group, that way you can move one person from one group to another and not have to change 5,000 people at once.

If you did it right you could have 5,000 key characters, and have the other 5,000 change based on the demographcs of the area.
That way when you move around you will always have "real" people that represent the people of that area to interact with.

Jason Mickela
ICQ : 873518
E-Mail: jmickela@sbcglobal.net
------------------------------
"Evil attacks from all sides
but the greatest evil attacks
from within." Me
------------------------------
"The paths of glory lead but to the grave." - Thomas GrayMy Stupid BlogMy Online Photo Gallery
quote:Original post by Anonymous Poster
bishop_pass: You are thinking.. but just a little incorrectly. Everything that can change will need to be stored, it''s not static...

No, you can decided to simply only store changes if and when they happen. This is trivial with a well encapsulated design (although the details of that is more for a programming forum), and other space-saving considerations (like the Flyweight pattern, again a programming concern) will let you minimize storage. Even some things that change won''t need storing: if you allocate ID numbers sequentially, you should be able to calculate age just by storing the current ID number you''re on when a new day/week/month (whatever your granularity is) changes.

quote:if someone dies with ID 1023, then someone is born and is assigned the same ID of 1023...

There''s no reason to reassign ID numbers... a 32-bit integer gives you, what, 4.2 billion unique numbers to play with... so even with a few hundred thousand or so active at once, you''d still never reach that upper limit before the game ended.
I actually wrote something like this in PHP once, but I found it was easier to just simulate demographics, and then measure their support for issues and parties, then just place population #s from there.

It can be a lot of fun -- I never finished mine 100% -- its basically a beta, so it ended up only being semifun (strifeshadow was draining too much time hehehe).

Isnt tropico somehow related to this too?

Its a neat idea anyhow.

Zileas
Use an LOD scheme; the overwhelming majority of your 1-500 billion individuals will not be in the scene or interacting with the player, so use generic (but randomly selected) attributes for these ones. Also, eliminate a lot of individual logic by simulating mob behavior (a lot of people sharing the same opinion and therefore acting in similar fashion). Only devote resources to fully realizing the individuals that the player actually interacts with.

A good example of these techniques is PopTop''s Tropico, and there''s a post-mortem at GamaSutra.


I wanna work for Microsoft!

This topic is closed to new replies.

Advertisement