The latest updates are live on the marketplace
Hello !
It works super well, thanks again.
In case anyone is interested, is what i did to make it work.
1/ add the following in your build.cs.
PublicDependencyModuleNames.AddRange(new string] { "DungeonArchitectRuntime" });
PublicIncludePaths.AddRange(new string] { "DungeonArchitectRuntime/Public", "DungeonArchitectRuntime/Classes" });
2/ donât forget to add every headers needed:
#include "DungeonThemeAsset.h"
#include "Core/Dungeon.h"
#include "Builders/Grid/GridDungeonBuilder.h"
#include "Builders/Grid/GridDungeonConfig.h"
3/ you can now use the code provided by, is exactly what i did in my playercontroller, just for completeness sake:
void AyagPlayerController::ServerSpawnDungeon_Implementation()
{
// Create a new dungeon actor
ADungeon* Dungeon = GetWorld()->SpawnActor<ADungeon>(ADungeon::StaticClass());
// Grab a reference to the theme asset and register it with the dungeon actor
FString StrDATheme = "/Game/test/DungeonThemeTest";
UDungeonThemeAsset* DATheme = Cast<UDungeonThemeAsset>(StaticLoadObject(UDungeonThemeAsset::StaticClass(), nullptr, *StrDATheme));
if (!DATheme) return;
Dungeon->Themes.Add(DATheme);
// Set the builder type
Dungeon->BuilderClass = UGridDungeonBuilder::StaticClass();
Dungeon->CreateBuilderInstance();
// Set the dungeon configuration
UGridDungeonConfig* GridConfig = Cast<UGridDungeonConfig>(Dungeon->GetConfig());
if (GridConfig) {
GridConfig->Seed = FMath::Rand(); // Randomize our dungeon
}
Dungeon->BuildDungeon();
}
My last problem is that my intelisense is now crazy (i tried to add the DA include dir in its conf, but no success) but thatâs another story.
Cheers
Ok I wanted to share some of my thoughts on the usability as it relates to the snap builder in DA That I emailed to. Again this relates to the snap builder as that is what my project is using I dont have really much experience or know if any of what Iâm laying out applies to the other builder types.
Firstly it is a HUGE workflow hindrance to have to manually set the acceptable connector list on every the door asset every time I place it. When it is in the content browser I can go set all of the meshes/BP it will load and everything. I should be able to set the modules that it can connect to as all other settings . This way I can make a snapDoor for rooms and a snapDoor for corridors and then all I have to do is drag them in. Right now I have to remember to go add a module name in the and hope there isnât a type-o which is bound to happen when manually doing something hundreds of times. No to mention you could also expose integrate the snap info into this and expose it as well.
This way you can just make up your door types in the content browser and drag and place them where they need to be and not have to worry if you set everything right in every level and if something is wrong there is one place to look to fix it. This would VASTLY simplify things.
If you insist on keeping the snap info node separate can you make it where it can be added to the content browser at least and I can set the info in there and so that if I make them and save the setting there I simply have a RoomSnapInfo and a CorridorSnapInfo that I only have to make once and then drag into all of the rooms.
Right now there is so much manual stuff that unnecessarily needs to be repeated in invites error and trouble.
[MENTION=3956]James Barnette[/MENTION] Thank you for the feedback. The AllowedModuleType constraint cannot be set on the global asset level, as they have to be set in the module level for more control. This is because you will use the same door asset in both the room and the corridor (with different attachment rules), hence it has to be set on an instance of the door actor, as opposed to the door asset itself
You are right that it does require manual work and Iâll minimise it. Iâll move the AllowedModuleTypes property to an asset called SnapDoorAttachmentRule. Then you assign this reference of this rule to the doors. This way you set the rules only once on the asset and easily change it in the future if needed
You dont have to use the same door asset. I have always made 2 and it has worked. one for corridors and one for rooms.
Those two doors will not attach. The point of using door assets is to make seamless attachment across different shaped endpoints (e.g. a rectangular shaped door should not attach to a curved tunnel)
Hmm just tested and it attaches when it shouldnât
That feel when what should not be is.
Btw, does DA use HISMCs or ISMCs only ?
in English please? lol
Can we get a full list of engine features that wont work with the snap builder. as best I can tell The Anything using the painting systems doesnât work. Iâm not sure what the reason is for this but using the vegetation pain for scattering object on a surface doesnât work as well as it seems that Vertex painting for blending textures on an object also gets lost when building the dungeon.
So it would be nice to know the full list of things that are not going to work so that we dont waste time doing only to have them thrown out when he dungeon builds.
Ouch, thatâs not good I hope it gets fixed in the upcoming updates as I think those are quite essential features.
What kind of lighting setup do you use with DA for run-time generation ? (full real-time lighting)
Concerted about real-time GI, whether itâs true real-time GI or fake real-time GI. If there is no real-time GI, and itâs fully run-time dungeon/level, the game will look like Doom 3, wouldnât it ?
Well To My knowledge you can use baked lighting to to the fact that the geometry is being moved. I can only guess that this is also what is affecting the Vertex painting on geometry as well as the foliage painting. Which I have to see these results are strange as I know that if I use the paint tool and scatter some rocks and ruble on the ground then I move that plain in the editor when I release the object all of the object that were painted to it snap to the new position. So I think that there is a possibility for getting this to work.
As for the Vertex painting for blending of materials. Iâm really not sure why this isnât working. I cant think of any reason why this shouldnât still work.
To all users of the Snap builder version 2.1.8-2.1.10 are any of you experiencing and inability to save you level after you have built the dungeon. even if you hit the destroy dungeon button you are unable to save and getting an error that says that you can save because items in you graph are in other levels. Which of course after destroying the dungeon they should not be.
Did you mean to write can not ?
If I bake lighting, then move geometry, I will get lighting needs to be build warning in red letters when running the game and the geometry will be black.
Yeah sorry meant CANâT use baked lighting.
(Hierarchical) Instanced Static Mesh Components
James, Foliage support is in the todo list. The snap builder is still a wip and Iâll create a roadmap for it soon.
As for the save issue, I worked on the test level you sent yesterday and sorted most of the issue but I need to properly do this by using world composition. For some reason, the UWorld::Spawn function still references the child actors in the external module map, and doesnât allow saving.
Edit: Foliage, vertex paint, baked light and other engine features should work when I stream the level in using world composition, rather than cloning and spawning it myself (which doesnât seem to clone it properly)
Could you please make a short video explaining how to set it all up to work properly ? Thanks