Dungeon Architect

The dungeon flow looks really cool, any docs on how to use it?

Hi, the mission designer looks incredible.

Would you be able to provide a few tips on how to use it? Just a few simple bullets to get us started.

Thank you!

2.9.0 crashes in Standalone - UE 4.20

Steps to repro:
Make a clean project.
Enable DA 2.9.0.
Launch in standalone.
Crasherino.

Access violation - code c0000005 (first/second not available)

UE4Editor_DungeonArchitectRuntime
UE4Editor_CoreUObject!UClass::CreateDefaultObject() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:2902]
UE4Editor_CoreUObject!UObjectLoadAllCompil

GridDungeonQuery->IsNearMarker. The body is commented out. This method will no longer ever return true. PropSockets on Builder class is protected. I see there is a GetMarkers method. I am guessing the code should have been updated to use this new method instead of the property.

Thanks.

4.20 update is live in the marketplace. @DrinkThisPotion Iā€™ll check the error tomorrow

[USER=ā€œ15635ā€]FS Creations[/USER], @elec2ron Thank you. It is not hooked with any builders/layout generators so you canā€™t create any levels yet. Iā€™ll have more info on it in the next update

Submitted a new update 2.9.1

Version 2.9.1

  • Fix: Fixed a crash issue in standalone builds launched from the editor
  • New: Level streaming supports unloading of hidden maps from memory

Hello , IsNearMarker is doesnā€™t work. Check please. Thank you.

Hey,

Trying to compile my project in 4.20 (using vs2017) gives me the following error:


2>F:/UE4_Install/UE_4.20/Engine/Plugins/Marketplace/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Builders/SnapMap/Connection/SnapMapConnectionActor.h(22) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module.

Edit: looked at the code, my guess is you need to add a category to this line:


    UPROPERTY(BlueprintReadOnly, Transient)
    AActor* SpawnedInstance;


I tried this and it worked:


 UPROPERTY(BlueprintReadOnly, Transient, Category = DATest)
    AActor* SpawnedInstance;

Regards

Hi, thereā€™s a problem on startup. It happens for me on a compiled build of 4.20.1 and used to never happen.

UnrealEdEngine.cpp throws an assert:



//Already present
checkSlow(ExistingSpriteInfo->DisplayName.EqualTo(InSpriteInfo.DisplayName)); //Catch mismatches between DisplayNames


The problem is these lines in SnapMapConnectionActor.cpp



if (DoorSpriteComponent) {
    DoorSpriteComponent->Sprite = ConstructorStatics.IconDoor.Get();
    DoorSpriteComponent->RelativeLocation = FVector(0, 0, 40);
    DoorSpriteComponent->RelativeScale3D = FVector(1, 1, 1);
    DoorSpriteComponent->SpriteInfo.Category = TEXT("Dungeon");    //------------Problem
    DoorSpriteComponent->SpriteInfo.DisplayName = FText::FromString("Snap Door");    //------------Problem
}

if (ConnectionConstraintSpriteComponent) {
    ConnectionConstraintSpriteComponent->RelativeLocation = FVector(0, 0, 100);
    ConnectionConstraintSpriteComponent->RelativeScale3D = FVector(0.45f, 0.45f, 0.45f);
    ConnectionConstraintSpriteComponent->SpriteInfo.Category = TEXT("Dungeon");    //------------Problem
    ConnectionConstraintSpriteComponent->SpriteInfo.DisplayName = FText::FromString("Connection Constraint");    //------------Problem
}


I dug into how spriteInfo works and DisplayName is just a localized version of the Category name. Looks like itā€™s not supposed to be different. They should either both be set to Dungeon or both be set to Snap Door and Connection Constraint. Alternatively just commenting those lines out helps too. This way the editor wonā€™t throw up an assert on startup.



/** Information about the sprite category */
USTRUCT()
struct FSpriteCategoryInfo
{
    GENERATED_USTRUCT_BODY()

