hi folks got a more involved question regarding efficiency dealing with a lot of objects. i have a fairly unorthodox music sequencer application/toy i’m planning to make and it’s using a lot of objects.
imagine a large cube made up of a large array of 16x16x16 invisible box meshes with a consistent and scalable spacing between them. this cube is organized into 16 layers, each with 16 rows of 16 objects. i want to keep the objects organized by row, then the layer and then the cube ideally. think of each layer as a 16 x 16 step sequencer where each row represents a note that can be played, arranged from the bottom lowest note to the highest top note, and with time progressing left to right and repeating. each layer gets 16 playhead objects as well - one for each row, reading the state of an active cell. the cells are spheres arranged in a similar cube of 16 x 16 x 16 but the cube can be rotated within the boxes.
so i’m coming from Unity where i can nest GameObjects to accomplish my goal and everything’s organized and the names can be similar. but GameObjects aren’t Actors in the same way. after wondering about efficiency and researching here, it seems like in general, each Actor gets a draw call, which means putting components under a Layer Actor is probably the best way to go.
i’ve been disappointed to find that UE naming of components and Actors, as well as sorting of components in the object editor, is not helpful. i can make a parent row and then create the 16 objects under it but the naming order changes as i duplicate child components. the naming order isn’t incredibly important but the transform child order has to be absolute. that or i have to sort each of the components under a Layer Actor at runtime in order to put them in my desired order. also, if i copy a row object and its 16 children and paste that, then the children all get unique numbers higher, which forces me to use modulo a lot to keep the counts to 16 per row. so i’m having to do a lot of marshalling work that Unity doesn’t force me into.
alternatively i could generate a grid of 256 component objects (flat object lists is what UE seems to like) and then do even more runtime marshalling work putting them into rows and making sure their X and Y (height) transforms progress in rows 16 objects long and spaced correctly.
anyway, am i right in my assumptions here? if anyone’s ever had to deal with lots of objects in a scene i would love some advice, even if it’s ‘that’s just the way UE is - deal with it’. i am fast discovering that UE is not really a great engine for doing unorthodox app design concepts. if you want to make a game that fits into a standard model it’s fine, but go outside that box and it’s not as easy.