4
\$\begingroup\$

I am watching this IGN video of No Man's Sky in which the founder/programmer of this game talks about how different is his game from other games. Here he talks about how mathematical equations instead of art is used to render graphic of planets and animals and even their behavior.

Then he says that instead of seeing mountains he sees only equation like Fourier transform. I have no knowledge about game development and its intricacies, but I'm curious how one might use a Fourier transform or similar mathematical operation to generate terrain without art?

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Minecraft uses a very similar (but simpler) approach, the details I don't know. But, it involves a random noise generator applied to some constants that gives the desired output. \$\endgroup\$
    – rlam12
    Mar 5, 2016 at 4:30
  • 2
    \$\begingroup\$ Its worth mentioning that without any knowledge of game development, a lot of this might appear complex. It is like asking somebody with no knowledge of cars to explain changing ones oil. \$\endgroup\$
    – Gnemlock
    Mar 5, 2016 at 16:39

2 Answers 2

11
\$\begingroup\$

One simple way is to use something like the midpoint displacement algorithm. It can be used to generate terrain, lightning, clouds, and other things as well. (It's a bit old, but easy to understand.)

It would also be possible using a Fourier Transform to add in various frequencies at various amplitudes to generate terrain.

Some systems, such as liquid flow, clouds, fire, and smoke can be modeled using Particle Systems.

In general, you can look up Procedural Generation for more information.

\$\endgroup\$
1
  • 3
    \$\begingroup\$ I like the answer, but OP obviously comes from a layman P.O.V, and I feel this answer would simply create more questions. \$\endgroup\$
    – Gnemlock
    Mar 5, 2016 at 16:56
1
\$\begingroup\$

To provide a simple solution, in layman speak, all art through a computer is mathematics; in a sense.

When you load an image on your computer, the computer processes logic to determine what to display. This logic often difers, so the 'rules' are predefined in the format. Your computer will load a "bitmap" (.bmp) in a different way then it will load a "jpeg" (jpg). The differences are irrelevant without going into graphical design.

Ultimately, the computer understands numbers. You screen is made up of tiny dots, and a digital image simply tells the computer which dots to light up, when loaded. Delving further, it tells the computer how much red, green and blue to use on each dot, which in turn, defines our common perception of colour (Each pixel simply mixes the primary colours, and all colours are made up of our three primary colours; this concept reaches outside of computers and into real life.)


At the end of the day, all you need to understand is that the computer interprets art as mathematics in every instance, in order to understand how it should display the image. You could load Van Gough through google images, but your computer will still process it in the same way. We often call this the "interface". Within complex understanding of how the image converts, one has powerful ability over the image being displayed. This practice is so complex, that even in game developing, we often outsource a lot of this functionality to a separate system, such as Direct X.

It is not uncommon for a game to take control of this manipulation. It is easily an extremely complex subject, even for someone who is well versed in game developing. But technology has made the practice increasingly possible, so it is not surprising that someone has used it as a primary basis for their level generation.

I find a good model for "graphics-based game engine" is boxcar2D. It is a prototype that simply draws cars out of primitives, using flash, and slowly attempts to identify the best combination to create an efficient motor vehicle.

While I believe it would pose more questions than answers, for the average layman; I trust that it presents a much simpler variation of the concept of using computer graphics, as opposed to real "art" graphics.

Should you wish to delve further, I personally welcome anybody wishing to delve into game developing; However, you may find answers far quicker under the topic of "Computer Graphics".

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .