Jump to content
  • Advertisement
Sign in to follow this  
DogCity

The Quantum engine.

This topic is 4330 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

"It's a bird, it's a plane.. No wait, it's a bird again!" Just a quick stream-of-conciousness on the possibilities for pseudo-quantum simulation to make video game environments. I don't know a whole lot about quantum physics, what I do know basically extends to the concept that the building blocks of reality - particles and such, are in a state of flux and uncertainty until they are viewed, at which point they fall into a single form. Perhaps based on some strange gravity of thought. Yikes. Cats in boxes, trees falling in woods and so on.. So how about introducing quantum possibility to the game environment? Not in some simulation of atomic behaviour, but by simulating the basic tenants of quantum probability. The weight of thought, archetypes and so on. Example? Example: Man walks along a street, the road has been given a selection of specific rules; "people walk on you", "cars drive on you". It also has some basic understanding of what it is, through a combination of properties "You are flat", "you are hard", "You avoid steep terrain" "you join places up" From these basic properties and rules, the engine can extrapolate a range of things. It can identify a start and ending for the road, and because it's a road it's probably bendy, it also knows that it's used for cars and people which natural informs the AI what it should be doing with the road. This previous 'Road' archetype can then be re-used to inform the construction of a footpath which would only need to add "ONLY people walk on you". -------------------------------------------------- Still with me.. yeesh sorry. So how about something more complex? Like a tomb raider level.. So, the level has an overarching ruleset and property selection "it's cold", "it's underground", "it's slightly dangerous". So our engine wonders off and collects any elements which include "cold" "slightly dangerous" and "underground" in their properties. It comes back with a cave (also constructed with a range of rules and properties) and some wolves. It then appends the "cold" properties to the wolves and cave (using the wider description of "cold" that programmers have written). The wolves are now white and the cave is now snowy. So how can this POSSIBLY help in game development? Well I dunno. Ues your imagination... Ok, if I was EA I'd consider exploring this (no one say Spore, I swear i'll..) because its a whole new asset pipeline basically, which enables you to recycle content but upgrade (graphical) quality and change aspects of the game to match consumer expectation. Well, sloppy conclusion aside, if anyone has any particular thoughts on the concept i'd be interested to hear about it [grin].

Share this post


Link to post
Share on other sites
Advertisement
What you are describing looks like a problem from the set "AI-hard".

Asking an AI to put together the geometry of a level based off hand-waved descriptions is ridiculously harder than you think it is. It isn't even in the same realm of difficulty as you think.

You may as well say "what if we had a computer that could think for us, and we asked it to write a game".

Now, tagging assets with descriptive nouns, and having a computer find pregenerated assets to reuse -- that is just "flickr" for game assets. It is a solved AI problem. :) But actually having an AI put the assets together in any kind of creative way is not something one can reasonably pull off.

Share this post


Link to post
Share on other sites
I've lost relevance of the quantum in the middle of you post :).
Not sure if I am getting your idea right, how would that be any different than using common tools like level / character editors. I only see a negative aspect, the designer would have absolutely no control of the game world, random worlds are not attractive.

Edit: Spelling.

[Edited by - kiome on November 16, 2006 1:45:56 PM]

Share this post


Link to post
Share on other sites
Yeah, I trailed off there at the end, bit short of time. I didn't talk about actual art assets.

For assets i'm thinking you produce something somewhat like bounding boxes. Essentially two geometries which describe the maximum and minimum bounds of generated content. This would carry over to animation, where you'd produce animations, then set the range that bone positions can vary from what you've outlined - you could use entirely procedural animation, but I don't know if that's a great idea.

For textures, I think a system of blending one or more textures which share the same rules and properties, may look good in some cases, might also turn into a brown mess [grin]. Probably best to create procedural rules for generation and mapping.

Nice to get rated down for posting a mad idea. Much appreciated.

Share this post


Link to post
Share on other sites
Not sure who would rate you down for that idea, I only rate people up when I find they are offering interesting discussions.

I think I was put down by your idea when you mentioned Tomb Raider, such games can't be generated procedurally (the levels) because that is the core of the gameplay. I am sure at some point it will be possible to mimic a level designer's creative thinking, but I find it a lot easier to simply use the original, human mind.

It is very possible for other kind of games though, maybe RTS or parts of RPG at which the environment is just a place where the core elements of the game take place (combat, conversation, exploration).

Share this post


Link to post
Share on other sites
I think generating content based on some words or other tags, if it were possible at this moment, would suffer another, rather common, flaw: a limited interface.


An abandoned Soviet underground missile base is 'cold', 'underground' and 'slightly dangerous'. Get what I mean? Of course, you could add words and steer the process more, but there's still the problem: how should I express myself so, that the program understands my intentions? There's no direct link between my brain and the program, so even if I knew exactly what I wanted, and the program was capable enough, then there would still be the communication bottleneck. Right now that is 'solved' by offering total control, at the cost of time.

