Announcement

Collapse
No announcement yet.

Real-size procedural universe

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Real-size procedural universe

    Been working on porting my procedural universe code into UE... Still got a lot of work to go, but I thought it's worth showing off

    #2
    Originally posted by dexyfex View Post
    Been working on porting my procedural universe code into UE... Still got a lot of work to go, but I thought it's worth showing off
    Holy %$^#$^% - That woke me up... - So, when's this coming to the Unreal Marketplace?
    Wow! So are you going to say more about how you did any of that. Any plans to sell the tech?

    Comment


      #3
      That's some hot stuff... looking forward to future updates.

      Comment


        #4
        Dude. You are a wizard.

        Comment


          #5
          thats cool lol i'd love to check that out on my vive with some music

          Comment


            #6
            Originally posted by franktech View Post

            Holy %$^#$^% - That woke me up... - So, when's this coming to the Unreal Marketplace?
            Wow! So are you going to say more about how you did any of that. Any plans to sell the tech?
            I'll try to explain a little...
            It's a UE plugin, and I haven't made any engine changes (yet) except for enabling the 32 bit depth buffer option. There's a couple of control inputs from the game's character class, which is allowing toggle between controlling the character and flying the "ship". There's a custom hierarchy of 64 bit integer coordinate systems that the ship moves through, you can read more about that on my dev blog site: https://dexyfex.com/2016/07/11/galax...s-coordinates/
            The generating algorithms are all deterministic so the same universe will be generated every time. It has a 32-bit universe seed number.

            All the universe rendering is done manually via PostOpaqueRenderDelegate, using global shaders. There's heavy use of custom render targets and compute shaders. Mostly the final rendering is just 2D compositing of impostors and billboards. It has a custom impostor cache for galaxies and nebulae so that it's not re-rendering every galaxy every frame. There's also some aggressive caching of CPU generated data, eg positions and colours for stars.

            Not really sure yet on the exact future of this, but the current plan is to make a commercial game with it.

            Comment


              #7
              Originally posted by dexyfex View Post
              Not really sure yet on the exact future of this, but the current plan is to make a commercial game with it.
              dexyfex

              Cheers for the link.... A plugin with almost no engine modification, that's highly impressive...
              Can you explain how you render the planetary terrain (wrt spaceship landings & takeoffs etc)?

              Comment


                #8
                Put your plugin on the Marketplace, and I know I'd buy!
                Storyteller - An immersive VR audiobook player

                Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

                Comment


                  #9
                  Originally posted by n00854180t View Post
                  Put your plugin on the Marketplace, and I know I'd buy!

                  Pretty much this.

                  Comment


                    #10
                    Thanks!
                    I want to at least build a working game with the plugin before thinking about releasing it. I'm still really new to UE and so I'm not really sure what requirements there will be to support some decent gameplay yet. It's still a learning experience for me at this stage!
                    Originally posted by franktech View Post
                    dexyfex

                    Cheers for the link.... A plugin with almost no engine modification, that's highly impressive...
                    Can you explain how you render the planetary terrain (wrt spaceship landings & takeoffs etc)?
                    No worries! The terrain is currently fairly simple, basically a cube flattened into the sphere, with each face being a quadtree. It's currently all using forward rendering with manual lighting etc. At a distance, 512x512 cube maps for the surface texture and normals are used, and rendered with 129x129 vertex grids for each face. Vertices are offset in the vertex shader by cached heightmap values, generated by compute shader.
                    As the surface is approached, the large cube faces are replaced by the quadtree, which is calculated from the view frustum (fairly standard heightmap terrain idea, except the quadtree is curved). Each node in the tree corresponds to a 33x33 vertex grid which is displaced depending on a cached height value which is computed in compute shader. I use instanced rendering to draw these node grids, just with an index buffer (no vertex buffer). The vertex positions are calculated from the node's camera-relative position and the vertex id (where each node is an instance of the grid mesh). It also gets a bit complex with the double precision stuff... I've written more about planet terrain at https://dexyfex.com/2015/11/30/plane...ain-rendering/ (but note that I'm building a new system for UE, and as shown in the video it's very unfinished).

                    Things are more complex when it comes to collisions... Currently I am handling collision between the "ship" and the ground manually and outside of UE physics. But, UE physics will need to be involved to allow the character to walk on the terrain. Still undecided on how to make these two worlds fully come together like that. I really want the final terrain detail to be based on the Voxel Plugin, but I'm still not really sure how to begin that integration. The main issue is as you can see in the video - currently the UE world moves around in the universe.. at some point the UE world needs to stop moving, and the player and/or ship need to be moving through the UE world instead, and if they move outside of the WORLD_MAX area, then origin rebasing needs to happen. I think from my calculations, the integer coordinates used by the engine will have just enough range to handle a large planet surface...

                    Sorry for walls of text.

                    Comment


                      #11
                      dexyfex Cheers!... Can't wait to follow more of your progress....

                      Comment


                        #12
                        Ive been reading your blogs and following your videos over the last few years.

                        Brilliant stuff indeed!
                        Production Manager at Goodnight Games

                        Goodnight Games Social Media: Twitter | Facebook | Instagram |Youtube

                        Subscribe to Newsletter

                        Comment


                          #13
                          O_o

                          i'm trying to get event dispatchers to work...

                          Comment


                            #14
                            Playing around with 3rd-person character flying idea
                             

                            Comment


                              #15
                              Originally posted by dexyfex View Post
                              Playing around with 3rd-person character flying idea
                              Actually it's looking pretty decent. Almost like you are making a Dragon Ball Z universe with that flying postiion...
                              Great job. Love seeing the new stuff on this post.

                              Comment

                              Working...
                              X