The door should be the same size as the grid, larger doors are not supported
Announcement
Collapse
No announcement yet.
Dungeon Architect
Collapse
X
-
How to create first person shooter game from scratch. Lots of tutorials: http://www.shootertutorial.com - celebrating 50th Tutorial!
My Marketplace Assets
-
I have a problem with dungeon selector logic. I would like to do traces to determine the space between the dungeon and landscape however because the selector BP is not an actor child the trace functions are not available.
Does anyone know how i can make the trace functions available in the selector BP?
Comment
-
Hi Ali.
I currently use SnapBuilder level generation (as I have much more control over the rooms compared to gridbuilder - and I need this for a topdown view game).
The level generation with the Blueprint version of SnapDungeonBuilder works ok and is fast, but I wonder if this is further in developement.
The SnapBuilder version stitching rooms defined as levels does not work, is VERY slow and crashes unreal editor way too often!
So will the blueprint version SnapDungeonBuilder be developed any further? I really need options for limiting rotation of rooms that I read about a year or so...
Setting Side Branches > 0 does not work at all ... the rooms overlap all the time.
And the SnapConnectors show the little red arrow not at the origin of the actor - I don't know why.
Maybe you have time to respond to my questions.
Thanks,
Lars
Comment
-
I pored through the engine code tried a few different approaches for the snap builder crash issues but I still seem to be doing something wrong :| It crashes due to a invalid memory reference while the engine tries to tick the level's callback function.
I'll continue working on this and update tomorrow on the statusLast edited by Ali Akbar; 01-24-2018, 12:18 PM.
- 1 like
Comment
-
Originally posted by Ali Akbar View PostI pored through the engine code tried a few different approaches for the snap builder crash issues but I still seem to be doing something wrong :| It crashes due to a invalid memory reference while the engine tries to tick the level's callback function.
I'll continue working on this and update tomorrow on the status
And the problem designing those Blueprint can be perfectly solved by using the Prefab addon from the Marketplace. You actually design the Blueprints in the level editor of Unreal - works good.
But the DA side need some bugfixing and a little more features (as I described above).
What's also needed is the ability to suppress some actor types from the Blueprints (if this is possible) and the ability to restrict some "rooms" to occur only once (or a definable amount) - no one want's 2 boss rooms of the same type in one level ;-)
And rooms occurring in an exact order would be nice for gameplay, too.
Thanks for working on it,
Lars
Comment
-
Originally posted by Konflict View Post
In Runtime/SceneProviderCommand.cpp at line 59 (before the SetMeshComponentAttributes call) just put this setting, which will enable for the non-instanced meshes to copy and use the collision settings from the Theme editor:
Code:MeshComponent->bUseDefaultCollision = false;
Code:Component->bUseDefaultCollision = false; UEngine::CopyPropertiesForUnrelatedObjects(Mesh->Template, Component);
One note tho, that these mesh template settings you set up in the dungeon theme will not gets populated until you open up the theme asset in the editor before spawning the dungeon. This apparently is because the Runtime/DungeonMesh.cpp will initialize a default StaticMeshComponent for the Template property, and that will erase these settings. This only happens until you open the Theme Asset in the editor, when the proper Template settings gets populated, and from that point it will be accessible for the Dungeon to build the mesh with the chosen properties.
To overcome this issue; i have removed the initializations from the Runtime/DungeonMesh.cpp (just empty the constructor block). I have yet to found any problems with this modification. It makes me wonder why was the initialization neccessary for the DungeonMesh to create a new StaticMeshComponent in the first place?Last edited by Ratamorph; 01-28-2018, 12:52 AM.
Comment
-
Originally posted by Laurentius View Post
As I said ... the version using Blueprint as their "rooms" is working OK for me - no crashes and fast generation (compared to the level stiching version WAY faster).
And the problem designing those Blueprint can be perfectly solved by using the Prefab addon from the Marketplace. You actually design the Blueprints in the level editor of Unreal - works good.
But the DA side need some bugfixing and a little more features (as I described above).
What's also needed is the ability to suppress some actor types from the Blueprints (if this is possible) and the ability to restrict some "rooms" to occur only once (or a definable amount) - no one want's 2 boss rooms of the same type in one level ;-)
And rooms occurring in an exact order would be nice for gameplay, too.
Thanks for working on it,
Lars
Lars - which Prefab addon are you talking about? Sounds helpful!
I concur with some features that would take Snap dungeon to the next level:
- a way to weight or limit rooms to avoid too many of the same (Lars, how I'm doing it is a Boss room would only be an End room in a level, so you'd only have one, or you build a level chunk that can turn itself into a non-boss room if one had already been spawned
- a way to prevent the same room from attaching multiple times in a row (sometimes I get the same room 3-4 times in a row and want to avoid that)
For my game, those two things and a general stability pass and I think SnapDungeon would be shippable! I wrote my own method of using HISMs with SnapDungeon and it works pretty well, but I guess HISM support would also help
Comment
-
https://www.unrealengine.com/ja/marketplace/prefab-tool
This plugin can be used very well to create and update the Blueprints ....
- 1 like
Comment
-
Just tried to add this to my new project and I get a crash instantly on the editor. The crash is related to some deep engine code with UI updates to the editor. It does not happen on a fresh new project, however we are using "gameAbilities" from the paragaon and fortnite system. Possible conflict there?
Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 610] Array index out of bounds: 3 from an array of size 1
UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
UE4Editor_LevelEditor!SLevelEditor::RefreshEditorModeCommands() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\sleveleditor.cpp:1334]
UE4Editor_LevelEditor!SLevelEditor::RestoreContentArea() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\sleveleditor.cpp:1134]
UE4Editor_LevelEditor!SLevelEditor::Initialize() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\sleveleditor.cpp:176]
UE4Editor_LevelEditor!FLevelEditorModule::SpawnLevelEditor() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\leveleditor.cpp:168]
UE4Editor_LevelEditor!TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (__cdecl FLevelEditorModule::*)(FSpawnTabArgs const & __ptr64) __ptr64>:perator()<FSpawnTabArgs const & __ptr64>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_LevelEditor!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (__cdecl FLevelEditorModule::*)(FSpawnTabArgs const & __ptr64) __ptr64>,FSpawnTabArgs const & __pt() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\templates\tuple.h:497]
UE4Editor_LevelEditor!TBaseRawMethodDelegateInstance<0,FLevelEditorModule,TSharedRef<SDockTab,0> __cdecl(FSpawnTabArgs const & __ptr64)>::Execute() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:556]
UE4Editor_Slate!TBaseDelegate<TSharedRef<SDockTab,0>,FSpawnTabArgs const & __ptr64>::Execute() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!FTabManager::SpawnTab() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1414]
UE4Editor_Slate!FTabManager::RestoreArea_Helper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1273]
UE4Editor_Slate!FTabManager::RestoreSplitterContent() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1388]
UE4Editor_Slate!FTabManager::RestoreArea_Helper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1357]
UE4Editor_Slate!FTabManager::RestoreArea() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1249]
UE4Editor_Slate!FTabManager::RestoreFrom() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:808]
UE4Editor_MainFrame!FMainFrameModule::CreateDefaultMainFrame() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\mainframe\private\mainframemodule.cpp:206]
UE4Editor_UnrealEd!EditorInit() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\unrealed\private\unrealedglobals.cpp:124]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\launch.cpp:150]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll"
Comment
-
Originally posted by Laurentius View Post
As I said ... the version using Blueprint as their "rooms" is working OK for me - no crashes and fast generation (compared to the level stiching version WAY faster).
And the problem designing those Blueprint can be perfectly solved by using the Prefab addon from the Marketplace. You actually design the Blueprints in the level editor of Unreal - works good.
But the DA side need some bugfixing and a little more features (as I described above).
What's also needed is the ability to suppress some actor types from the Blueprints (if this is possible) and the ability to restrict some "rooms" to occur only once (or a definable amount) - no one want's 2 boss rooms of the same type in one level ;-)
And rooms occurring in an exact order would be nice for gameplay, too.
Thanks for working on it,
Lars
Here are some of the Pros and Cons of each one:
Blueprint Based Snap builder
+ Fast generation (in editor)
+ Fast generation (at runtime)
+ Stable (in editor)
+ Stable (at runtime)
- No level streaming
- No lightmapping
- No BSP Brushes
- No foliage (BP doesn't support it)
- No vertex painting (?)
Level map based Snap Builder
- Slow generation (in editor)
+ Fast generation (at runtime)
- Unstable (in editor)
+ Stable (at runtime)
+ Level streaming
+ Lightmapping support
+ Folliage support
+ Vertex painting support
+ BSP Brushes
Going with the level based modules has a lot of advantages, once the stability and build performance issues are sorted out. (especially the level streaming and lightmap support for VR and mobile)
Comment
-
Originally posted by Ratamorph View Post
Sorry for reviving this old response, first of all thank you very much to Konflict for his response, it completely fixed my reported bug.ali, did you found something wrong with this fixes? I'm asking because I plan to use this feature and it's not very usefull in it's broken state. I'd love it if this fix made it into the code so we don't have to keep track of fixes we make and merge every time a new update gets released.
Comment
-
Originally posted by Sean SandersonHi. Just a couple of things. DA crashes on my Mac running High Sierra, but is fine with Sierra. I have reverted to Sierra for the time being. When I use the "generate levels at runtime" code on my iPad project the meshes go a bit random. It seems the iPad can only place assets wth their original pivot points i.e. no applied offsets. I am solving this by making sure my assets have pivot points to make them line up on the debug data preview window without having to use any scaling or offsets. Thank you Ali for your awesome work.
Comment
-
Originally posted by riuthamus View PostJust tried to add this to my new project and I get a crash instantly on the editor. The crash is related to some deep engine code with UI updates to the editor. It does not happen on a fresh new project, however we are using "gameAbilities" from the paragaon and fortnite system. Possible conflict there?
Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 610] Array index out of bounds: 3 from an array of size 1
UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
UE4Editor_LevelEditor!SLevelEditor::RefreshEditorModeCommands() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\sleveleditor.cpp:1334]
UE4Editor_LevelEditor!SLevelEditor::RestoreContentArea() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\sleveleditor.cpp:1134]
UE4Editor_LevelEditor!SLevelEditor::Initialize() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\sleveleditor.cpp:176]
UE4Editor_LevelEditor!FLevelEditorModule::SpawnLevelEditor() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\leveleditor\private\leveleditor.cpp:168]
UE4Editor_LevelEditor!TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (__cdecl FLevelEditorModule::*)(FSpawnTabArgs const & __ptr64) __ptr64>:perator()<FSpawnTabArgs const & __ptr64>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_LevelEditor!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (__cdecl FLevelEditorModule::*)(FSpawnTabArgs const & __ptr64) __ptr64>,FSpawnTabArgs const & __pt() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\templates\tuple.h:497]
UE4Editor_LevelEditor!TBaseRawMethodDelegateInstance<0,FLevelEditorModule,TSharedRef<SDockTab,0> __cdecl(FSpawnTabArgs const & __ptr64)>::Execute() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:556]
UE4Editor_Slate!TBaseDelegate<TSharedRef<SDockTab,0>,FSpawnTabArgs const & __ptr64>::Execute() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!FTabManager::SpawnTab() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1414]
UE4Editor_Slate!FTabManager::RestoreArea_Helper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1273]
UE4Editor_Slate!FTabManager::RestoreSplitterContent() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1388]
UE4Editor_Slate!FTabManager::RestoreArea_Helper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1357]
UE4Editor_Slate!FTabManager::RestoreArea() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:1249]
UE4Editor_Slate!FTabManager::RestoreFrom() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\slate\private\framework\docking\tabmanager.cpp:808]
UE4Editor_MainFrame!FMainFrameModule::CreateDefaultMainFrame() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\mainframe\private\mainframemodule.cpp:206]
UE4Editor_UnrealEd!EditorInit() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\unrealed\private\unrealedglobals.cpp:124]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\launch.cpp:150]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll"
Looks like a layout issue. Could you try restoring your editor's layout and restart the editor? (Window > Reset Layout)
Comment
Comment