Many editors 'suffer' from this: instead of allowing you to focus on high-level design, you've got to place every detail and special object yourself, you've got to worry about optimization, etc. I believe generated detail (automatically placed on certain surfaces in levels, etc.) is a step forwards in this regard, as it allows you to focus more on the big picture without messing up the result. And I think it's in this line that we can expect most gain: automating the tedious processes, to give artists more time for what matters most.


However, there's also the inspirational side. Your program would need a predefined list of objects and their relationships and attributes, which probably isn't trivial. However, how about a system - a site perhaps - where users can add this sort of associations? For inspirations sake? I really don't know if it would work, or would help, it's just a though that your post triggered in me. :)

Share this post


Link to post
Share on other sites
Ah, this reminds me of my interactive storytelling research I did a couple of years back! Forgive me if my post is a little incoherant; I'm not feeling the best today and it's been a while since I've thought about this. It's a good timely post though as I've been in a bit of a slump the last week or two and I need a good memory kick to my brain to remind me where I'm trying to get to.

I think what you're describing is what I like call an "atomic" approach (rather than "quantum") for constructing game properties; finding and defining the basic building blocks that make the world. It's a somewhat similar approach to what's used in the Sims; each object is defined with the properies of how sims can interact with it. Except both you and I are thinking of extending this to game world generation.

The problem is the same as with strong A.I.; exactly what set of properties do you define for your objects. In particular, where do you draw the limits? The road example you gave is a good one; if you extend that level of detail to the entire game world how many properties will there be, how long will it take to code them all, and will it be enough to define the world in a logical way?

The challenge is exactly how to deconstruct your game design into atomic descriptors, trying to avoid having too many special cases but still ensuring the computer doesn't make crazy illogical worlds (by a player's standards). From the memory of my own attempts and from what I've read I can say that this isn't particularly easy to say the least! My gut feeling is that it might be best to use abstract properties that may not have a direct association with what people would use but makes more sense for a computer A.I. I also think it will have to be at a higher level than the road example. However the exact methodology you use to deconstruct your game world entirely depends on what sort of world you wish to make. I also think that attempting this approach to an abstract game world representation will dictate what sorts of game worlds you make as much as the worlds dictate the representation.

As for the benefits: the two I can think off the top of my head are world generation (my goal) and extensibility (like the Sims); as long as you've defined a good set of game atoms it should be easy to drop new content in for both the developers and game modders.

Plus this reminds me that I really need to get cracking on my game skill development so I can start work on my own game world atomic decomposition in a year or two [smile]!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster


You can use Declarative languages like Prolog to do complicated combinatric checks and validations, but the problem is not selecting appropriate buiding blocks (to you generalized theme tags), its combining them properly not just for a setting, but for a 'game' setting.

The logic to match up appropriateness of the elements (down to the small detail range - sub sub sub elements) requires alot of detailed logic about the relationships. That logic has to be added/checked by hand and is voluminous (its the clasic problem with world related AI).

Infinite Universe and procedural generation techniques already exist, but results are limited in detail (and we need fuller depth of well fitted together detail).

I suppose blending techniques could be created to transition game elements (terrain/props/NPCs) but preventing disjoint (mismatched) elements in close proximity again requires alot of logic and validation. Texture splatting works because there is a continuous function of merging colors/normal maps, but world objects are discrete and not so easily mutated.

Share this post


Link to post
Share on other sites
Probably not really related with what you have in mind, but I was thinking of something different regarding the whole 'quantum mechanics in games' idea.


Basically, the level itself and pretty much all objects in it would be already in place (either through a designer placing them there or a rouge-like engine generating the content). However, each 'room' or container would be monitered as to weather or not the player can see its contents.

If the player can't see the contents then the container is flagged as as 'unseen' and then some effects can be placed on it.

For example, monsters may be able to teleport to and from rooms that are unseen. (basically like random encounters or regular spawning, but they can't appear in a room that is monitored).

Also, if you have high luck then you can 'wish' for an item and then it will appear in a nearby unseen container. Wish for more ammo and the ammo packs may appear in a nearby unexplored area. There would be no noticable difference between ammo that is given 'randomly' by the game and ammo that the game places because the player wishes for it.


Another idea that expands on the idea: If a magician locks all the doors in a room and closes the windows so that nobody can perceive him. Then he closes his eyes(which makes the players view go dark, so he can't see what is happening to the character), he can then make the room he's in 'unseen' and himself 'unperceived'.

Then have certain magic skills that can only be taken under those circumstances.

Teleporting from one unseen area to another.
Turning invisible... but only if nobody sees you do it, including yourself.
Transforming from one thing to another.



Basicically, this would not require any particular change in data structure. Just have some way to determine when objects aren't being looked at and then have the adding/removing/changing events happen to them then. More of a gameplay gimmik than anything.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!