Hi there, I have 20 years of AAA game dev experience, but I’m relatively new to UE4, even though I’ve been tinkering with it here and there for the past year or so on personal projects and tutorials. I’ve implemented full Steam Workshop solutions for several non-UE4 games now, so I know exactly how to design and put things together.
One key thing I’ve learned about modding, is that you really need to expose things outside of the engine and pipelines as much as possible. So this couples very tightly with data-driven design as well. That’s why it’s in the modding forums
So list of key things that I want to be able to solve with UE4:
- Steam API integration
- Modding textures
- Modding balance
- Defining new units / models / behaviors
- Localization in a centralized manner
- Without UE4 editor requirement
- Without developer having to integrate each mod – like Ark appears to be doing. This is what I call a curated approach.
I realize Epic is working on moddable solutions, though I haven’t really seen anything official yet outside of saying it’s going to happen. I’ve done a lot of Blueprint tutorials, and while it is an amazing system, having magic numbers inside Blueprints is a very bad practice, or even exposing blueprint variables to the editor… works great for level design, but not so great for defining gameplay elements. For me, it’s important to have a centralized place to balance or tweak behaviors and I’d like to do as much of it outside of blueprints as possible. Obviously there are many way to section off data in a text file (csv, json, txt, etc), and use a construction script to parse and populate the values into the actual Blueprint. This is the part I’m struggling with right now – figuring out the best way to tackle this. I would ultimately like to use json data that could actually define a unit – models, textures, behaviors, locomotion, and balance values in a fairly generic way, so a json file could define an entire character and then they could be spawned in the world. I’m going for utterly procedurally generated content here without any formal level design at all. I found a plugin called VaRestthat looks to do what I want with the json support. I also know UE4 comes with some Excel support, but spreadsheets aren’t great for complex data structures.
Would likely have blueprints for each “module” – examples such as LocomotorVehicle, AnimationBehavior, InventoryComponent, LocomotorBipedal, TreeToppleBehavior, HealthComponent, ExplodeDeathBehavior, WanderAI, and so forth. Essentially creating a ton of lego pieces that could be bundled together by a json file with attribute values.
Then the game would run a construction script that would parse all the json files and create a manifest of game objects that can be procedurally placed in the world or by the editor. I’ve done a bunch of games using this technique before, and can see this should be doable in UE4 – but just wondering how people are approaching this in general, especially with modding in mind.
One thing that concerns me is the way everything (textures, models, animations, blueprints) have to be imported into the editor before they can be used… so I question how it’ll be possible for modders to truly change things without the developer having to directly integrated everything in a curated approach. Most mods from my experience would really be text, textures, and sound files, and it would be ideally possible to do this without having to use the editor. On the more ambitious side, a modder should be able to make a standalone model with animations that the game could import dynamically with all the modules defined by a json file. Then the approach to the game would be developing a large library of exposed module types.
I’ve seen some wickedly impressive stuff out of the community, and while I ramp up gradually time permitting, I would like to know how other people are approaching these types of problems. Will eagerly follow this thread. Thanks!