    /** Sprite category that the component belongs to */
    UPROPERTY()
    FName Category;

    /** Localized name of the sprite category */
    UPROPERTY()
    FText DisplayName;

    /** Localized description of the sprite category */
    UPROPERTY()
    FText Description;
};


@**uced, @illYay **Iā€™ve submitted a new update that fixes these issues.

Iā€™ve added a Category to the SpawnedInstance uproperty and commented out the SpriteInfo Category and Display name

Hey,

Thanks again for an amazing job. I know I asked something similar before but I asked two questions, 1 which I realized was kind of irrelevant. The only question that concerns me about the snap builder is if I can control how many times a module shows up?
I know itā€™s not a feature available right now but could I, for example, add to the level blueprint some sort of check for the modules, that would replace a copy or something?

Hi,

When will 2.9.1 be available for download?

Regards,
.

You are the man, thanks so much! Looking forward to it :smiley:

Hello, I was curious if you could tell me how to make a TransformLogic that allows me to make sure 1 side of a mesh is always facing ā€œinwardsā€. I have a wall mesh that is one sided and need to make sure the the material view-able side is always facing inwards towards the floor.

I have also tried making transform logic to move ā€œwallsā€ that are rotated < 90 degreeā€™s on the Z axis, this allows me to move a wall sideways only if its rotated a certain way, but the following blueprint seems to effect all ways regardless of rotation.

Anything you could do to help would be most appreciated.

Any idea when the ā€œIs Near Markerā€ node will be fixed?

Is 4.17.x no longer supported? Dungeon Architect caused a unknown issue in my project so I decided to try reinstalling the plugin but the launcher(and the marketplace description) says 4.17 is not compatible.

Oh, and in 4.18.3, if the dungeon is built with the ā€œInstancedā€ flag checked, it disappears when played on a mobile device. It doesnā€™t matter whether it was built on design-time or runtime. DungeonInstancedStaticMeshActor just disappears.
If the ā€œInstancedā€ flag is not checked(i.e. if the dungeon actor is consist of static meshes only), it doesnā€™t disappear.

It was working well on 4.17.2 with the old version of plugin, so I guess itā€™s a bug.

++
Ran some test on 4.20 and the same thing happened. The DungeonInstancedMeshActor created in the editor gets destroyed(returns invalid) when played on mobile for some reason.

Any update on when the new SnapMap demo will be available?

SnapMapBuilder ā€œBuild Module Cacheā€ doesnā€™t seem to work for me - I get the ā€œInvalid Snap Builder Module Dataā€ red warning message and it wonā€™t go away even when I click Build Model Cache. Also, clicking Build Model Cache doesnā€™t seem to do anything visible in the Editor or in the Output Log, so maybe it isnā€™t working?

Iā€™ve create a small test in 4.19 and 4.20 and have seen this same result:

  1. Make a new blank level, place a floor static mesh and drop some default SnapMapConnectionActors into it. Save level.
  2. In a separate level, add a Dungeon actor, set it to Snap Map and add the module level to each module type array.
  3. Click build module cache. Nothing seems to happen.
  4. in the level blueprint, hook up ā€œbuild dungeonā€ on your dungeon actor to Event Begin Play so the dungeon will be built at runtime.
  5. Play in Editor and a Red warning message says ā€œInvalid Snap Builder Module Dataā€ and the dungeon is never generated, regardless of how many times the Build Module Cache button was clicked in Editor before pressing Play.

You said that the Dungeon wonā€™t generate in Editor, but I assumed that meant just that it wouldnt work if you click ā€œbuild dungeonā€ while in editor mode, but that it should work this way if you Play in Editor and build at runtime - or does it only work in an actual Packaged build (which would be crazy because thereā€™d be no way to test in editor)?

EDIT - Found a Fix
Seems if I ā€œbuild dungeonā€ and ā€œDestroy Dungeonā€ from the editor before adding any modules, something is initialized and the dungeon afterwards works correctly when adding modules and clicking ā€œBuild Module Cacheā€