Advertisement

Procedurally generated complex world simulation?

Started by March 13, 2006 01:32 PM
26 comments, last by GameDev.net 18 years, 10 months ago
Quote:
Original post by WeirdoFu...Personally, I think MMOs using centralized servers will eventually give way to distributed or P2P MMOs with index servers. So, for a game like spores, what can happen is that everyone starts on a different planet or star system. That system resides locally on your system. As long as you're online, people can move in and out of your system freely, but whether or not they can do anything to your system is another thing. Other people will be able to build outposts or colonies in your system, but they won't be able to actively attack your creations, unless they are authorized (backstabbing friends), though if their authorized by you to do such things, hopefully they won't really do it. So, its kind of like an alternative way of building a friend list, but in theis case, more like a galactic alliance...

What would stop you from hacking your system to make it better in this sort of situation? Most of the reason for having centralized servers other than reliability is for security. If now anyone's computer is a personal host, couldn't they easily "cheat"?

Although the "jerks" might be a problem, I think some of the solution was present in Spore. When alien systems are downloaded to your machine, the computer takes over based on that persons play style. Will that be the same as you playing? No, but it will make it a hindrance and might discourage the casual and random destruction of your carefully constructed ecosystem. In fact, if players are given meta-control (attack city with force, rather than individual unit control), and all other fighting is procedural, your system's future would depend more on what you put into it rather than you being there to defend it. Also, since you can now manipulate every aspect of your creation, could you not make it defensive enough to defeat a jerk player? Also, the ratio of destruction to construction (ie, how long it takes to make vs how long it takes to break) could be pumped significantly in your favor so you would not have to worry about someone destroying your whole system without giving you a chance.
Quote:
Original post by Nytehauq
Example: Town A in (every other game) is static. It cannot be changed beyond buying/selling from merchants or direct developer interaction - no user input. Town B exists in a procedural world. It has an odd set of properties however - physics scripts, damage, and normal interaction are disabled for Town B. Thus, you arrive at the same situation. Town B, while in a procedural world, is no more maleable by players than Town A. You could even decide that only the player who created Town B can change it. Using procedure only gives you the ability - not the requirement to have a maleable world.

I'm not sure I'm following what you're suggesting. If Town B is no more malleable than Town A, what is the difference from the perspective of the player to have the procedural world; ie. what exactly can the player do? Are you suggesting something like Second Life, where the environments are constructed by the players who own the virtual space that they're on?

Advertisement
Quote:
Original post by Deleter
Quote:
Original post by WeirdoFu...Personally, I think MMOs using centralized servers will eventually give way to distributed or P2P MMOs with index servers. So, for a game like spores, what can happen is that everyone starts on a different planet or star system. That system resides locally on your system. As long as you're online, people can move in and out of your system freely, but whether or not they can do anything to your system is another thing. Other people will be able to build outposts or colonies in your system, but they won't be able to actively attack your creations, unless they are authorized (backstabbing friends), though if their authorized by you to do such things, hopefully they won't really do it. So, its kind of like an alternative way of building a friend list, but in theis case, more like a galactic alliance...

What would stop you from hacking your system to make it better in this sort of situation? Most of the reason for having centralized servers other than reliability is for security. If now anyone's computer is a personal host, couldn't they easily "cheat"?


Sure, you can "cheat" all you want on your system (star system), but that's only within your domain. However, that doesn't mean that when you move your units to someone else's system that their underlying program will support what you've "created". You may have hacked a weapon to become super powerful, but when that items moves onto some else's machine, there's no guarantee that it'll stay that way. There are multiple ways of doing data security. Sure, people will get around it, its always been like that.

One of the may points of a P2P MMO is the fact that you are playing god in your domain. You're kind of the like the GM for the area you're hosting. If you hack and modify your system too far and it just becomes annoying, then people will just go elsewhere. The beauty of it is that if you have 100,000 people playing the game, then you'll at least have 100,000 different areas to explore. That's not to mention that there can be "unclaimed" areas of "wilderness".

"Procedureral world creation gives us near infinite possibilities. Pair that with human creativity and the diversity may further increase. And what better way to harness a near infinite universe than a P2P architecture. " That's my sales pitch for P2P MMO.
Quote:
Original post by WeirdoFuSure, you can "cheat" all you want on your system (star system), but that's only within your domain. However, that doesn't mean that when you move your units to someone else's system that their underlying program will support what you've "created". You may have hacked a weapon to become super powerful, but when that items moves onto some else's machine, there's no guarantee that it'll stay that way. There are multiple ways of doing data security. Sure, people will get around it, its always been like that.

If there is no central server keeping track of things, why would someone elses system reject your hack? Say that I somehow edit my monsters to have near infinite health and attack powers. Since there is no server to check these things against, how would another peers system spot that I hacked my monster and make it fair?

If there is a way (which there might be) than I have to agree with you that a P2P MMO would indeed be a very neat idea. The only other problem that I see would be maintaining the whole system when user's hosts are not very reliable. i.e. they can log off/crash/have service interuption at any time. But with smart design I am sure this could be overcome. Maybe some sort of root at a dedicated host that branched off onto user's hosts.

