Search Unity

Games Unto The End - Cinematic Combat Platformer

Discussion in 'Works In Progress' started by v2-Ton-Studios, Nov 13, 2017.

  1. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173


    Unto The End is a 2D cinematic combat platformer made by my wife Sara and me, Stephen.

    It will be coming to Steam, Xbox and PS.

    --------------- // --------------

    Sara and I are Canadian, we met in college and lived in Seattle for a while. A few years ago we quit our jobs, sold our condo, and lived abroad while learning everything we could about gamedev. We’re now in Berkeley California, and hope to stay here until Unto is finished.

    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, Rain World, Another World, and Punch-Out!!

    -------------- // --------------​

    E3 - ANNOUNCEMENT TRAILER



    E3 - SCREENSHOTS











    PRESS

    A bit of press coverage -- if you're interested in more background on the game.

    "Gorgeously Stylised"
    - Kotaku

    "Striking visual style, which conjures a sort of Another World meets Vikings ambiance"
    - PC Gamer

    "Looks as gorgeous as it is gory"
    - Bloody Disgusting

    "2 Ton Studio have taken all the best aspects of indie gaming and polished them brighter than most big budget projects could dream"
    - Cliqist

    ANIMATION WORK - POST E3









    -------------- // --------------​

    We're currently transitioning from concept / prototype to production, working to hit a proper alpha by end of year / early 2018.

    We're always trying to get better and love chatting about games (Unto or otherwise), so we really appreciate any feedback, questions, comments or ideas.​

     
    Last edited: May 21, 2019
  2. cirocontinisio

    cirocontinisio

    Unity Technologies

    Joined:
    Jun 20, 2016
    Posts:
    31
    Looks really good! Very cinematic indeed!
     
    v2-Ton-Studios likes this.
  3. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,206
    Good stuff. Official thumbs up from me.
     
    JamesArndt and v2-Ton-Studios like this.
  4. Kemonono

    Kemonono

    Joined:
    Nov 7, 2013
    Posts:
    297
    Love the art style here!
     
    v2-Ton-Studios likes this.
  5. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    Last edited: Nov 14, 2017
    PhilippG and hippocoder like this.
  6. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    PATHFINDING, VIRTUALIZATION & ROUTINES

    Our goal for Unto 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.



    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.



    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 an attack, run into a wall, or fall from a cliff. Swing and hit a log and your sword will get stuck, sprint into a brick wall and you’ll knock yourself out, etc.)

    So we decided to have actors “step aside” (there’s no animation for this yet, it’s just a layer shift and waiting queue 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.



    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 (with the actor in pursuit) 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.
    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, our 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.)

     
    Last edited: Nov 18, 2017
  7. sokki

    sokki

    Joined:
    Jan 31, 2015
    Posts:
    164
    Looks really good, well done to both of you :) I just hope the best parts of the game (full game) aren't captured in this trailer, so the game would be even better! I loved all the small details that ads a special touch unto the game, like the wolf howl, the innocent deer, and breath in the cold. Does the yeti boss breaks his chains leaving him onto the arms and using them as weapon perhaps? Maybe he also punch the ground causing earthquake which can be just for visual (collapsing mountains behind) or even effective in gameplay leaving gaps which makes the player to move slowly, or forcing him to jump which will slow him.
    Also nice thumb for the right hand swipe of the boss, giving some sort of 3D feeling.

    How long is the total gameplay? Such trailer tease for quite few hours of gameplay, but with the details i've seen so far, I'm afraid few hours of gameplay must be loads of work for the two of you..

    Anyway, like it and good luck with the game!!
     
  8. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    @sokki Heya, thanks! Glad you're liking what you see.

    The trailer is all pre-alpha, so we've definitely got a lot more in store. Like you, we very much hope the final game is better than the E3 trailer :).

    We have some neat ideas for the Yeti boss and how he might use his chain, interact with the bridge, etc. The ground punch is an cool idea, thanks for suggesting it.

    We'll have to see on total gameplay length. Our focus is quality over quantity and a good amount of replayability -- a few yet to be announced features should (we hope) keep things interesting here.
     
    Last edited: Nov 19, 2017
  9. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,779
    Been waiting for your announcement. Looks like a lot of hard work has gone into it so far. I like your storytelling process and animations are very well done.
    Looks like you've hooked up with a quality up-coming publisher as well. Your title will be a top mark for them going forward.
    Awesome presentation.
     
  10. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    @theANMATOR2b Thanks! Really appreciate the note on the animations, it's the thing I spend the most time on and am constantly trying to get better at.
     
    Last edited: Nov 22, 2017
  11. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,779
    It's possible you've already considered this but worth noting, you might consider adjustable/variable 'ranks' for the actors. Because there might be a low ranked actor - but he has urgency due to something, he is chasing the father, or running while other actors are just walking. If the low ranked actor increased in rank due to his urgency it would cause him to have precedence when crossing paths with a normally higher ranked actor.
    Wouldn't want the low 'ranked' urgent actor to stop running and step aside just because he crosses paths with a higher ranked actor. ;)
     
    v2-Ton-Studios likes this.
  12. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    We have this "mindset" system that underpins the behaviour of the actors (NPCs) in the game. It determines their level of anger vs friendliness to other actors as well as how they react to actions: seeing a friend get killed, being attacked, etc. So we'll be using that to impact things like urgency of movement relative to other actors.

    But, yes, your idea and example is spot on... exactly the kind of thing we want to be able to handle.
     
    theANMATOR2b likes this.
  13. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    A bit of progress on hit reactions, idle states and a placeholder cut at a death animation :).







     
    Last edited: Nov 28, 2017
  14. StarvingIndieDeveloper

    StarvingIndieDeveloper

    Joined:
    Aug 21, 2015
    Posts:
    258
    I like the art style, It reminds me of "The Mooseman".
     
  15. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,206
    Little did he know all they wanted was love.
     
    MoonJelly and theANMATOR2b like this.
  16. sokki

    sokki

    Joined:
    Jan 31, 2015
    Posts:
    164
    I'm happy you liked it, I mean, Yeti's are crazy giants, I assume they do lots of chaotic damage around :)

    Replayability? Like different endings, or different character plays? I found it hard to add replayability feelings to adventure game, as its straight-ahead kind of gameplay. On the other hand, skill based, or strategy games are easy to tease for more than 1 plays.. I'm curious and hoping to see the full release as soon as possible.
    Good luck again!!
     
  17. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    We're aiming for both, but will honestly have to see. If we can get one "path" through the game to feel great then we'll be really happy. Turns out making something special is super hard to do :).
     
    MoonJelly likes this.
  18. steelersfan252

    steelersfan252

    Joined:
    Dec 23, 2010
    Posts:
    217
    Really nice game, I support it.
     
  19. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
  20. JamesArndt

    JamesArndt

    Joined:
    Dec 1, 2009
    Posts:
    2,646
    I really like the visual style. I will say the animations were the roughest looking part to me. Good for a start, but I don't feel enough polish in them and it brings me back to my old university days. I feel like the anticipation is missing, overlapping action on the characters and overall exaggeration on the movement arcs. Really a decent amount of the 12 principles for the animations. It's close, but it's just needing that polish to it. Other than that it's really nice visually and already feels like it's trying to tell me a story...
     
    v2-Ton-Studios likes this.
  21. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    Hey James -- thanks for the candid feedback, very appreciated. I'll keep working to make them better.

    Cheers!
     
    Last edited: Dec 7, 2017
  22. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    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 messy 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…



    (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.



    The Any State Trigger 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.



    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 (csharp):
    1.  
    2. // fire trigger
    3. _animator.SetTrigger ("Trigger_Hit");
    4.  
    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.



    Transitions 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.
     
  23. MoonJelly

    MoonJelly

    Joined:
    Oct 2, 2014
    Posts:
    221
    Oh my God, dude, I love it. The thread title had me hoping it was a (quality) Another World/Heart of Darkness/Oddworld-kind of game, and it looks to be just that, only with (much) more emphasis on combat. If I didn't watch the video, I'd guess that more combat would be a negative, but it looks absolutely badass with the head chops and knife throws. I'm really digging it.
     
    v2-Ton-Studios likes this.
  24. MoonJelly

    MoonJelly

    Joined:
    Oct 2, 2014
    Posts:
    221
    Also, your animator (before you discovered the "any state" pattern gave me horrible flashbacks to my character's old animation controller-- it was an utter mess. That's almost entirely due to my failure to use it properly, but it doesn't feel like it was designed for sprite animation. Creating animation "folders" (I don't know what they're called) that let me group similar animations together made an enormous difference as it looks like it has for you as well.
     
    v2-Ton-Studios and theANMATOR2b like this.
  25. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    @jester-race Heya, glad to hear you're digging it -- great New Year's present right there :)!

    You're spot on with your read on things. We're working hard to make combat fit into the mood / tone of the overall game. It's been a ton of work, but lots of fun too.

    Curious, what are some of the things that would be a negative for our combat system? Still time for us to avoid stepping on landmines :).

    Yea, wrestling with the Animator is never fun, glad to hear you got things wrangled. It does feel like the animator is designed around 3D / imported animations. For instance, I still haven't figured how to make good use of layers... they always seem to be fighting with each other... probably b/c I don't have a real rig, but a 2D "doll"...?

    Not sure if you're interested, but Will (the guy that wrote the animator post I linked to above) forwarded me a talk he did... I haven't had time to watch it yet, but might be worth a go to see how the pros do it :).



    Cheers! All the best for 2018!
     
  26. MoonJelly

    MoonJelly

    Joined:
    Oct 2, 2014
    Posts:
    221
    Thanks for the link. I'll definitely have to give it a watch when I get home (I'm on my last day of vacation-- back to sub-zero Canadian weather for me :( ).

    What I meant about the combat is that if you just described the game to me as "Like Limbo or Another World, but with an emphasis on combat", I'd think that sounds sort of contrary to the whole point of those kinds of games. But, like I said, after actually seeing the combat, I'm convinced that it'll probably be a lot of fun. And, in fact, it helps make the game stand apart from the ones that inspired it.
     
  27. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    @jester-race Got it, thanks for the reply. I suck at marketing / framing things... super helpful to see how others see what we're doing. Cheers!

    PS Canadian here, grew up outside of TO... although we're living in Berkeley California for the year... I really miss the cold weather (mostly the snow) during the winter. Last year, we spent Jan and Feb with Sara's parents in Ontario and I loved every minute of it... even the driveway shoveling... :). Although my parents tell me that this year is a particularly cold one... Hang in there :).
     
    MoonJelly likes this.
  28. RavenOfCode

    RavenOfCode

    Joined:
    Apr 5, 2015
    Posts:
    864
    This looks stunning! Great work so far, definitely looking forward to playing this!
     
  29. v2-Ton-Studios

    v2-Ton-Studios

    Joined:
    Jul 18, 2012
    Posts:
    173
    Last edited: Jan 29, 2018
    RavenOfCode likes this.