If you’re reading this, there probably aren’t very many posts yet. But don’t worry, you can be the first! Either create a new post or just reply to this one to say ‘hi’.
Personally there is a good argument to use 2 methods mentioned in the lecture.
The folders structure is the first method that seems to keep the hierarchy in the world outline clean and collapsible, clean and manageable. With that then we can use the method of using arrays to call the needed actors with in our blueprints or C++ as then it would make us have to make a choice and decisions on all entries in the array and control them.
The follow up to this is that well we would need to make the arrays anyways if we are using tags, or just folders as you would need to start calling get all actors of Class or all actors with tag. This leaves the obvious of the hierarchy is still going to be a mess in the world out liner and start to lose a sense of control.
With the folders and created structured arrays it makes things clean and simplistic, with a dash of deliberate in our choices we would have to make.
You all have a good evening,
For organization purposes I am using folders like Ben. But I think tags are fairly important, because its simple for an AI upon seeing an object to check what tag it has and then respond correctly.
Thanks for taking the time to explain your thoughts Aaron
The folder structure seems the most sense to me for this game. I have used GameObjects in Unity to group similar objects and other things that make sense for the scene in my games. In Unreal, I am probably going to use folders unless I parent many child objects to the parent actor or have many specific things on an actor!
@Brock_Davis has already made most of the points i would be making here.
Having completed the unity course tags for me are something to be recognised in the code and although it can group things its feels that this is a messy way to organise the heirarchy and as said you can forget to add a tag and that causes problems!
The grouping system in the heirarchy i really dont like as its taking away the ability to click individually on items and it seems like its an unfinished feature with not selecting the group when selecting items.
The Layer system again i would use for visiibility as i find myself countless times trying to work with things in the way! However this is not tidying up the heirarchy but world space for me.
I feel that for heirarchy organisation the folder system is much more simple and easier to read at quick glance, In short it does exactly what it says on the tin.
In my jobs, I’m used to work with big projects (not yet unreal engine ones), and having naming and structuring conventions are very important for me.
I prefer using folders as first choice for grouping my actors.
Usually the structure of the content folder and of the word outliner are similar in my projects.
Then, as needed and more specifically for UE4 projects, I can use tags (for objects manipulation) and/or layers (for objets visibility and collisions) and/or grouping (for transversal selections) .
Concerning a more global aproach, I’ve read the EPIC naming and coding conventions, and I’m trying to apply them as soon as possible in my projects.
Folder structure seems to work pretty well and is my preferred method.
In Unity I used the empty actor way of doing it, but I definitely like the folder structure as it’s fewer ways I might mess up by accidentally moving my in game assets around. I do think that empty actors have a place, such as mentioned above spawning buffs, or enemies at locations.
I haven’t found a use for layers yet personally, but the example of stories in a building makes sense.
Tags I can definitely think of good uses for in code (maybe like team 1 vs team 2?)
I really don’t like grouping so far, but perhaps someone else has a good use of it? Perhaps certain items you don’t ever want to handle separate?
I like most people prefer the folder structure. This structure mimics that of most operating systems and therefor is the most tried and tested method to use.
The grouping method seems interesting to me. Should I require a grouping of actors, say a gang of thugs who occupy the same relative area on the map, I could simply group them and move them about. It will also be easier to refer to them.
Tagging has its benefits as well. You can tag an asset that may need to occupy several different categories. Such as a bad guy who is:
- An enemy
- A particular type of enemy
- Possesses a particular class of weapon(s)
As Far as I know, Epic Games are putting much stress on Tags and underlining their flexibility, I think I will surely use them when the time comes(i.e. I will be creating game with much items/spells/enemies) but for the time being I opted for folder hierarchy - most natural to me.
Folders of course, what could be simpler. Easy to see, collapse, and understand what is in them quickly providing you use good names. I see future uses for tags, and layers as well. I can see myself using them both. I do not like the way grouping works, I can see getting frustrated if I want to select a single object and its attached to a group. My two cents.
Having read through all the above comments most people seem to reflect my thoughts that Folders are the option for asset management.
Personally I don’t see Layers, Folders and Tags as 3 different ways of achieving the same result but rather 3 tools which help to achieve order/structure for different areas of development. I wouldn’t pick one over the others but rather use each one for what it is intended:
Folders - This would be best used to keep the world outliner tidy and organised so that I can find items in the world with relative ease
Tags - This would be useful, as others above have suggested, to group things by category so that I may access in code. i.e. by enemy type, power-up type etc
Visibility - I guess this would be used in a similar way as groups, except that it would be for visibility purposes. As Ben said in the video it would be particularly useful in a big level where you might want to work on different sections whilst keep others sections from getting in the way.
Its quite interesting that as you go deeper into the course you see fewer and fewer people in the discussions. I guess it’s just the long tail effect…
Anyway, I kind of agree with what steppan said about folders, layers and tags being different tools for the job.
Personally, I think folders are good for visibility
I also think tags would be very useful (maybe it’s just the way my mind works) but I like the idea of being able to soft group things.
For example, in our current project we have some cube actors as part of the patrol route. I’d love the floating patrol points to be in a nice tidy folder in the world outliner, but I also want the cubes to be part of the action hence tags.
I have worked in a similar problem in the past and I thing that grouping the actors under a parent actor is a good idea as well. I personaly don’t like to assign all the waypoints to a Character on the level because it might happen that you decide to change the route or the character midway through development. At this point it will be handy to have an object “route” which is assigned to the character so you only need to fill in one field.
Having a class route will also allow you to define other aspects of the path, like how fast goes between waypoints, how long it waits on each one, do we want an special animation on this waypoint?. I will rather store all this information in a “route” actor intead of in the pawn.
And it is true that if the layout of the level changes a lot you might need to rework all the routes of that level, but if the changes are small tweaks, it might come handy to be able to move the whole route at once.
Also, if you are working in a medium to big team… We should consider add all the routes and points into a layer, that way artists on the team have a quick and nice way of hide them. Artist usually don’t need all that information on the screen and their main concert is usually how good something looks. Having a ton of gizmos on the screen does not help them to figure this out.
I hope you find this useful.
EDIT: I’ve just reached the composition over inheritance lesson and that approach looks like the one I was propossing but using a component instead of the an actor in the world.
I like what everyone had to say. I think folders are important for keeping everything organized and tidy in the world outliner. It might also be worth tagging objects as we create them if we think we need to find them in the code later. Probably worth it to tag all the target points and keep them in their own folder for now.
I think that I would argue for 2 of the methods that were discussed in the lecture, and that would be by grouping the objects into folders (for sanity reasons) and by using Tags. I would argue for the tags, as Ben had mentioned that they are able to be queried by blueprint and C++, which to me means that you could probably act on these points through code (BP or C++), which to my mind makes it quite a powerful (albeit potentially dangerous) technique. Also, since you are able to tag an object with multiple tags, you are not confined solely to single tag designations.
One other option I might argue for limited use is an actor as a container. By pinning a set of patrol points to a character, you can have other actors patrol around a character as a character is moving around his own patrol route.
That said, with many in the course at this point, I can see the use of all of the techniques discussed in the lecture to be of limited use in certain circumstances. For instance, it the test level you can use layers to hide the walls of the arena to make the level easily visible from all angles when designing it. For obvious reasons storing data within an actor is also useful in some instances (patrol point array).
It seems like the approach is really dependent on what the intention of the grouping method satisfies. So Folders to organize the items by category in the world outliner, like putting all the target points into a folder, then Layers to make finding items or hiding them easier. So any cubes that are also patrol points could be in Layers, but not in the same folder as the Target Points. Tags could do the same thing, mark items that may be in different Outliner organizational hierarchies, but are useful to reference together in methods.
My approach then will be organize the outliner using folders and sometimes empty (like a null) actors if they need to move together. Then Layers and Tags to collect objects in sets that I can grab in the editor (Layers) or functions (Tags).
What I wonder about is what the Group object’s intended purpose is when it was created by the devs. Its like an empty actor, but without the hierarchy. Must have some purpose or is it legacy and other ways have eclipsed its usefulness?
It seems like :
- Layers are useful for designing the level.
- Tag is useful for searching for the objects.
- Folder is useful for grouping in the hierarchy.
- Empty actor might be good for later manipulation in C++ and BP.