• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Unto The End - Cinematic combat platformer

Mr_D_

Banned
Unto The End

ElzoMSp.gif


Trailer:

https://youtu.be/nCoieXP4dig

Unto The End is a 2D cinematic combat platformer. It will be coming to Steam, Xbox and PS4.

Unto The End is about a father who lost everything and his journey of vengeance through unknown lands. Lands inspired by our time in Iceland, Northern Scotland and Patagonia. In addition to our travels, Unto draws inspiration from Limbo, INSIDE, Another World, Flashback, Mark of the Ninja, and Punch-Out!!

mwaLx6A.jpg


1CTifAd.jpg


zW8LvOV.jpg
 

pcostabel

Gold Member
Very cool. I can clearly see the inspiration from Another World/Flashback. I normally don't like 2D platformers but this seems more action-adventure oriented. What have the devs done before this?
 

Mr_D_

Banned
Hi guys, how's it going? I work with the publisher, and I'm crossposting Stephen's development updates from tigsource to share with you.

From Stephen, Unto the End developer:
Woad, also know as Asp of Jerusalem or Isatis tinctoria, is a yellow flowering plant in the cabbage family. Native to parts of Asia as well as Europe, the leaves of the plant were a key source of indigo dye during medieval times, but their use goes back to Neolithic times.

The first time I saw woad was in Braveheart, brilliantly used to adorn the faces of Scottish warriors. Interestingly Braveheart and his clansmen probably didn’t wear woad, as it was a trend that predated the Scotsman’s actions. More recently I’ve seen woad used in Hellblade as a mask / makeup for its main character Senua.

I came across woad as an agent of opposition in Paul Freeman’s Tribesman’s series. Freeman details a group of warriors covered and emboldened by woad. I liked this idea of a group of creatures empowered by a natural element like the dye from a plant’s leaves. (Sara and I are very keen to build Unto without the crutch of magic, no fireballs or lighting attacks. Any "magic" is rooted in natural elements. Fireballs are realized through a sort of molotov cocktail container, lighting through a static electricity rod, and so on.)

It was Freeman’s description of the Woad, mixed with its historical use that inspire Unto’s Woad.

Our first cut at the Woad was okay for the game’s concept, but ultimately feel short in a number of regards.

D9p2GfD.png


After the prototype phase we came up with a set of criteria for a well designed Unto creature. (We call them Actors, but I’ll circle back to that in a later post.)

1, Must be visually distinct from the hero in shape and form
2, Must be able accommodate a believable societal structure, religious beliefs, historical context, etc.
3, Must not be obviously evil or dumb.
4, Must be realised enough that an expansion could be built around them as the main character.

(4) is really the main one. The way any Actor moves and feels must be interesting enough that we can quickly come up with a number of different adventures that they could go on, controlled by the player across 3-6 hours of gameplay.

And how they move needs to be distinct from the father. A bit of context. The father is a farmer that knows how to fight, he’s not a soldier, chosen-one, or demi-god. His movement is heavy and a bit laboured. Take your average dad, fit but not a super athlete and imagine them on this journey of revenge. That's the father.

The woad shouldn't feel anything like the father. The Woad should agile and athletic, animalistic but intelligent, approachable but fearsome.

