Announcement

Collapse
No announcement yet.

Dungeon Architect

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

    The Intermediate > Build folder inside my DA's Plugin folder is 3gb big. When i delete the folder will only my local "Build" be deleted?

    When i package the project, do i have to include all the DA Plugin files (currently 500 mb), or can this be tweaked for the client release?
    [LEGENDS of EPICATwitter / FB / YT / Vimeo discord.gg/saG3x4Y]

    Comment


      Originally posted by Laurentius View Post
      So I gave it another try to get a working (playable) solution for my entrance/exit room problem with the GridBuilderDungeon (for runtime dungeon creation) I described in this post in this thread for the weekend. (https://forums.unrealengine.com/show...l=1#post615096)

      Short summary of the missing requirements I have for the entrance and exit rooms:
      - I need to place the meshes for the stairs at a wall (length around GridCellSize * 3) that has no doors that would be blocked
      - I need a non playable area behind the stairs of around GridCellSize * 2 (TopDown view - the player must not stand behind the stairs meshes)
      - the rooms must not be disconnected from the rest of the dungeon

      I made a DungeonEventListener (OnDungeonLayoutBuild event) and created two ThemeReplaceVolumes (for displaying the stairs up/down meshes) that cover the furthes rooms in the dungeon, a MarkerReplaceVolume (for stairs down at the north wall - to get rid of the ground meshes and one wall) and two NegationVolumes (just behind the rooms north wall at width of the room - to get empty space behind the rooms).
      All these are placed at runtime or manually build with a random seed at the correct location and scale - good.
      And I made separate themes for the normal dungeon, the entrance (stairs up) and the exit (stairs down).

      If I create a dungeon with some seeds I get a playable dungeon that looks good (after rechecking "Realtime Update" for the volumes and destroying and builing the dungeon with the same seed again). But many seeds will be unplayable.

      Here are the problems:
      1. NegationVolumes can sometimes make the rooms separated from the rest of the dungeon. (the player can't reach entrance or exit)
      2. NegationVolumes and MarkerReplace are only active after the dungeon is build and "Realtime Update" is manually rechecked once - without rechecking the volumes are shown at the correct location but have no effect at their new bounds but on the last random dungeons bounds. (e.g. the stairs going down are blocked by floor meshes that the MarkerReplaceVolume should suppress)
      3. I believe there are some remains of older volumes (ThemeReplace, MarkerReplace and NegationVolumes) in the dungeon even after "Destroy Dungeon" and "Build Dungeon" is clicked with a new seed - the new bounds and older bounds of the volumes can be seen - really weird ^^
      4. Sometimes a theme is not replaced correctly - the stairs meshes are ok but not the door meshes (I can see this as my entrance and exit room themes have different doors). Rechecking "Realtime Update" for the theme volume AND "Destroy" AND "Build" the dungeon helps here.

      Questions:
      I there a way to force an update of the volumes in a blueprint?
      How can I reconnect rooms that are separated by NegationVolumes?
      Is "OnDungeonLayoutBuild" the right place to capture the rooms bounds and set my volumes?

      I made some test with additional PlatformVolumes to reconnect separated rooms - but separated rooms by NegationVolumes won't reconnect that way.

      Any help would be great.
      Thanks.

      BTW: the spawner blueprint problem still persists ;-)
      Edit: a NavMeshVolume automatically created around the whole dungeon has similar problems like the other volumes and does not always work (I have to make I little manual ajustment to e.g. the scale and it works again ...)
      Yup, this is why I decided to just create a portal into the dungeon. Waiting until there's some reliable way of making a static entryway / exit.
      If you wanted to be really sneaky (which I plan to try tomorrow), perhaps a trick with a camera and replacement texture could make a region appear as though it's connected to a dungeon but really be teleporting the player to some sort of marker.

      For NavMesh I changed the engine settings to do runtime navmesh generation and it seems to be working well. I just created a volume large enough to cover a really big dungeon.

      Comment


        My game has topdown view and the player can always see beyond the entrance/exit .... it will never look good without real meshes.

        And even in FPS view you will have the door behind portal/exit/entrance problem.

        The problems with the navmesh can be seen with a static boundsvolume, too. But thats maybe a unrealproblem that could be solved by spawning or moving an actor in the navmesh bounds or transforming the navmeshbounds itself in order to retrigger navmesh creation. Maybe it is a PIE only problem ...

        I tried snapbuilder again to have more control, but I cannot generate it properly (only one level part is created and the builder stops). And many crashes while destroying the build dungeon ...

        Comment


          There should be The Starting Point and Exit Point Node. Preferable. Then when you use several dungeons you could assign the starting point to an existing exit node. The entries can be assigned to a teleport then, unless you intend to arrange the entry to a landscape hole (For straight dungeon types). However, with world composition and dynamic level loading you can also arrange the entry to some rocks and such, but the question is then how you cover up the rest of the dungeon from the view. So i think best place for DA dungeons is to place them below a landscape, or you load them when the player enters the dungeon entrance (which could again have its dedicated DA Node, for a more sophisticated design flow), actually not sure what i will use. With dedicated Entrance/Exit Nodes you can introduce/design more easily level variation, instead of generic placing a door scene and begin using blueprints to make those areas distinct.
          Last edited by unit23; 11-22-2016, 04:48 AM.
          [LEGENDS of EPICATwitter / FB / YT / Vimeo discord.gg/saG3x4Y]

          Comment


            Originally posted by Laurentius View Post
            The problems with the navmesh can be seen with a static boundsvolume, too. But thats maybe a unrealproblem that could be solved by spawning or moving an actor in the navmesh bounds or transforming the navmeshbounds itself in order to retrigger navmesh creation. Maybe it is a PIE only problem ...
            It might be enough to add a transform navmesh on EventBeginPlay, by 1 unit? And this might be indeed a PIE only problem, did not encountered this yet with 4.14, but little testing so far.
            [LEGENDS of EPICATwitter / FB / YT / Vimeo discord.gg/saG3x4Y]

            Comment


              Originally posted by Laurentius View Post
              hotfix.1 does not help ...

              The spawn blueprint always spawns the actors at location (0,0,0) ...
              If I set a breakpoint in the blueprint in the BeginPlay event, I can see that GetActorLocation always returns (0,0,0) when using a runtime generated gridbuilder dungeon.

              It works correctly when building a static dungeon.
              [MENTION=121838]Laurentius[/MENTION], I just tested and cannot seem to reproduce it. The actor node spawns correctly on runtime even with actors having their mobility set to Static. Could you try deleting the actor node and recreating it?
              Dungeon Architect | Prefabricator

              Comment


                Originally posted by unit23 View Post
                Is there somewhere an example theme for house roofs?

                I could prepare roofs i guess, will take a look at the angular example soon, roof examples



                To create a house, i use the floor builder first, and for the final dungeon a lot of negation volumes, right? Or the city builder with premade buildings?
                You could use a grid builder and populate houses on the sides (outside the dungeon) and use the dungeon path as a walkway. It looks like this in the Unity version. We can have something like this after I add landscape transformation support to unreal. It also modifies the texture / foliage on the landscape



                Alternate way where the houses are placed in the center of "rooms" so it looks like the pathways are connecting the houses of a small village





                Here's another one with the simple city builder


                They are all house prefabs so you don't have to deal with roofs. For entering a house, you could switch to a new level created using the floorplan builder, like in skyrim
                Last edited by Ali Akbar; 11-22-2016, 06:54 AM. Reason: screens
                Dungeon Architect | Prefabricator

                Comment


                  Thanks Ali for pointing this out, will try that approach for my villages. Floor plans for such housing is mostly a standard house interior, will post my results here, might take a couple of days. Cheers
                  [LEGENDS of EPICATwitter / FB / YT / Vimeo discord.gg/saG3x4Y]

                  Comment


                    Originally posted by TheCouch View Post
                    Hi Ali,

                    Issue with fence separators and half-walls. There's a bug where a fence separator, a half-wall separator and a half-wall is emitted but no fence. It's rather odd and I suspect it's just gone unnoticed. I'd like to see the fence separator removed so that only the half-wall and half-wall separators are emitted but I could live with the fence being emitted as well. One other thing, it seems to flip the fence separator in odd ways depending on whether it's a corridor or a room. I'm not clear on that though, so take it with a grain of salt. I've attached a screenshot to demonstrate.

                    The settings that you see are all that you need to reproduce. I've doubled (or tripled) the scaling on the fence and fence separators to make them visible. As you can see, you get half-walls, half-wall separators and fence separators but no fence. Best option for me would be to remove the emission of the fence separator in this case.

                    Thanks.
                    [MENTION=165325]TheCouch[/MENTION], Thanks for pointing it out. It's a bug and it should not be there. I'll remove the redundant fence separator below the room walls. For your other point, it shouldn't be a problem as they would not be created anymore

                    Last edited by Ali Akbar; 11-22-2016, 07:07 AM. Reason: image
                    Dungeon Architect | Prefabricator

                    Comment


                      Originally posted by Laurentius View Post
                      So I gave it another try to get a working (playable) solution for my entrance/exit room problem with the GridBuilderDungeon (for runtime dungeon creation) I described in this post in this thread for the weekend. (https://forums.unrealengine.com/show...l=1#post615096)

                      Short summary of the missing requirements I have for the entrance and exit rooms:
                      - I need to place the meshes for the stairs at a wall (length around GridCellSize * 3) that has no doors that would be blocked
                      - I need a non playable area behind the stairs of around GridCellSize * 2 (TopDown view - the player must not stand behind the stairs meshes)
                      - the rooms must not be disconnected from the rest of the dungeon

                      I made a DungeonEventListener (OnDungeonLayoutBuild event) and created two ThemeReplaceVolumes (for displaying the stairs up/down meshes) that cover the furthes rooms in the dungeon, a MarkerReplaceVolume (for stairs down at the north wall - to get rid of the ground meshes and one wall) and two NegationVolumes (just behind the rooms north wall at width of the room - to get empty space behind the rooms).
                      All these are placed at runtime or manually build with a random seed at the correct location and scale - good.
                      And I made separate themes for the normal dungeon, the entrance (stairs up) and the exit (stairs down).

                      If I create a dungeon with some seeds I get a playable dungeon that looks good (after rechecking "Realtime Update" for the volumes and destroying and builing the dungeon with the same seed again). But many seeds will be unplayable.

                      Here are the problems:
                      1. NegationVolumes can sometimes make the rooms separated from the rest of the dungeon. (the player can't reach entrance or exit)
                      2. NegationVolumes and MarkerReplace are only active after the dungeon is build and "Realtime Update" is manually rechecked once - without rechecking the volumes are shown at the correct location but have no effect at their new bounds but on the last random dungeons bounds. (e.g. the stairs going down are blocked by floor meshes that the MarkerReplaceVolume should suppress)
                      3. I believe there are some remains of older volumes (ThemeReplace, MarkerReplace and NegationVolumes) in the dungeon even after "Destroy Dungeon" and "Build Dungeon" is clicked with a new seed - the new bounds and older bounds of the volumes can be seen - really weird ^^
                      4. Sometimes a theme is not replaced correctly - the stairs meshes are ok but not the door meshes (I can see this as my entrance and exit room themes have different doors). Rechecking "Realtime Update" for the theme volume AND "Destroy" AND "Build" the dungeon helps here.

                      Questions:
                      I there a way to force an update of the volumes in a blueprint?
                      How can I reconnect rooms that are separated by NegationVolumes?
                      Is "OnDungeonLayoutBuild" the right place to capture the rooms bounds and set my volumes?

                      I made some test with additional PlatformVolumes to reconnect separated rooms - but separated rooms by NegationVolumes won't reconnect that way.

                      Any help would be great.
                      Thanks.

                      BTW: the spawner blueprint problem still persists ;-)
                      Edit: a NavMeshVolume automatically created around the whole dungeon has similar problems like the other volumes and does not always work (I have to make I little manual ajustment to e.g. the scale and it works again ...)
                      [MENTION=121838]Laurentius[/MENTION] The right way to approach these problems would be to give you all more control of the flow of your dungeons like I mentioned in this post. I've already started work on this yesterday and got the flow control editor frame working. It will take a 2-3 weeks to finalize it though. I'll keep you all posted and give early access to it in the coming days
                      Dungeon Architect | Prefabricator

                      Comment


                        Regarding the Snap builder, although it is a work in progress, it is unstable and crashes at times because the engine doesn't like importing actors from another Level map. It also causes issues while cooking, making module level data inaccessible on cooked games. This is not acceptable

                        So, going forward I'm changing the way a module is saved. Instead of saving your module in a level file, you will now save it as a blueprint. This will remove instabilities and will work in runtime. The downside is, it is not easy to modify your modules inside a blueprint.

                        Let me know what you think.

                        (I'll continue to explore the world composition method which we have right now in another development branch)
                        Dungeon Architect | Prefabricator

                        Comment


                          Originally posted by unit23 View Post
                          The Intermediate > Build folder inside my DA's Plugin folder is 3gb big. When i delete the folder will only my local "Build" be deleted?

                          When i package the project, do i have to include all the DA Plugin files (currently 500 mb), or can this be tweaked for the client release?
                          [MENTION=31112]unit23[/MENTION] The intermediate folder is not needed (only used by visual studio, which it creates again if not preset). When I make releases for the plugins, I leave that folder out.

                          The Binaries folder is where the dlls / libs are for each profile (Development, DevelopmentEditor, DebugGame, Shipping etc).

                          When you create a shipping build, you shouldn't need to add any extra files to your build. UnrealEd should embed the DA code in your game exe (since DA shipping build is exported as a static library).

                          The development DLL is ~2.3MB. Shipping version should be smaller after it is linked
                          Dungeon Architect | Prefabricator

                          Comment


                            Originally posted by Ali Akbar View Post
                            [MENTION=121838]Laurentius[/MENTION] The right way to approach these problems would be to give you all more control of the flow of your dungeons like I mentioned in this post. I've already started work on this yesterday and got the flow control editor frame working. It will take a 2-3 weeks to finalize it though. I'll keep you all posted and give early access to it in the coming days
                            This post looks interesting and could be a very usable approach on giving the whole level a game flow - nice!
                            I read nothing about visual customization of the "special" rooms, but maybe this can be done also with this new editor - we'll see ;-)

                            Thanks for working on this and improving DA.

                            Comment


                              Originally posted by Ali Akbar View Post
                              Regarding the Snap builder, although it is a work in progress, it is unstable and crashes at times because the engine doesn't like importing actors from another Level map. It also causes issues while cooking, making module level data inaccessible on cooked games. This is not acceptable

                              So, going forward I'm changing the way a module is saved. Instead of saving your module in a level file, you will now save it as a blueprint. This will remove instabilities and will work in runtime. The downside is, it is not easy to modify your modules inside a blueprint.

                              Let me know what you think.

                              (I'll continue to explore the world composition method which we have right now in another development branch)
                              I have a done a working solution inside my game that does just that - modules are designed in a blueprint and then stiched together in the level.
                              It's not very easy to design these modules in the standard blueprint editor though ... I love the ability to just run the module as a mini level to test how things work out - but that is not doable with blueprints.
                              The upside is that with blueprints you can have more than one module open at a time - you can't do this with levels.

                              Comment


                                Originally posted by Ali Akbar View Post
                                [MENTION=121838]Laurentius[/MENTION], I just tested and cannot seem to reproduce it. The actor node spawns correctly on runtime even with actors having their mobility set to Static. Could you try deleting the actor node and recreating it?
                                For a test I made a new actor blueprint and just print the location return by GetActorLocation in BeginPlay on screen.
                                I then added the actor blueprint into my theme with a new actor node.

                                Vector 0,0,0 is always printed on screen ... ^^

                                Here is how I generate the runtime dungeon - maybe something is wrong here or must be updated?

                                Click image for larger version

Name:	SpawnProblem.jpg
Views:	1
Size:	111.3 KB
ID:	1118791

                                And another question - does RebuildNavigation force the NavMesh to rebuild? Or whats the purpose of this node?

                                Comment

                                Working...
                                X