In the final game, how will the procedural generation work?

This is where we will have to educate people!

Lots of casual gamers (myself included a few years ago, when I first heard of Infinity) confuse “procedural” with “random”. Sure, the engine is capable of generating many different kinds of worlds, but for the purposes of Battlescape, only a particular star system is needed. That will help the devs shape it and make sure the gameplay is balanced within it - which is ultimately what will decide its success or failure.

2 Likes

Could you generate an entire solar system without having to arrange the planets by hand? I have no idea how procgen works.

The term “procedural generation” in and of itself is simply generating data using an algorithm. This makes it a catch all for nearly any piece of data you want to generate.

So yes, you can define an algorithm to place planets in orbits around a star.

2 Likes

I suppose it would be the unpredictability of generating so many new systems instead of the inability to do so that’s stopping the team from implementing it to the game.

I’m probably wrong due to my lack of knowledge about procedural generation but couldn’t a very strict algorithm be implemented where solar systems are all essentially similar, in terms of planets and their positions? Then systems would at least be aesthetically different. Or is it just not worth the trouble.

Most probably this.

From previous statements it seems that the team believes “hand placing” the System, “the map”, will ensure the most fine tuned experience. If they hand place them anyway, why create an algorithm? Also, such an algorithm is not trivial thing. It would probably take a month to get it right and in the end it would result in unpredictable game worlds that may not work, may have too long distances, not enough bases, bugged placement of bases. This in turn would ask for the algorithm to be tweaked … a much more complex task than just moving a planet or a base.

I think for the first game it’s a good decission, building on what allready works well. The planetary generator. We never seen a system generator, maybe Flavien once created such a prototype but didn’t share it, doesn’t really matter, the tech isn’t here.


From what I gathered Procedural Generation in Infinity:Battlescapes works like this.

In Infinity:Battlescape there will be breathtaking worlds. Planets, Moons and maybe other objects like rings etc…
These will be Procedurally generated. A beautiful, hand crafted pieces of code will create billions and billions of square kilometres of surface all the way down to meter details … on demand. No one will have decided how that specific part of the planet will look and each part of the planet will be unique in its composition.
Each type of world will probably have its set of procedural code.

The worlds appearance will be determined by parameters. Unlike other procedural games the words general appearance will be fixed and selected by the team. It’s like if someone decides what ‘Seed’ is selected for a certain competition in Minecraft or other games. Like height of mountains in general, if there will be a ring around the world, the colour of the atmosphere, how common canyons are … stuff like that.

Some parameters are influencing the algorithm others are just simple values, as some aspects of a planet is homogeneous, like it’s atmosphere, if it has rings etc… There procedural code for that would determine a simple “on/off” state. As the team wants to design the system though, they want to control that aspect themselves anyway.

There will be several of these worlds, their position will be determined by the team so they form a game world, a start system. The systems layout will be tuned in order to work best together with the gameplay of Infinity:Battlescape.

There will be hand crafted Art assets: Ships, Stations, Guns, Effects, Plants/Scatter. Some will use reusable modular building style.


If/when I-Novae releases its mod support tools it will most probably also release the means to creating and placing planets. Allowing modders to create their verry own star systems that can differ from the “vanilla” star system.

8 Likes

As @Lomsor probably already knows, many of these features are already available to be toyed with in the engine, albeit using them is a bit tricky/not supported server-side. There’s been plenty of discussion already about modifying the configuration files client-side for the planets we have, and people have been able to modify ocean and cloud configurations, terrain generation (not just colors), and even toggle planetary rotation (I don’t think anyone managed to find a way to enable orbits). Here are some screenshots (none mine):

A few silly ones included for fun. :wink:

8 Likes

The silly ones are important to show when trying to understand procedural generation algorithms. If the algorithm for creating a planetary system isn’t carefully tuned and debugged, players might encounter generated content that reflects badly on I-Novae Studios (poor performance, aesthetically flawed - e.g. mountains larger than the moon itself), or which is simply unplayable (planets too far apart or too close together, too large or too small, etc).

