Release Notes - Version 2.31.0
Snap Connection Selector Blueprints
Apply this blueprint on your snap connection theme graphs. These blueprints give you access to the two room category it connects to and are great for selecting special doors for certain rooms (like boss / treasure rooms)
This sample has a custom door for boss and treasure rooms (red and yellow doors)
The red and yellow doors have this blueprint attached to it, where we check if either of the two room it connects to has the "Boss" category
Check the sample here:
Procedural Fill SGF sample
Design only the main rooms in your SGF dungeons, and procedurally fill up empty space in between. This is done by creating a room that creates procedural goemetry (using another grid dungeon actor inside the room)
There are only four rooms that are custom designed here, the rest is filled up procedurally
Find the sample here:
Tutorial for setting this up is coming soon
Snap Module Streaming Events
Any actor in a snap module can receive chunk streaming events. These are great for initialization and cleanup, especially for procedural content (see Procedural SGF Fill sample below)
Open up an actor blueprint that you'd like to receive chunk streaming events and implement the interface . Now place this actor in a module to recieve the events. These are great for initialization and cleanup (e.g. building procedural nested dungeons, NPC spawners etc)
Snap Streaming Actor Serialization
Save the state of any actor inside a chunk module when it gets hidden or unloaded. Then automatically restore the state back when it loads back, or becomes visible.
If an actor inside a module implements the DungeonStreamingActorSerialization
interface, then every variable whos SaveGame
flag is set would be saved / restored when the chunk's visibitliy or load state changes
Move actors from Snap module level to Persistent Level
Use the blueprint node DARecreateActorInLevel
to move/recreate actors from snap module level to the persistent level. If you have dynamic actors that are part of a snap module (e.g. a weapon that you can pick up or an NPC), it would disappear when the level streams out. Use this node to recreate the actor in the persistent level
Check the sample DungeonArchitect Content > Samples > DA_Game_DungeonDoom > Map_DungeonDoom
The spawn room contains two artifacts that can be picked up by the player and they get attached to the weapon.
Note that these two artifact blueprints were placed inside the spawn room module and are part of the spawn room level. They will get streamed out when the spawn room chunk unloads (e.g. when you move far away from the spawn room)
Approach and pick them up, and they get attached to your weapon. The red artifact gets directly attached to the weapon component. For the green one, we use a slightly different approach. Before attaching the green artifact, we recreate the green artifact actor in the persistent level and then attach it
When the spawn room streams out, the red artifact will stream out with it and will no longer be visible. However, the green artifact will stay on.
Before attaching the green artifact, we recreated it in the persistent world
SGF Module Selector Blueprints
Hook on to the build process of a SGF dungeon and filter out modules you don't want at a certain location. For example, we have two variations of rooms, one with pillars, and one without. We filter out the pillar version if there's no room below it
These are added in the dungeon actor's properites:
Check out the sample:
Node Coordinate input added to Module Category Selection
You can now use the node coordinates while deciding on the category of rooms to select at a certain node in your ModuleCategorySelection blueprints
For example, use the Z value of the coordinate to give a different look on each floor, or select a differnet room type on the edges of the dungeon
Find the sample here:
SnapMap Module Rotation Constraint
SnapMap Module Database items have a flag to allow / disallow module rotation while stitching them together. Previously this was a global flag in the config that affected every module globally. You get more control, similar to the SGF module database
The boss room is set to not rotate, which the other modules can rotate. You can find the sample here
Find the module database here:
Marker Emitter Blueprint Execution Stage
Marker emitter blueprints run before the pattern matcher, so anything you emit in your blueprint is available to the pattern matcher
Sometimes, you might add new markers from the pattern matcher and would like to have this available in the marker emitter blueprint. Previously this was not possible since the order was fixed, where the blueprint ran first, creating a list of new markers, and then passing them on to the pattern matcher for it to match and modify
Change the execution order of your marker emitter blueprints from the class settings
- Before Pattern Matcher: Execute before the pattern matcher. Markers emitted by this blueprint are available to the pattern matcher. However, the Patter Matcher emitted markers are not available to this blueprint, since they haven't executed yet
- After Pattern Matcher: Executes after the pattern matcher. Markers emitted using the Pattern Matcher are available to this blueprint. However, markers emitted from this blueprint will not be available to the pattern matcher
Bug Fixes / Misc
- Theme Engine crashed in some instances when nested markers were used on larger theme files
- Landscape Modifier class's properties are exposed to blueprint
- Grid Flow Query has a new node to return connected chunk node coords, to allow traversal across the flow graph