Bottlenecks in combat magic systems

(distillation)

If my goal is to create an entire world with a compelling magic system that seems like alternate physics, we should look at what bottlenecks building such a thing has.

To find the bottlenecks, we should look at what the gameplay loop of the player will be.

Dark Souls Level Generator

If it's a combat magic system, I'll start with assuming that we want Dark Souls/Elden Ring style combat. We'll need artwork for enemies. If we have a skeleton of the creature, we can use muscle simulation to give realistic movements. "text to 2D image" is quite good, but "text to 3D model" is still in the really early stages. Ideally the workflow is "describe your unit in words" and a rigged 3D model with muscles is generated (including weapons, projectiles, and spells), then it has lots of movements simulated and the artist can select a subset of the movements for attack and movement animations, and they'll automatically blend smoothly. "Text to 3D model" could also be used for environments, ideally a few exploration paths (including placement of key items and ordering of enemies to ensure good tutorialing) should be procedurally constructed ahead of time and then the 3D models and units could be generated to conform to that.

Basically that describes a workflow that should be able to generate a procedural dark souls level, given names and descriptions of units, and a rough description of what the environment looks like. The workflow may also take 2D sketches and try to match the artstyle.

There's some research that still needs to be done to get there, but it seems plausible to me that we'll be able to make tools to create the above in the next 4-5 years, and there are quite a few people working on all the relevant pieces. So I'm okay with waiting this one out a bit.

Easy follow ups/tidying loose ends

In the above I neglected some particular things (knockback, grapple, poise), but these are mechanics that can be manually created easily. This is also true for status effects (bleed, poison, frostbite, etc.), there usually aren't that many interesting variants so it's okay to manually create them.

It's also important that enemies telegraph what they're going to do so you can learn to read it and react properly. That's something that could be automatically selected for in the above process (require animations that have some windup time, attach some secondary animation in the front and blend them, etc.), so I also don't think it's that big of an issue.

The content creation of enemies and their attacks also works for the player, giving a wide variety of forms the player can take and weapons and spells they can use. 

Remaining Open Questions

Story

Even in Dark Souls, there's story behind every item, and every mob has a chance of dropping their armor and weapons to give a little bit more story. We could generate the text prompts with a language model, but making more cohesive story generation is still tricky. Text retrieval can be used to "increase" the prompt size, since you can have a large amount of text data and only include the relevant pieces in the prompt.

Still, there's work that needs to be done to make this scale to large story sizes and consistent story at the scale of, say, Elden Ring, but there are many people working on this so I'm also okay with waiting it out. Also, bigger models tend to work better at most tasks, so waiting for bigger models to be accessible may be a better strategy than trying to spend time prompt tuning the smaller ones. Ideally the workflow should be this collaborative thing where the writer does things at their preferred level of detail and the AI fills in the remaining needed details. Then the writer can go back and edit text prompts and 2D "style" images as desired until it matches their vision.

PvE Pacing

In a player versus environment setting (PvE), balance isn't very important. All that is needed is that the player can't keep using the same strategy everywhere.. As long as they need to work to find the new broken strategy against opponent X, it's okay that broken strategies exist. Ideally there should be a fairly consistent strategy of "learn the moves and dodge, then attack during the open spots" that should always work. This is a good failsafe because it requires relearning the timings for each new enemy. It's useful for the player to be able to also calibrate their difficulty by leveling up to make things easier (or not leveling up to make things harder). While automatically increasing opponent strength and health depending on player level can make the world feel flat, pre-assigning power ranges to various areas and some careful high level map layout is a pretty nice solution.

I'd go further and argue that when it comes to PvE, "balance" is all about making sure that the player needs to keep coming up with new strategies (or better mastering existing strategies), while making sure the difficulty curve doesn't spike too quickly.

Open-endedness literature is probably the most relevant research, but usually it focuses on simple things like maze generation or platformer generation because it's easily interpretable. I'd be interested in seeing these techniques scaled up to PvE settings, but I think that'll take some further effort to do. This will eventually be a bottleneck for the above technology to be used well, so it's a underexplored direction that's worth pursuing. However it's also difficult to pursue because to study at scale it requires level generation technology that doesn't exist yet, or spending a lot of time manually creating data. 

PvP Balance

In PvP settings, balance starts mattering a lot more. Honestly I don't have a good idea of what this looks like, so I need to do more research. Which parts matter probably depends a lot on player skill level: very high level play probably converges to a few strategies whereas lower level play can get by without using the best strategies. In card games and RTS, balance is also quite tricky. Yet, I think balance is also what limits adding more "hard magic system"-like content.

More specifically, I think that programming or math-like structures (compose pieces in various ways to make new effects) is a good path to making a really good hard magic system in card games, RTSs, and real time combat. Yet once you allow custom math-like spells, you are dealing with a very very large amount of possible things each player can do. Balancing all of those things becomes quickly overwhelming. I think that this is a solvable problem, but it requires AI help. Here's an example of related work on designing novel chess variants. I'd like to spend effort on this bottleneck, it seems underexplored and I can work on it with today's technology without having to spend too much time on data generation.

Why Combat? Why not something else?

I kept this post about combat to reduce scope. World building involves many other gameplay loops, in particular I'm quite interested in exploring engineering-style gameplay loops. I have more detailed thoughts on that, but that's for another post.

Comments

Popular posts from this blog

Introduction