3 Likes

Those silly ones sound like they were deliberately tweaked to be silly. Hard parameters that reject worlds and restart generation could be used. Dwarf fortress, the only other game I know that uses complex procedural generation on a large scale employs this technique.

I suppose the devs know best. All they would need to do is to generate planet after planet to see how often ridiculous looking ones appear.

Procedural Generation is a whole bunch of arkane magical computing tickery.
At the base of it is a noise/pattern generator … and in the end something that resembles a planet. Not actually something that really is or really behaves like a planet.

I think it’s much more likely for something to not look right than it is for it to do what you would expect from it.

1 Like

Yes, they were deliberate, to have fun with the engine and look at how far it could be pushed.
Here are a few even worse, with the diameter dropped at IIRC 60km:

Believe me, the last one felt like pure Evil.

11 Likes

ohhh my… what have you done…

2 Likes

Can you enter just any value as the diameter?

now, please, let there be random planets every time!

Technically speaking the diameter has to fit within 32 bits of precision however that range allows you to represent objects of incredible size.

1 Like

So… 2,147,483,647km, or just over 14 AU. 1 AU is the distance from the earth to the sun.

Has anyone tried it?

I seem to recall there is going to be a “bobblehead” that will generate planets as a hologram?

The current configuration file suggests that radius is expressed as a single-precision floating point kilometer value. Technically, that would permit specification of values up to 3.4 * 10^38 km.

Which is larger than the size of the observable universe.

In practice, the number needs to be rather less. In my experiments the prototype star code wigged out at around 2,000,000km (only fragments of the star render). The planet code does interesting things at 50,000km (grids on the surface at a distance, lighting going to solid cyan or solid green when close, etc).

To see the grid, you have to look at the full-size image.

I only changed the radius of the objects, not their locations.

Note: don’t mess with the terrestrial planet radius. Your ship will spawn inside the station, which will be inside the planet, and you’ll just keep blowing up.

2 Likes

The procedural tech can obviously be used to generate new planetary systems (not star systems as the proper term) but then you wouldn’t have a match-based fair competitive game. You have to lock down the “level” for a fair fight between teams.

I can totally see the devs being able to manually generate and populate other planetary systems for use in game as additional maps.

1 Like

I wonder what would happen if you made a planet in the prototype so large that it clipped another planet. Are you able to change locations in the current prototype? It would be cool to see two planets so close together that their atmospheres touch.

The cyan is when the HDR is overloading, I think.

I also experimented a bit with larger planets. When going to the surface, with the atmosphere that is the same, I could feel it was too big, particularly with the flattened ground and the horizon that felt too far.

Just for fun, I tried to make them bigger than 100 000 km - all three of them at once. My idea was to try and make them intersect (I haven’t found how to move them around yet)
But then…

Wat.

Let’s get the hell out of there before someone realize I just broke the universe

I’M SORRY OK?

Ok, let’s just calm ourselves. It seems the brightest one of the three is the gas giant. I’ll try and go behind Sarake to see if things get better.

Well, things do start to get better. We’ve got from white nightmare to psychedelic nightmare.
Progress!

Ok, so now things look aproximatively normal.

The bright abomination of a world is Cinder, facing the Sun.

The other one is, as you can see, Mars from the '60 SF and its patches of orange-green. This is the dark side.
If you look at the thrusters and how they are darkened, it gives you an idea of how bright the “dark” side actually is, simply through reflections from other bodies.

Similarly, here are the weapons meekly trying to compete for brightness.

The lightning is incredibly creepy, with ambient light and no atmosphere to speak of, with those giant orbs looming on each side.

Two conclusions: there’s something weird with the reflection values of planets when we start to make them stupid big, and the HDR is starting to have a hard time with Czar-Bomba-at-point-blank-range luminosities.
I kinda hope this is never “fixed” :slight_smile:

6 Likes