We started by iterating on the prototype-Woad, although we liked the adornments (and we'll probably use this in some form going forward), the fundamental form of the Woad was wrong. Too obvious, poorly proportioned, etc -- neither of us saw him as a main character capable of carrying a game.

5izQ2ui.png


So we started into sketches and mockups, both on paper and in Illustrator and 3d.

oyLrtVX.png


At first we really liked what we called the "Simian" woad, going so far as to do a quick 3d mockup. But, we quickly realised that the simian violated criteria (3) and would be a stretch for (4).

QUorqIe.png


We ended up blending what we called the “Warrior” concept with the “Simian” concept. The warrior felt too upright, too human, while the simian felt too animalistic and simple, but together they struck a good balance.

5Iq8n1s.png


This eventually evolved to include tweaked proportions (seen in gif below) and a more sophisticated skirt / kilt, inspired by samurai clothing.

Df3FPJS.png


The other big thing had to improve was their movement. The way the Woad moved in the concept was limited, they could run, dodge (using a roll) and jump. But they couldn’t climb, ran more or less like the father and overall lacked the athletic personality we wanted for the Woad -- a Woad shouldn't roll, they should leap and bound athletically.

jE68WZc.gif


So we redesigned and rebuilt all of their animations. This and the in-game gif below are me controlling the Woad, using them in the same test terrain as the hero. The Woad lands with ease (while the hero will stumble from a long fall) climbs a cliff in one motion (while the hero labours to hold on and then pull himself over the ledge). We realised that actor movement couldn’t live in isolation, it needed to be relative to the father. The player spends the whole game with the father, everything they meet will be assessed relative to the father and so everything needs to be designed in a way that reads in relation to what the player knows about the father.

ovQZ1Dd.gif
 

jufonuk

not tag worthy
Damn

That looks great , alas I don’t have a PS4/xbone or pc.

If this ever comes into the switch I will purchase
 

Narasaki

Member
artstyle and atmosphere looks so boring compared to Limbo/Inside/Another World tho

music is doing nothing for me either
 

Mr_D_

Banned
artstyle and atmosphere looks so boring compared to Limbo/Inside/Another World tho

music is doing nothing for me either

It's worth calling out that everything you're seeing in these gifs is really early pre-production stuff. Right now we're focused on animation, level design, flow and 'feel'. From there, we will work on art :)
 

Mr_D_

Banned
Hi guys, here's a bit of detail on the development process so far.

HIT REACTION RAMP

SNWjHHd.png


Worked on HitReactions for most of the day. Squeezed a run into Berkeley Bowl as well, the most amazing produce section I’ve ever seen -- we are so insanely fortunate here in North America.

Side note: just learned that Chrome supports Canadian English, no more Color for me, nothing but “u”s from here on out!

Sorry. Hit reactions. Yes they help sell a hit, but for us they also convey the hero’s current health -- along with idle posture, rate of breath, blood, wounds and controller rumble. Four hits and he’s dead. We’ve seen that after a hit the player is most ready to “read” the hero’s state, rather than say during idle. That’s the theory at least. The three levels of “Recovery” are shown below.

Another side note: we break hit reactions down into Flinch → Knock → Recovery and add variants at each stage. Knock, as in knock -back/down/up is looped, so we can have hits with greater power knock an opponent back farther.

d8zwVzx.gif

Level 0 - Very quick, just 17 frames.

rC5E1Hr.gif

Level 1 - Laboured recovery, but still in the fight

c2lhpJi.gif

Level 2 - Death's door. Recovery is heavily emphasised, with an Idle that shows exhaustion.

v73LNrJ.gif

Here they are as a sequence.

A lot of this is inspired by the final duel in Rob Roy.

https://youtu.be/27M5KWI_q50

From the simulation side of things I make liberal use of hitstop / slo-mo. We tried camera shake but it caused a bit of motion sickness. Perhaps the non-arcade’y feel of gameplay just doesn’t marry well with sudden movement of the camera, will have to fiddle with it more.

Right now I slow down to 10% game speed for 11 frames  --  I’m sure we’ll tweak this over time. I do this by starting a coroutine  --  allows me to set and forget about it.

public IEnumerator doHitStop (int frameHold, float scale)
{
for (int i = 0; i < frameHold; i++)
{
if (i == frameHold - 1)
{
Time.timeScale = 1;
}
else
{
Time.timeScale = scale;
}
yield return null;
}
}

I recently read that you should stop a coroutine before you start it, just in case it’s running.

StopCoroutine("doHitStop");
StartCoroutine(doHitStop (11, 0.1f));
 

Mr_D_

Banned
More development screens.

g4rCfPf.png


The area below is heavily inspired by Northern Scotland, and a trek we did near the Old Man of Storr. We found this old sheep path that zig-zagged up a steep hill. If you've ever been to that part of Scotland you know that the ground is almost like walking on a buckwheat pillow -- all loose and soft, while hard at the same time. To make things more interesting it was insanely windy, a few times we both got knocked off our feet for a wee tumble down the hill. Eventually we made it near the top and after a bit of light bouldering, made it to this plateau. We later learned that plateau was used by shepherds to hide sheep from raiders. If we can capture anything like that in Unto, I'll be very happy.

01SupPq.png


We visited Iceland in the winter, and stayed in a hotel. But we rented a 4 wheeler and had an amazing time just driving around. Iceland, is a fantastic place to get lost in and we'd spend entire days just driving and taking roads that seemed interesting, getting out every once in a while to hike around the landscape to take in as much of it as possible.

pW51Is2.png
 

Mr_D_

Banned
Hi again, more devnotes from Stephen on Unto the End

GAME DESIGN - ACCESSIBILITY AND EXCLUSIVITY

Catching up on some old news and I came across John Walker’s Boss Skip post and Ben Kuchera’s Polygon article. I spent much of the day thinking about the issues raised around accessibility and exclusivity. It’s a terrible gnarly conversation. One that is as much about the general medium of games and the personalities around it than a set of simple features or ideas. FWIW, the comments on both the RPS and Polygon articles are as good if not better than the original articles and well worth a read.

Those comments cover much of how I feel about the discussion, but I wouldn’t be much of a game designer if I didn’t think about it relative to what Sara and I are trying to do with Unto and games in general.

In general, while I agree with John's intent (make games more accessible), I disagree with his suggested approach. A boss skip button is lazy design. A hack that works to reduce games to mindless entertainment. Doing accessibility right, means designing it into gameplay with thoughtful mechanics and experiences which allow for a greater range of interactive expression -- and ultimately a wider audience. It's not just slapping on some features in a hopes of getting a few more people through your game.

In terms of Unto. Unto is a game about “combat encounters”, but one where you don’t have to necessarily kill things in order to overcome those encounters&#8202;—&#8202;if that makes any sense. Although we’re spending all this energy on designing and building what we think will be a deep and rich combat system, we’re also spending lots of energy enabling an experience where sneaking, hiding, humbling, surrender, fleeing, befriending, etc, are all viable options.

We’re doing this because we want to say something about combat, killing and revenge within games. We want players to have a choice as to how they role-play revenge. We want death to matter and the lives you interact with in the game to be seen as valuable, just like your hero’s life and that of his family. Enemies will not stand around waiting for you to fight them. The game is not set up as one big combat gauntlet that you have to overcome. Instead, we see it as a home that you’re invading "room by room". How you handle meeting the home’s inhabitants and their reaction is up to you.

Is this accessibility? I guess at some level. But Sara and I see it as designing a game that we would want to play. Of course we want as many people to enjoy Unto as possible, but we also need to make something that has deep meaning for us, as artists and designers. For instance, we’re not doing much for the type of people that like stat based RPGs, puzzle games, match three experiences, point-and-click adventures, word games, boss rushes games, FPSes, or the dozens of other game genres out there. Perhaps that means Unto is too exclusive and inaccessible?

I'll leave it at that, and suck in and for a bit, as my mum would say Smiley.

I also spent a good amount of time working on rounding out our hit reactions and terrain experiences. Sara and I want terrain to be the third factor of any encounter: the hero, the opponent(s), the terrain.

So ledges are something you can climb and fall off. Similarly walls are something you can jump off, jump up and smash into. When fighting you can use these to your advantage or be boxed in by them. As we flesh this out I’ll post more examples, but here are a few I liked.

Off to go pick up a table for our kitchen.

Bbfkgo3.gif


Wall jump to cleave can be used to catch a chasing opponent off guard.

gY2ptCA.gif


Getting knocked off a cliff, deals damage, plus a bonus relative to the fall height.

jGPS0ht.gif


Getting smashed into a wall stuns the hero/opponent making time for a counter.
 

Nikodemos

Member
Nice way of actively integrating the terrain into combat. Definitely helps improve the fighting away from static hack/parry/dodge.
 

Mr_D_

Banned
Quoted from Stephen:

vB1jEEf.gif


Our goal is no loading screens -- one seamless world, ala INSIDE.

I took a shortcut and bought a Unity Asset Scene Loader Additive. Had to convert it to work with 2d colliders, but otherwise it's been great and most importantly fast.

I spent the rest of the day optimizing the code. Removing the inspector sugar (which allowed you to define "scenes to be loaded" for each load trigger) and heavy use of lists with a single dictionary which I define up front.

But yea, all done with that side of things. Very happy.

The remaining big rock will be virtualizing NPCs (need to be smart about how we load them and can't have them falling through the world when their scene is unloaded), but I’m going to tackle that later.

PATHFINDING + SCENE VIRTUALIZATION

Pathfinding is coming along well. We're generating the waypoint graph, maintain it across virtualization of scenes, and using Sebastian Lague’s approach to A* I can find a path from A to B.

ZHcafSc.gif


I managed to get around virtualization by using a global dictionary that is updated whenever a scene is loaded/unloaded by virtualization. The connections between pathways are defined at design time and then “managed” on demand. Connections define a "traversal" type (climb, run, jump, etc) which determines the cost of using a connection.

Next task is to getting an animated NPC moving from one location to another via the path. Assuming that goes well, I’ll work on optimizing things so multiple NCPs can request paths and move towards them at the same time.

Some other scenarios I need to consider:

- Leaders and following said leader, as a group of Woad might do when hunting, rather than each of them finding their own path.
- Need to consider dynamic obstacles e.g. a large troll blocking a path should be avoided when possible. This would be true for a trap or similarly dangerous obstacle.
- Dynamic costing of navigation types (jump, climb, etc) to allow for different traversal means. We’ll want NPCs to sneak up on the the player, hunt animals, etc.
 

Mr_D_

Banned
More from UTE

CORDIAL BEHAVIOUR

Got our Woad (Woads sounds wrong from some reason) pathfinding from A to B, and although just roughed in, being respectful enough of their kinsman to step aside (by joining a waiting queue) and then letting the next Woad go by so they can all get to their destination Smiley.

rWN2YwX.gif
 

Mr_D_

Banned
PATHFINDING, VIRTUALIZATION & ROUTINES

Our goal for is to give actors the ability to go wherever the player goes. We don't want to box in fights with magical walls or constrain an encounter to a set boundary. Fleeing from a battle should be a viable way to survive. Encounters should range across the landscape, unfolding in unpredictable ways because of the terrain. Like a great action movie, if the hero gets away from a conflict by climbing a ledge and then dropping down into a cave, the actor in pursuit should follow with energy and vigor. It still early days, but here’s how we've tackled it.

9VFoIn8.gif


Basic Pathing

I used an approach inspired by Sebastian Lague’s excellent A* tutorials. The only real difference is that I give obstacles (cliffs, ramps, jumps, etc) specific costs and use those to weight the different paths from A to B so we can pick the best or worst one -- depending on the situation.

PdaY2XW.gif


Actor-to-Actor collisions

When pathing as a group two or more actors can get in each other’s way. A simple solution would be to allow actors of the same race e.g. Woad, to simply pass through each other - no collision. And although that would work, it breaks a rule of Unto’s feel: everything has physicality.

(This translates to combat with an actor -- you can’t just run by them. But also when you miss and hit the ground, rock or log, run into a wall, or fall from a cliff. Swing and hit a log and the log will crumble (or if large enough your sword will get stuck), sprint into a brick wall and you’ll knock yourself out, etc.)

So we decided to have acgtors “step aside” (there’s no animation for this yet, it’s just a layer shift for now).

That means when two actors meet the first one to realise the collision steps aside and waits until the other has passed. However, if one of the actors is of a higher rank, then the lower rank actor will give way regardless of which actors realised the collision first. A nice side effect of this is that it allows for scenarios such as having a leader march through a crowd to engage the hero.

caPeEDE.gif


Virtualization

We virtualize the world by breaking it down into “rooms”. Each room is contained within a Unity Scene and these Scenes are loaded additively as needed. A simple 2D box collider acts as the load trigger. When we no longer need a room it is unloaded.

We started with ‘Additive Scene Manager’ from the Asset Store, and have since heavily modified it to (1) work with 2D and (2) be more performant.

One of the hurdles we had to clear was ensuring actors can start in one room but move between rooms across virtualization. There were two challenges here:

1, If we load actors with a room, as in they are contained within a specific room, then they will get loaded/unloaded with the room. That means that if the hero encounters an actor in Room4, then runs to Room1 which causes Room4 to be unloaded, then the actor from Room4 may disappear right in the middle of an encounter. Not good.

2, To address (1) we can simple decouple Actors from Rooms -- storing Actors in a Scene that doesn’t get unloaded with the room. As I understand it INSIDE had a separate “Actor Scene” for each room which they managed independently. I considered this, but it felt easier to simply have a global pool of actors and then have them “register” with a new room (and unregister from their former room) as soon as they enter it. (My one worry here is first startup cost of this approach, we'll have to see.)

Here’s how this nets out:
- At design time actors are given a “home room”
- OnStart they register with their home room, then deactivate themselves
- When loaded by virtualization we check for any actors registered to the loading room and activate them.
- As actors move from room to room we register / unregister them with respect to their new / old room.
- When a room is unloaded we deactivate any actors registered with the room. We do this by calling a deactivate function on the actor so they correctly handle "pausing" their current action -- we don’t want a fleeing actor to get stuck halfway to their flee location when their room is unloaded, so we have special code to handle those cases.

vB1jEEf.gif


Routines

Actors operate under a set of routines. These can be well defined things like a patrol route or something more organic, like “hunt deer” or “follow hero”.

I’m just getting started on these but routines allow actors to behave in all sorts of interesting ways aside from simply standing around waiting for the hero to fight them. Here's how they work.

- Routines have a set of Roles (which can be filled by any eligible actor)
- Each Role has a Routine definition
- Routines allows us to specify different movement or behavior patterns.

Down the road I’ll try to post a more detailed description of routines based on where we land.

Below the Woad is running a Follow Routine. As the father moves the Woad is periodically (every 200ms) recalcing the best path to follow him on. If the father sprints the Woad sprints, if the father sneaks the Woad sneaks. If the Woad was hostile to the father then he’d attack him when close. And so on.

(I still need to do things like speed matching, currently the Woad move faster than the father as they’re more athletic and I want fleeing from a fight with them to be difficult.)

EqWbXOe.gif
 

Mr_D_

Banned
Updating the thread
ANIMATOR ORGANIZATION - ANY STATE TRIGGER PATTERN

Just read Will Armstrong’s excellent post about Animator organization http://response.unity3d.com/animator-controllers. If you've ever worked on Unity game that is heavy on animation you realise pretty quickly how bat shit nuts your animator organization can get.

A pattern I didn’t see there was the one we use for Unto, I’ll call it “Any State Triggers”. It looks like this…
J4Ud7hq.png

(Credit goes to Scott Watson for coming up with this pattern while he and I worked on a procedurally generated space adventure game -- that we never finished . Scott and I have lost touch since that project, hope you're doing well mate.)

Before we came across this pattern we had an insane number of crisscrossing connections between states, he's an example I threw together -- I can't find the original.
GQVvof0.png

The Any State pattern is pretty simple.

- Leverage "Any State" to make a one directional hub, allowing transitions from State A to State B regardless of the current state or dependencies between states.

- Remove all state to state transitions.
- Choose a single uber default state for the entire animator (e.g. Idle) and make it the only state that other states can transition to directly.

The main idea is to wire all cross state connections (Any State --> State X) using the Trigger transition pattern. This means if I'm in the Running State and get hit by a sword, I can switch to the Hit Reaction state just by firing Trigger_Hit.
xamaQLk.png

Because this is wired to Any State I can do this from... any state , Run, Jump, Climb, whatever and I don't need the other states to know about the "wiring" to Hit Reaction.

If you're not familiar with triggers, they are single-fire, set and then reset, boolean flags that the animator can use to perform a transition.

Code:
// fire trigger
_animator.SetTrigger ("Trigger_Hit");


Unlike Bool, Int or Float properties which need to be set then manually reset, a trigger's state is automatically managed by the animator. It fires, setting a transition to true, and then once the transition has completed the trigger is set to false, so it doesn't fire again.

When we fire a trigger we make sure to set up the animator properties for the new state. We do this to so we don't accidentally reenter a state "in flight". In theory, because we can interrupt at any time, from any state, then we could do something weird like interrupt Run during RunEnd, do a Hit Reaction and then reenter Run with the run state at RunEnd.

Inside each state we have "back to Idle" conditions. Idle is our default state for all other states.
xa383jN.png

Ttransitions to the Base Layer always point to the Idle state which is the animator's overall default state.

Instances where we need to transition from one state to another state, other than Idle are all handled through the Any State pattern.

If you have any questions let me know.
 

Mr_D_

Banned
Hey guys, here's another update from Stephen's blog :

Staying focused - overreacting to feedback


Back in 2015, we had this idea for a Dark Souls side scroller, shit it might even have been 2014. Holy god that’s a long time ago. Anyways, the idea was to take the dodging of Dark Souls which is left or right relative to your enemy (3d over the shoulder camera and all), not just a horizontal roll (which you’d normally get in 2d), and realise that in a 2d world -- so the hero could dodge to the “back” or “front” from the “middle” plane. And, enemies can attack with their “back” or “front” hand.

The idea was interesting, but the execution sucked, it was just too hard to read back and front in a flat 2d style… maybe in a 2.5d presentation with 3d models?

For that concept we built all sorts of gameplay, combat, various enemy AI, a simple crafting and upgrade system, doors w keys, and bosses. We'd already been accepted to Xbox ID, but we were trying to get featured by them so we sent them a build to get their thots on it. They liked the mechanics but felt the visuals weren’t strong enough. But honestly, the mechanics weren’t good enough either. So we binned the idea and started fresh.

Maybe that was a mistake. Maybe we were really close to having something interesting, but because it was our first big game we over compensated trying to do something that was so “anti-game” we’ve made things much harder for ourselves then we needed to?

When we designed levels and concepts back then they were all about combat, interesting fights with interesting sets of enemies. Much like Dark Souls. What if we just got back to that for Unto?

Does it now look good enough? Are the mechanics much better?
 

Roni

Gold Member
Did you guys catch Unto The End in the XBOX brief at E3?
We've been quiet for quite some time, but we're now finally ready to show some more gameplay!


You can follow along with the game and speak with the devs on Discord, over at this link here, under the new 'Big Sugar' name.

Unto The End is also updated on Steam here :)


Congratulations on the game, man. Looks great!
 

pr0cs

Member
It looks really good, a great idea to make a 2d combat game that focuses on timing similar to the souls games.
I'm not sure how I feel about all the animations, there is one canned animation of the 'troll' dying seen in the most recent video that seems off but that is just a niggly complaint more than anything.
Interested to see more, no question
 

Mr_D_

Banned
Looks legit great. Is there the release date?
Not as yet, but we'll keep you updated as soon as it's confirmed. If you want to keep up with all the dev details there's an official Discord server here!
Congratulations on the game, man. Looks great!
I'm glad you like the look of it ☺️

Stephen and Sara recently posted to their Steam devblog, there's some new gameplay footage available - it's the unedited version of the E3 trailer!

They've also broken down some new screenshots with deeper insight to the situations, and it's looking like we'll be treated to more updates in the coming months!

 

JimiNutz

Banned
I missed this the first time it was posted but glad I clicked on the thread now as this looks fucking awesome.
 
This is really intriguing! Thanks for sharing. Reminds me of a mashup 2D God of War 2018/Ico! The combat seems satisfying too. Wishlisted it.
 

Mr_D_

Banned
This is really intriguing! Thanks for sharing. Reminds me of a mashup 2D God of War 2018/Ico! The combat seems satisfying too. Wishlisted it.
Glad you like the look of it :D

For an immersive experience, the game is being designed without a player HUD - there's a Steam article on the visual indicators that are in place to provide all the information you need.

Check it out here.

q28zJhu.gif
 

Mr_D_

Banned
Using the word "cinematic" is the fastest way for me to lose interest in any game.
I'd rather have a Mark of the Ninja sequel.
Still, it looks cool.
I understand the trepidation, but don't let it dissuade your interest completely!
Depending on where you're based, Unto The End will be making a playable appearance at EGX this coming weekend in London - if you're in the area you should come and give it a try!
 

Bartski

Gold Member
Haven't seen anyone noticed here but the demo is live on STEAM and after checking it out this is definitely one of my most anticipated indie games this year
 
Top Bottom