Coming from Godot, how do I create something like a room?

So Godot Engine is very heavy on the nodes which always felt nice for me - all scenes could be used like prefabs, so basically everything was a scene. The components, levels, meshes - anything you can think of, just make a scene and import whenever you need it.

Coming to Unreal it was a hard learning experience if I had to be honest. I was hoping I could use blueprints in a similar fashion to nodes, but unfortunately that doesn’t seem to be the case. There is a composition pattern with the components, yes, but anything else has been really confusing for me.

Let’s just say I want to have a CCTV system and six different rooms that I can watch, and in these rooms things can happen, similarly to I’m On Observation Duty games. To define what exactly I mean by a room - every room is expected to contain meshes (like walls, floor, furniture), lights, a single camera and some kind of a script that would handle manipulations of certain meshes, like disappearances, appearances or movement. Now I figured everything out including the script except for one thing - what should the room itself be?

Each room I made was a Level and imported to the GameplayScene. Again, coming from Godot it felt natural and making the rooms themselves with prepared assets was quick and easy, but I quickly realized I’m probably doing something wrong.

First of all it seems it is impossible for me to access the children of these instanced levels so I cannot access the blueprint handling the logic inside of them. So I figured - why not make the rooms themselves a blueprint? But then adding the meshes inside the blueprint editor was a nightmare, any time I add something it becomes the child of the last thing and always defaults to 0, 0, 0, so I knew this just couldn’t be the way cause it felt so backwards.

I guess my question is - how do I approach such a thing in Unreal? How do I make 6 differents rooms with these commonalities but with a completely different layout?

1 Like

You’re definitely on the right track with level instances, but you won’t be able to communicate between level blueprints ( easily at all ).

The Game Instance might be a much better route. It can be seen by all levels, and they can pass info back and forth. With an interface, if you want modularity.

Rather than making a mass ‘wiring nightmare’, it might be good to put a ‘manager’ BP in each room that you can talk to. That way, you can get a level working on its own, and it will be very similar for an instance, later.

Maybe if you can give a specific example, I will show you how?

Coming from Godot, it may help to just drag sample meshes into a level and assemble rooms first that way. Then you can convert those into their own Blueprints automatically after (menu option)… Following on from that, drag the resulting BP’s back into the level or spawn them. This will let the rooms inter-communicate. But you can also just use get-all-actors too, once all level-instances are loaded. :wink:

Outside of that, it’d be good to boost Godot knowledge here (building VR game in Godot atm). So was going to suggest DM’ing for future Godot-To-Unreal tips. But it doesn’t seem like there’s any point now, as Unreal may have already killed off this Godot dev already. :stuck_out_tongue_winking_eye: