2026 Week 35: four keys, twelve moves per context
Progress this week has been focusing on adding more animations, mostly fighting techniques. But as with anything in EXIT, that also means more work on the control system.
Too many moves to choose
Now that we've got the core engine stable, we've been able to focus on what this game was designed for: fun abilities for the main character. This means building out as many interesting moves as possible. But this in itself brings a problem. A problem that we've been gearing up to solve all the while we've been developing the engine.
The issue with having a large number of moves is getting them to integrate with the control system. There's no point having numerous fun actions to trigger if you cannot trigger them when you need.
Of course, this has been solved by various different games over the decades. You have the old-school combo approach of games like streetfighter, mortal combat or tekken. Or the newer combo approach in games like Super smash brothers. One of the best games I've seen in recent years for stacking controlled abilities is Mario Odyssey. But one thing these games all have in common —they depend on very specific physical controllers.
We can't rely on that with a Web Game. We either have a mouse and keyboard, or touch screen, or controller. Each of those devices offers different ways to achieve combos. So we have a choice, we either try and find a system that works well across them all, or we specialise.
General or specific?
To start with we've aimed to be general, we'll specialise in the end if we find that a general solution causes more problems than it solves. This means we've limited ourselves to four keys/buttons that must be used to reach all the different actions. These are extra controls beyond the standard direction controls and what we'd call core controls (use, jump).
We've chosen four so that we can do the following:
- [context] : a button that switches the current player context, currently we have: fight, flight and swim.
The actions reachable by each of these keys depends on the context:
- [hi] : Cycles through the moves that target at a high point relative to the player.
- [md] : Cycles through the moves that target at a mid point relative to the player.
- [lo] : Cycles through the moves that target at a low point relative to the player.
We believe that this gives a balance of not requiring too many keys from the keyboard, or too many buttons filling up the touch screen. But... it also gives us enough flexibility to include approx. 12 additional moves. Moves that can be changed depending on context, and that the player can configure themselves (if/when we get to that part).
Here is an example configuration:
context:fight
hi = various types of high-level kicks and punches, throws. md = various types of mid-level kicks and punches, pushes. lo = various types of low-level kicks and punchs, tackles.
context:flight
hi = various types of jumps. md = various types of forward or backwards moves. lo = various types of skids and ducks.
context:swim
hi = a way to dive forwards move quickly when swimming. md = various underwater attacks. lo = a way to duck backwards quickly when swimming.
The context has the ability to switch automatically, e.g. that happens when swimming. Or, again depending on environment, there is a choice of contexts. Like when on dry ground you can flip between fight or flight. Which means hitting the context key cycles through the available contexts.
This model means we can add a new context and get entirely new moves for that context.
The plan here is to give the player their own context as they get further into the game. This will allow the player to stack their own moves where they like in the hi, md, lo mapping.
Cycling
The way hi, md, and lo are used currently is to cycle and queue the requested actions. We still have to play test to see if this works or gets annoying. But our argument for it is that it kind of mimics what it would take for a human to learn a skill.
In order to develop your own combos —the moves you find you like— you might have to do a pattern of hitting hix3 and then jumping. Or, hitting mdx2 and running. Some moves activate instantly because they are wired into most animations. But others take more of a trigger to fire. You learn this as you play.
On the keyboard we currently have hi mapped to R, md mapped to F and lo mapped to V. This means in fight mode currently I can perform three different kicks by hitting R (mid kick right foot), and then Rx2 (mid kick left foot), Rx3 (spin kick). There will of course be a whole load of testing to work out the best order and mapping, and even just the best moves. We've animated many, but not all come off in the game as we'd hoped.
And finally
So, for now, we'll continue adding moves to the fight and flight contexts. We do have some other context that are in the initial phases, these would be like 'updraft' and 'climbing' which will allow moves to be performed whilst in specific environment modes (like swimming).
The one part we still have to solve just from a design point of view is how best to achieve blocking actions. These would go hand-in-hand with the fight context. But, we probably don't want users having to switch contexts mid-battle just to get blocking options. We could add blocks as the first option on the fight context for each key, meaning to block a hi attack, you hit hi once. But that does mean the easiest action to perform becomes the block, and the other actions get pushed into more repetition on the key press, which might be annoying.
We'll have to playtest and see.
JOIN THE ESCAPE
Get dev updates, behind-the-scenes, info on demo releases, and news on the full game.