Quote:
Original post by Trapper Zoid
Quote:
Original post by Nytehauq
Example: Town A in (every other game) is static. It cannot be changed beyond buying/selling from merchants or direct developer interaction - no user input. Town B exists in a procedural world. It has an odd set of properties however - physics scripts, damage, and normal interaction are disabled for Town B. Thus, you arrive at the same situation. Town B, while in a procedural world, is no more maleable by players than Town A. You could even decide that only the player who created Town B can change it. Using procedure only gives you the ability - not the requirement to have a maleable world.

I'm not sure I'm following what you're suggesting. If Town B is no more malleable than Town A, what is the difference from the perspective of the player to have the procedural world; ie. what exactly can the player do? Are you suggesting something like Second Life, where the environments are constructed by the players who own the virtual space that they're on?


I'm suggesting that a procedural world doesn't have to be any more fragile than a hard-coded one ;)

Quote:
Original post by Sutekh
IMO procedural has different applications. Animations that are created on the fly to adapt to the situation at hand, no more static animations. You block or parry an attack, and your character actually animates so your shield


Eco-systems that are created and maintained by the game, monsters that have dynamic behavior instead of static. Monsters that can be wiped out in the game, amass armies against a PC town for trying to attack them, and monsters that work together with other monsters to do things. Monsters that create their own cities to protect themselves from PCs. Monsters that adapt to their surroundings, and learn new tactics to deal with an enemy.

Quests that are created by NPCs on the fly based on what is around them and what needs to be done in that city.


That kind of procedure. To explain what I was saying, while Sutekh suggests a world where monsters could by wiped out, this could be prevented while still maintaining a semblance of logic in the world. The fact that there is intelligence behind your monster spawns doesn't mean that they can be wiped out, just like the fact that there is intelligence in world maleability (letting players build houses) doesn't mean that players have to be open to loss - your house could very well be invincible and immune to all forms of attack. In any case, there are many ways around such things.
::FDL::The world will never be the same
In a dynamic world you just need to design with an eye for the fact that people will try and break the system. It should be made so that if a player sets things up properly their town may be able to defend itself as well when they are off-line as when they are online. It suceeds because they have planned and covered all the angles to make it so.

You also need to have consequences for actions, not punishments, because, HEY it's a game, but actual repercussions for actions that will make the AGGRESSOR think twice and determine if it is to their advantage to really go through with some action. Give them just as much risk for a set back by taking the aggressive action as the person it is taken toward.

Then make it so that the world is large, people can spread out, and many of the things that the dynamic world allows work A LOT better when you are cooperating with a certain number of people. The design should, however, make it so that infinite growth is not possible logistically, so that an unweildy system will eventually collapse with it's own weight.

This way, the world trys to reach equilibrium and balance, but in reality always ends up hovering just above or below the medium and trying to compensate by heading in the other direction. Of course perfect balance is unlikely and it will over-shoot and try and head back the other way again. This means that there is a constant dynamic trend towards equilibrium which is never quite reached, and thus complete stagnation is prevented.
Advertisement
Quote:
Original post by Nytehauq
Quote:
Original post by Trapper Zoid
Quote:
Original post by Nytehauq
Example: Town A in (every other game) is static. It cannot be changed beyond buying/selling from merchants or direct developer interaction - no user input. Town B exists in a procedural world. It has an odd set of properties however - physics scripts, damage, and normal interaction are disabled for Town B. Thus, you arrive at the same situation. Town B, while in a procedural world, is no more maleable by players than Town A. You could even decide that only the player who created Town B can change it. Using procedure only gives you the ability - not the requirement to have a maleable world.

I'm not sure I'm following what you're suggesting. If Town B is no more malleable than Town A, what is the difference from the perspective of the player to have the procedural world; ie. what exactly can the player do? Are you suggesting something like Second Life, where the environments are constructed by the players who own the virtual space that they're on?


I'm suggesting that a procedural world doesn't have to be any more fragile than a hard-coded one ;)

Quote:
Original post by Sutekh
IMO procedural has different applications. Animations that are created on the fly to adapt to the situation at hand, no more static animations. You block or parry an attack, and your character actually animates so your shield


Eco-systems that are created and maintained by the game, monsters that have dynamic behavior instead of static. Monsters that can be wiped out in the game, amass armies against a PC town for trying to attack them, and monsters that work together with other monsters to do things. Monsters that create their own cities to protect themselves from PCs. Monsters that adapt to their surroundings, and learn new tactics to deal with an enemy.

Quests that are created by NPCs on the fly based on what is around them and what needs to be done in that city.


That kind of procedure. To explain what I was saying, while Sutekh suggests a world where monsters could by wiped out, this could be prevented while still maintaining a semblance of logic in the world. The fact that there is intelligence behind your monster spawns doesn't mean that they can be wiped out, just like the fact that there is intelligence in world maleability (letting players build houses) doesn't mean that players have to be open to loss - your house could very well be invincible and immune to all forms of attack. In any case, there are many ways around such things.


