Jump to content
xisto Community
Sign in to follow this  
mitchellmckain

Infinite Game Space game programming concept

Recommended Posts

Of course a computer cannot really have a truly infinite game space but then people do not have the infintite lifetimes required to know the difference anyway. You can create a game with billions of billions of locations which is more than big enough to be infinite as far as the human game player is concerned. You cannot do this with the traditional approach, of programming each location ahead of time. Your computer does not have the memory to contain them and the programmer does not have the time to program them. Instead you must use fixed seed random generation. Fixed seed random generation means that you use a deterministic method that generates random numbers from a starting number (like the built in random number generators available in most programming languages). The result will be that the locations will be the same every time you visit them, unless you also make them evolve in time. This make the game space something that can be gradually explored and shared between different players. The seeds for each location can be generated from the map coordinates. The map does not necessarily need to be a literal map with geometric spacial coordinates. The map can also be a treelike structure, where the player can travel from his starting location to a number of adjacent locations each with a seed generated from the seed of the starting location. Then each of those adjacent locations may connect one or more locations whose seeds are generated from its seed. Since the built in random number generators only produce 32,768 different numbers you may want to write your own or use more than one seed for each location (2 such seeds will give you over one billion combinations). The challenge then becomes a matter of creating a robust enough technique for randomly generating each location so that you get enough variation to support the experience of an infinite game space. One important concept of creating interesting and realistic randomly generated patterns is self similarity. Raw randomness creates a kind of white noise or gray background of boring uniformity. Things in nature which are close to random, actually have the tendency for adjacent locations to be similar or related, but with abrupt changes as well. So, to get a natural feel or look to things your adajacent locations must be similar a large proportion of the time but often completely different. Another challenge is the problem of how players change the state of the locations which they visit. This requires that you keep a stack of such changes. In order to keep this stack from growing indefinitely while improving realism rather than losing it, you would use evolution in the random generation of your locations. This way you can drop changes to visited locations from your stack when the locations have evolved. Evolving locations means that the more changable elements of each location depends on the game time as well as its fixed seed.As an illustration of these concepts see the relativistic physics of spaceflight simulator at http://forums.xisto.com/no_longer_exists/. You do not need the registered version to see what I am talking about. This program uses a tree like structure for random generation even though everything is located in the same 3 dimensional space. This is because the locations are organized into galactic cluster, galaxies, clusters of stars, star systems with planets and planets with their moons. This fixed seed random generation technique allows me to have hundreds of galaxies, each with hundreds of billions of stars (and most of those with companions and planet) because I do not have to store them or even display them unless they are within range. The concept of self similarity is used in a variety of ways. The average star of a galaxy or star cluster depends on the type or appearance of that galaxy or star cluster. Self similarty is also used in the creation of irregular shaped galaxies and star clusters. But the most important use of self similarity is in the random generation of surface features of the planets and moons (around other stars). The locations are evolving because the locations of the planets and moons in their orbits depend on the time (real time in this case). However I do not have to worry about players changing anything about thei locations they visit. I was led into using this technique for this program by the fact that the data available for what is out there gradually diminishes with distance. Even though this program is not a game at all, I have spent many enjoyable hours exploring its infinite space. Imagine finding interesting views like looking at the Milky Way through the rings of a bright red planet with three suns, in the Smaller Magellanic Cloud.I noticed on the internet that there is a book available on this idea of infinite game space (http://www.cengageptr.com/), but I haven't read or look at it myself.

Share this post


Link to post
Share on other sites

The idea of infinite gaming space is interesting, but I think it would only be pratical in a few situations. While random number allows you to create many different areas the difficultly is making those areas realistic. Think of all the variables you would have to generate for a landscape, for example: shape of the terrian, plants, buildings, characters, and items for the player to interact with. I'm not sure how you would set it up so that the game would randomly pick all of that and still have it logically make sense to the player, but I'm sure it would be very complicated. Even those items I listed would need to have some randomness to them, otherwise you would start running across identical buildings and characters. That makes it even more complex.Now I do think it would work well for an enviroment with a limited number of variables, like space. I think it would be much easier to generate random solar systems, since about all you have to generate planets. And then you would just have to combine those solar systems into galaxies. Like you said, an advantage of space is that there isn't much that a player could do to change anything.Another difficultly is making an enjoyable game out of the infinite space that has been created. Most games are story-driven, which would be difficult to do with randomly generated terrain. The game would have to generate the story itself. It is unlikely that any computer generated story will be very creative or original. About the only game where I think this technique would work well is MMORG's. Then the game could be player-driven instead of story-driven.All in all I think that the idea is very interesting. While it isn't for everything I believe that it does have some uses, although it would take some work to implement. I'd be interested to see what you are able to do with it.

Share this post


Link to post
Share on other sites

It wouldn't necissarily work well in all that many mmorpgs. Many mmorpgs have sort of a community aspect to them that wouldn't really be possible if you simply had infinite space.BTW, I'm convinced that nethack has some kind of infinite space algorithm: it's been out for like 15 years and nobody's ever won it...

Share this post


Link to post
Share on other sites

I am not a great fan of storylines in games, but this feature is quite compatable. The relevant areas for the storyline would be programed as usual. But now you have the added realism that not everything is programmed in advance and part of some story plot. Of course that would make following the plot much more difficult since you are no longer stuck between the pages of a book or bound to the set of a movie. You cannot wander off assuming that the story will find you.

The example of relspace applies in this case too, because not only are there randomly generated stars and planets but there are real planets and stars that we know really exist, which are put into the data file by hand.

It wouldn't necissarily work well in all that many mmorpgs. Many mmorpgs have sort of a community aspect to them that wouldn't really be possible if you simply had infinite space.

This is simply not true. It is true that you have a finite number of players, but you would also have a finite number of entry points. I think that infinite space would add to the community aspect with the possibility of sharing information about explored space. There could always be permanent features to randomly generated locations that would make knowing where they are valuable coin in the community.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.