I’m working on a Paleo-encyclopedia app. I have a good start and can pull the data I need from a Google Sheet and put it all in an array. I’m getting to the part where I want to implement search and filter functions. On the forefront of this is Cladistics, or the dino’s “family tree.” I want Unreal to read the name of the dino or any of it’s groups, and know what larger group they are in and what smaller groups they contain.
As a very simplified example I made a bird tree (Figure 1). I have an array with a list of birds, and I want Unreal to know that when I apply the “Shorebird” filter, it gives me the Crane and Sandpiper. Since everything thats a Heron is also a Shorebird, it would include all Herons in that search as well.
What would be the best way of categorizing/storing this information? Keep in mind, the crux of this project relies on the Google Sheet for easy collaboration and minimal app updates. I want there to be minimal blueprint tampering, so if someone adds a new group or subgroup In the sheet, want it to be reflected in the app. I saw someone mention Data Trees and Pointers, and it sounds like exactly what I need, but I have no clue how to impliment them or if they can be generated at runtime. I have a second image (Figure 2) summarizing what kind of logic I think would work. Getting a new entry, seeing what groups it belongs to, and making any new groups/pointers it needs. I mostly use and prefer blueprints, but am willing to learn some C++ if needed.
EDIT:
Did some workshopping and I found a plan B. Working Backwards instead of forwards, I can assign a value for each new group, and if I find a group inside that group, I can start a new count for that branch inside parenthesis. (Figure3) Its like creating a new array manually!
I would just have to figure out how to inject the new string info at the right spot. What do you think, and I overcomplicating things?
Sure you could build a tree structure out of data. Each node could have child nodes.
The problem with data assets or even structs is that they have a set structure that lacks the tools to manipulate their internals at runtime. Sure you can set values for keys but you can’t really add or remove them at runtime.
In the case of totally dynamic data you could probably pass in json strings that could be interpreted and broken down into data.
Main question is why did you chose Unreal for this specific task? Will you have 3d models representing the data for visualization purposes or is it just a dynamic filtered tree?
If so then many other more flexible programming languages would suit this task better being more lightweight at the same time.
I totally agree, for something as simple as collecting and parsing a CSV something like Flutter would do me much better. Im using Unreal because frankly, Blueprints is all I’m able to code with I have issues with reading and writing, so written spricts are a nightmare. I know Godot has a visual code plugin though, so I’ve been looking into that. But some of the more specific functions like pulling a Google Sheet and other similar functions would require writing out scripts. Meanwhile UE has a Blueprints plugin just for that.
As for future use though, I do have ideas for things like AR model viewing, and 3D interactive Clade Trees. Just ideas though, but somethine like that would definetly be harder to code in something like Flutter, so I’m gonna try to stick with either Unreal or Godot.
The keyword JSON keeps popping up in my searches and other people’s responses, so I’ll look into that and see what I can do with it. Thanks for the pointer :3
Ok so I got the VARest plugin and learned how to use JSON and did a bunch of cool node work and now I have a dynamicly updating cladistics tree for literally the entirety of life on earth which is pretty rad.
I’ll keep it restricted to Dinosaurs for now though but hypothetically you can put literally every animal that ever lived in here and it will sort them by clade automagically this is some pretty powerful stuff
Thank you king/queen for pushing me to learn something new