# Let's speculate about infinite virtual worlds.

‘Infinite landscapes’ is my latest software art project.

I used blender to model the house and the boat and to apply vertex coloring to them. But the code is written in python, and uses my devachan library.

The screenshot is not so appealing. You have to try it to understand the greatness of the concept, thanks to the genius of Ken Perlin.

www.cesaremarilungo.com/sw/infinite-landscapes

Launch landscapes01.exe. Use arrow keys to move forward and turn left and right. Esc to quit.

I’m planning to make a game with this concept, which can be also ported to blender. Anyone interested?

c.

ever see crescent dawn?

hehe ok its not infinate. But its hand crafted and huge.

RonC

At the moment this is more of a conceptual work.

I’m fascinated by the idea of exploring an infinite environment. Neither our universe seems to be like that.

By layering more perlin noise generated values with different periods you can achieve a variety which can simulate a real environment.

Imagine a game in which every aspect of the environment is consistent (you don’t have a tree coming out of a house or a house in a lake), in which you have the same variety of and hand crafted game level, but infinite. And every time you start it the world is completely different.

You could see unique structures and combinations.

I’d also love the idea to code a game myself and play it without knowing what I’ll see.

c.

Certainly is interesting.

Alot could be done with it, I always wanted to create a game where you discover new worlds or new forms of life, I was trying to think of a way to make the game have infinite possibilities. That would work well.

A great concept, keep working on it.

You could also mix the infinite world with finite (non-procedural) elements, like the game Tribes which has unlimited terrain surrounding the battlefield.

Also, it may be interesting to note that your procedural world is not really infinite. The amount of random data (seed numbers and formulas used to combine them) influences how far you have to travel before running into a place identical to where you started. If you use lots of big numbers, you could have a very big universe.

I’d like to see a game where there’s infinite worlds, maybe very complex ones with random cities and forests and different types of creatures and different types of environments with smooth transition. And to make it even better, let the user set paremeters to influence what the world would be like and be able to save it.

SerpLord, I think you missed the point. Read my explanation on the page. I don’t keep any value in memory other than the ones I’m currently using to shape what I’m watching on that frame.

ciacio: No, random number area actually NOT random at all. They are psuedo-rendom nubers based on tables generated by a number called a seed. What he is saying is that eventually your seed will repeat, or the numbers in the table will repeat, since there is a limit on the maximum value able to be stored in any given variable. (A long int can store up to about 4,000,000.) So in essence, yes, it WILL repeat, since computer memory is NOT infinite, the world cannot be different EVERY time you play; eventually, it will repeat.

Not that it will repeat within a few days, months, years, or maybe even your lifetime, but it isn’t infinite. If someone played it an infinite amount of time, it would eventually repeat. (Infinitely, of course.)

SerpLord was speaking theoretically, of course, not practically.

Nonetheless, both you are missing something: these limitation have nothing to do with the method involved in this test. I can rewrite the algorithm and use a custom data type to hold more precision.

About the fact that a computer cannot generate true random numbers, well you CAN for instance randomize the seed by reading a value from a sensor (I’ve done it with a thermistor).

Anyway I have far less time than infinite. And you?

If you’re just a mortal like me, this tecnique lets you EXPERIENCE an infinite world.

this is an awesome idea, I always wanted to make a world like this, with graphics (quality, not textures) like morrowind, set in a primordial earth, but nothing but you and animals (the animals are not primordial, by primordial i mean vast forests and such, no development.)with realistic rule based ai. You could do whatever you wanted, not as in build stuff and such, but kill any animal, try to breed them, protect your special herd, chop down and burn trees, and also plant them, you would be able to do this with all the vegetation and such. The thing is, since it is random, there need be only 10 animals and 30 plants or so, and use semi-random seeds to generate and “infinite” amount of mutants, e.g.: different colors, heights, etc. i think this would look good using semi cartoony graphics, like your demo.

Edit: I also think you should have a camera, for memorable scenes and vista’s, a savegame option, and the ability to put in a certain seed and the ability to play as one of the animals. I don’t think this is a game for blender’s engine, ogre would work, it has better culling. i wonder if this is relistic to make? I could definately model and texture and create the ai, but I am not sure of the coding. i should make a game plan and get together with you, incorporate ideas and make one super-cool infinite world! You could start by a little house that has a bed to rest in, and a large pen for animals. this would be the only thing that wasn’t random, so no matter what the world looked like/is, you would always have your house, and maybe an arrow that pointed back to it.

shall we speculate and dream a little more? I have been reading about how to code similar things, and may try a few tests soon.

I can tell you how I did it, for what it’s worth, just give me some time to write.

c.

Thank you for the effort.

hey, thats a great idea!!

instead of wasting our time making up new and interesting maps, we can let chance create it.

although it wouldnt be perfect, we could tweak it from what we get by chance. i’d be interesting in making maps randomly, and then makeing them better and finalizing them, as opposed to making them random everytime u start the game, but its still a good idea.

how would u make the ground mesh though?? wheather it be bumpy or flat or rocky, like mountains?? i think that would be hard. doing the trees and houses would be pretty easy i think though… just choose random locations with math.randomfloat() and certain areas would be filled with trees and others would barely have any… maybe just place all the trees and objects really high until they fall down and hit the ground. this “infinite” part would be interesting too… to keep going on almost forever… sounds a bit unfeasable in blender though… i’m not sure if its easy or possible to erase and recreate landscape while in the gamengine, well i hope it is though…

You can make it with Blender, I’ll convert my test soon.

Basically, you have a mesh for the terrain of 30x30 vertices. For each frame I calculate the height of each vertex based on my (x,y) location. I don’t do it for each frame, but just when x or y has changed more than 1.0 units. When movement is still inside a unit value (e.g. from 0.0 to 0.99) I just move the entire terrain mesh according to the movement of the user.

In Blender you can’t create new vertices in a mesh, but you can move them. So you can make it. You can also place copies of a mesh (for the various elements of your landscape).

For the trees and the rest I use a similar technque, but using another perlin noise generated array of value with different settings. Then, if the perlin noise value for that vertex is from 0.8 to 1.0 draw a tree. If it is from 0.75 to 0.8 draw a house.

For every session if you calculate perlin noise for the same x,y coordinate you get the same value. So you can move away forever and find the same landscape when (if) you come back.

That’s it.

c.

positively rude bump.

up from the grave it arose!

If I post I am afraid I will be encouraging you…
Oh well.

:o

yes ciacio, I am still interested in this this is a valid bump drewu, we were told we would get a demo of this in blender, and I have waited patiently for quite a while, so now I bumped it, again…

btw, nice pathfinding demo, I think it is unique, not totally sure though.