Oh I very much agree that limits need to be imposed somewhere, if you allow players to go around and destroy anything they please you will end up with a server full of nothing. IIRC there was a MMO I read about that tried to implement animals that reproduced and trees that grew, and players just ended up killing everything.
Quote:
Original post by Anonymous Poster
A question might be how much 'procedural' content can be carried over into another server??? Scripts for customized items (or that define new spells or Pet behaviors) could be directly attached as data (moving with the player).


Such scripts would have to execute a finite set of primitives and post events to carry out actions/effects on the server (allowing validation/limitation at that point)



Of course such scripts if not stored in a secure location(and subject to controlled validations) give hackers an easy way to do just about anything
(or if even within server restrictions still could wreak havoc on gameplay)


It's easier to transfer procedural data than fleshed out data. There are only a finite number of options for users to fiddle with - you store these and apply them to your procedural simulation at will. Provided you follow the usual conventions of networked game design (E.g. never trust the client), you only have to worry about server side bugs and direct attacks on the server - the former being a normal consideration and the latter being illegal.

Essentially, the client only sends requests for actions to the server. The client can change its own representation of the game world - but it will only be deluding itself as it cannot do anything but request actions on the part of the server. The server, maintaining its own copy of world events, will never be fooled by the client...but that's for networking, I digress.

Essentially, if you want to create spell "X" - you can't just define impossible parameters for the spell, it's stored on the server and mitigated by server protocol - you can overide the clients limitations and try and max everything, but the server is never going to accept your data. Procedural worlds are no more technically insecure than the next - they can be more insecure in gameplay though (Albeit being MORE secure in certain situations, allowing the player a more dynamic experience with less glitches). A procedural world allows you to set up dynamic interaction, ecosystems, quests, skills, physics etc. I think that this setup would actually cause LESS problems in an MMO environment - if you design a world with certain inherent bounds and a "desire" to maintain equilibrium, you've just taken many of the more complicated aspects of world balancing out of your hands - a self regulating economy, mob spawn, loot quality, etc. is better than having to fiddle around with different factors on your own, and will likely save the player from irritating timesinks. Defining a world's rules first may actually eliminate many game glitches as well - instead of having to design the rules of every encounter so that no one can find a hole or an exploit, you design generic rules that can apply in varied ways to every encounter - unless your rules are broken or an encounter somehow does not follow them, you won't have an oppurtunity for an exploit. It's like the difference between polymorhpic and static languages in programming.
::FDL::The world will never be the same
I've actually been discussing this with some friends. Rather than having it as a traditional MMO, where you'd chase players through the universe, you have a metaworld system. Each player has a world which is theirs to design how they see fit and invite players on how they see fit. So the central server would act like an IRC server and the players would act like channels. (Or a DNS/Webserver analogy, if you prefer that).
With procedural content generation of worlds, creatures and weapons/spells, etc you would have minimum bandwidth requirements on the players.

So, for example, I could create a steampunk world and invite my friends on. Then people could request to join my world. If I'm bored of playing on my world - I could hop onto another server with a superhero theme. A simple keyword search could be done for this sort of searching.

There could also be a central server that would find similar objects within the world, both of design and 'technology' which could populate my world if I couldn't be bothered to fully design it (Much like Spore does).
The same system could then be used for me, or my friends, to find similar worlds to request to play on.

In any case, a standard procedural content generation system would help game creation. Imagine creating some buildings, then doing a search on your scripts to find someone with a similar style and hooking up with them to design the content on your game.
Quote:
Preventing asymptotic conditions when multiple factors overlap is the usual problem and takes alot of tuning to eliminate (escalation of counterbalancing forces). Even then unexpected endcases can still find there way in, so a manual monitoring of the world economy/ecosystem/powerbalance is needed as well as a centralized sever managing the balance (an abstract level simulation ...)

A lot of this tuneing can be done with negative feedback loops.

As a simple example take Foxes and Rabits. If the population of Rabits increases the number of Foxes can increase (this is positive feedback). However, as the Fox Numbers increase they will kill more Rabits (negative feedback).

If we follow this loop around it occures that as Rabits increase, so do the foxes, but as the foxes increase the rabit population will decline. As the rabit population declines so will the fox population, as the fox population declines the rabit population will be able to increase, and so on...

This is an example of a negative feedback loop.

In this example we have 2 elements (Foxes and Rabits). The rabits have a positive feedback on the foxes and the foxes have a negative feedback on the rabits. If you examine the feedbacks in any system, you will find that if you have an odd number of negative feedbacks in a loop then that loop will be self limiting (what is called a negative feedback loop). If you have an even number of negative feedbacks in the loop, you will end up with a loop that increases or decreases without limit (called a positive feedback loop).

If you were to design a series of negative feedback loops into your world system then you will be able to have the system self regulate, and find it's own equilibrium.

This topic is closed to new replies.

Advertisement