So I’m working on making an ARPG. Initially planning for singleplayer then later try my hand at multiplayer. I started building out the system to rank up attributes, skills and the like and I was originally doing it through a “Character Sheet” component that tracked all these things. Originally my plan was to use this component as part of all the enemies that would be in the game etc when my friend mentioned data assets to me and I started tinkering with them.
The basic idea I got from him was that it was a great boost for efficiency because all variables, etc could be accessed from a single point rather than be individually tracked by the instance. Sounded great to me but after tinkering with it I found that if you make any changes to a character’s stats (Leveling up, etc) it makes the changes directly onto the Data Asset which makes me think it might not be a good idea for a player character or anything needs the ability to change at run time. Maybe you guys can clear this up for me?
Can you even create new data assets dynamically? (New character etc for a new game and all.)
How would you save changes to a data asset dynamically? As I mentioned before this changes the Data Asset itself. In engine it will permanently store the changes I made at run time. It even gives me the asterisk saying there are unsaved changes. If I don’t save it I can close the engine and the asset returns to its last saved state, if I do save it then every change I made to it in testing is permanent.
Is it even a good idea to use Data Assets for anything that would have variables changing on run time? Most of the examples I see for data assets involve enemies and items. Things that will pretty much be set in stone at run time other than tracking things on the blueprint side like current health, ammo, etc. From what I’ve seen I’m leaning to this being the case.
Thank you guys in advance for taking the time to look at this. I appreciate any input. <3