SCIENCE (biatch!) for Big Games!

Published July 29, 2018
Advertisement

Hi! I'm a crazy person who has studied pretty much every science known to humanity and started drawing it all into one, continuous series of cause and effect, from The Big Bang and quantum mechanics to modern history and the workings of your cell phone (yes, your cell phone, Richard!), and I am now making a very simplified series of sciencey blog entries, as it might apply to a large scale game the likes of what we all hoped Spore, No Man's Sky or others might become. We're talking scientifically simulated universes born from numbers and generated for your enjoyment (yes, even you, Richard). This entry, however, is purely to stop making little lists of links for every entry in the series, in every entry in the series. Your one stop list of all entries. I am here to please (calm down, Richard, not like that...). I also need to get more sleep or I start rambling like a crazy person...

Part 1: A brief introduction

Part 2: Quantum Mechanics and nuclear Physics

Part 3:Astrophysics and Astronomy

Part 4: Chemistry and Thermodynamics

Part 5: Geology, Geochemistry, and Geophysics

Part 6: Genetics, Chemotaxi, Physiology, and Ecology

Part 7: Coming up.....

3 likes 9 comments

Comments

Awoken

The Crazy guy's back!  /?
Also, who's Richard?  He sounds mysterious.

July 29, 2018 10:42 PM
Embassy of Time
8 hours ago, Awoken said:

The Crazy guy's back!  /?
Also, who's Richard?  He sounds mysterious.

I was always here. Watching, analyzing, studying. Waiting!

And Richard is a sufficiently common name that it should freak SOMEONE out :-D 

July 30, 2018 07:26 AM
Gnollrunner

I added a bit of "fake" astrophysics, to the engine I'm working on.  It's kind of based on objects and references and there are different kinds of references you can have between objects. One of them is an astrophysics reference that you can put between say a sun and a planet.  Then you can add motions to the reference. For instance you can add a circular orbit or elliptical orbit and a rotation. Around the planet you can add a moon with another astrophysics reference with an orbit. It's basically a tree. The camera is another object that you can place in the tree and when you render, it does the reverse transformations up and normal ones down, so it kind of spreads out from the middle of the tree so everything is appears in it's correct place based on where you are. It also gets rid of the single precision problem since you are basically moving everything around the camera and not the other way around.

In any case they reason I said "fake" is that it doesn't actually calculate orbits by gravity. This is because I want it to be fast and also I want to make sure that all planets stay in their orbits and don't go off track due to rounding errors over time.  So for instance if you have an elliptical orbit, it just calculates the sweep over time for the ellipse .

I mainly wanted to do it for realistic day/night cycles in a fantasy MMO, but I guess you could use it for a space game too.

July 30, 2018 08:08 AM
Embassy of Time

Gnollrunner, sounds like the kind of stuff I read and experiment with! Also, I always use a version of the reverse cqlculation on my cameras, it lets you do cameras as movable objects, if done right!!

You got a blog or vlog on your work??

August 01, 2018 07:26 AM
Gnollrunner
3 hours ago, Embassy of Time said:

 

You got a blog or vlog on your work??

Actually I was working on this project several years back and then I had to shelve it because I got busy with other life stuff.  It was written in C++ with DirectX 9.  I got it to the point where it would generate large planets at about half meter resolution. There is actually no data stored on disk. It just uses functions at run time with triangular subdivision and kind of an infinite LOD. For physics it generates the same model only just around the player so even if the graphics update lags, the player is still responsive. This all worked fairly well.

In any case, I pulled it out of mothballs a few months ago and it wouldn't compile, nor would the executable even run on Windows 10 (after some Windows update). I decided instead of fixing the old version I would rewrite it for C++ 11 and DirectX 11. I actually thew out most of the code because the other thing I didn't like was the fact that it could only do height maps and so you couldn't have underground caves and stuff like that.

For my new version it uses octrees instead of quadtrees and prism shaped voxels instead of equilateral triangles.  It turned out to be way harder than I thought.  The marching prisms algorithm itself is not so bad, however when you  combine it with chunking, normal generation, LOD level transitions and all the stuff it takes to make a real game engine out of it, things get complicated fast.  At this point I petty much have the basics together but I'm still getting the bugs out of it.  I'll probably do a blog at some point when I feel I have something that looks good enough to show off.

 

August 01, 2018 10:35 AM
3dBookman

Hey EOT;  Sounds like we are working along the same lines.  I choose a different media than a game to accomplish a similar educational experience.  What I call a 3DBook. With both text capabilities and 2D and 3D rendering and animation.  What I have so far is a reader, which can read the 3Dbook format(a text file).  So there is text on one page and a 3D graphics world on the other displayed in the reader.  And a library of titles Of the books, chapters, short essays I am working on.  Presently working on a title "Mechanics".  Starting with a void empty world called "Zen" and introducing elements from our universe into it slowly and piece by piece beginning with time itself.  I suppose unlike the bigbang where we had the void one moment and the full-blown complexity of QM a femtosecond later. Nature does not play fair.  So I use a divide and conq approach,  incrementally learning how to do the programming starting from the simple and working to more realism and complexity as I go.  It is way way too much for an individual to do -Needs a team of workers.

Check my blog, here.

Regards, 3DBookman

August 01, 2018 12:49 PM
Embassy of Time
20 hours ago, 3dBookman said:

 

22 hours ago, Gnollrunner said:

For my new version it uses octrees instead of quadtrees and prism shaped voxels instead of equilateral triangles.  It turned out to be way harder than I thought.  The marching prisms algorithm itself is not so bad, however when you  combine it with chunking, normal generation, LOD level transitions and all the stuff it takes to make a real game engine out of it, things get complicated fast.

Wait, did you get a triangle based octree to work??? I racked my brain for weeks but never got it to. Tetrahedrons just don't tesselate(??) like cubes do. Show me your magics?? ?

20 hours ago, 3dBookman said:

Check my blog, here.

I would love to check out your stuff! However, there seems to be no link? 

August 02, 2018 08:56 AM
Gnollrunner
14 minutes ago, Embassy of Time said:

Wait, did you get a triangle based octree to work??? I racked my brain for weeks but never got it to. Tetrahedrons just don't tesselate(??) like cubes do. Show me your magics?? ?

You're right, tetrahedron's don't subdivide into an octree, but prisms do.  In fact I think cube like shapes and prism like shapes are the only ones that work. You can create prisms around a sphere by starting out with an icosahedron and extruding it outward.  Each of the 20 separate prisms is the root of an octree.  The way I do it, I have separate voxels and walls so it's kind of like a 3D spacial mesh that's all connected.  From there you can build terrain using a marching algorithm and if you set up your data structures the right way, you don't have to put together the triangles.  They are built already formed into a mesh without going up and down the octrees.  However as I said, with chunking and level transmissions it gets somewhat more complex. 

August 02, 2018 09:26 AM
3dBookman

3DBook blog

Sorry; new here, still don't know the ropes.

Hope the link works.

3D

August 02, 2018 05:55 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement