Advertisement

A game (engine) that works like dreaming?

Started by May 19, 2014 04:40 PM
6 comments, last by Kryzon 10 years, 5 months ago

How about a game/game engine that worked like your brain when you are dreaming.

Essentially, the system would have the 'present state'. It would then use this 'present state' to discover 'expectations' of what should happen using some database of stuff and some code (such as if in the present state there exists a nuclear explosion, there definitely should also be zombies, military barricades and people running around). These expectations can be created through teaching (eg creating scenes by hand, letting players modify their environment to somethign they deem 'normal'...)

Lets call the component that finds these expectations about the future based on the present state the 'predictor'.

The present state does not only include objects and their locations or such. It is everything you can perceive about the environment. It includes patterns and events, not only concrete perceivable objects which form those patterns or events. You need to see the forest from the trees.

So we have:

-Present state

-Predictor

The present state will not be exact nor it will be permanent. Information in the present state has some information that is used to determine its importance:

-Predictability

*If its presence can be deduced from the surroundings, it is implicitly stored. It does not need to be kept in memory explicitly.

*A blade of grass under a tree can be forgotten

-Significance

*A blade of grass under a tree is not significant. A single blade of grass growing from some random brick of some building definitely is.

*If you perceive something, it is significant. The more you perceive it, the more significant it is. Whether you perceive it directly or indirectly.

*Essentially, if you dont care about something, it can be thrown away and replaced with something else when you come back.

Entities (objects, patterns, events, whatever) are more significant if they are deeply rooted in the world. To perceive something you dont need to see it, its enough so see its effects. Effects should be tracked to some extent.

This is largely a form of procedural generation. Just a lot more fuzzier.

Since nothing will be exactly defined, the graphical and physical side need to account for this and just throw stuff around so it looks somewhat correct. If implemented in single player, and the generation is done from the local PoV, it might be that the paths the player walks will not make sense if mapped from a global perspective. It might be more interesting that way. Positions should always be relative to other objects, there should be no global positions. Objects could have the same position in the mathematical sense but still be far away from each other since it requires a global perspective to be able to deduce that the objects have the same location if they are accessed through very different paths.

Example:

Lets say your world has a street. The predictor says there are buildings next to it, so the engine slaps on some random buildings next to it. You walk close to one and look down at the line where the street and the building meet, so the engine figures the road should actually be of the same material as the path to the door and quickly fixes that. With some blur and random plants to make it not ugly. Maybe some ants too, theres ants in them cracks. So you get to the door, which the engine just moved to line up with the pathway because perfection. Then you get in and because the dev wanted a space game the engine decides its a space ship because theres some slight artistic bias in the database of expected stuff. Of course the shape of the spaceship is not defined so you see some random hallway with random scientific doors and stuff, and walk to the first door and it happens to be the cockpit because nobody felt like describing any other type of room. Out of the window you see some ugly space texture that was actually space as seen from the ground even through you are now in space but close enough. Then suddenly theres a hole and you get sucked into space because thats what happens in spaceships. Then you die and respawn to the beginner area.

I emphasize that the world is not meant to be perfectly consistent. This is an optimization. It should only be locally consistent.

Someone implement plz

I suggest starting by making a functioning artificial intelligence. This should be trivial because a consciousness module is probably not needed.

o3o

*slowly backs away*
Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.
Advertisement

*slicer bumps into chubu*

"Hey, why you bumped into me? Wait, what's that behind you?"

"..."

"Wait a min... No no no... It can't... I don't even..."

*runs*

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

Actually Media Molecule is working on such a system, and it has my brother sort of excited.

That is the beginning of it, but not quite your approach.

In fact, my use of Fuzzy Logic in my project will allow such "indefinite concepts" to be modeled in a program.

When you say "deem normal" that is what fuzzy logic considers. It represents an idea of normal as compared to other ideas of normal.

They call me the Tutorial Doctor.


I suggest starting by making a functioning artificial intelligence. This should be trivial because a consciousness module is probably not needed.

This is exactly what I am working on:

http://forum.maratis3d.com/viewtopic.php?id=763

I haven't put any fuzzy logic in yet, because I am building a library to make the creation process easier.

They call me the Tutorial Doctor.

*Runs away with Slicer and Chubu*

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth

"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob

Advertisement
But muh noneuclidean nondeterministic dreamworld geometry

o3o

This is marginally related:
https://en.wikipedia.org/wiki/Live_coding

This topic is closed to new replies.

Advertisement