Today we’d like to explain Disjudicator in greater depth, as well as go over some of the technologies and 3rd party software enabling us to achieve our goals for its gameplay and detail. If you follow this series of posts throughout Disjudicator’s development, we expect to keep you entertained with concept art, bloopers and by sharing techniques and our experiences that might help you with your own projects in Unity.

 Build notes – Disjudicator v0.17

Aiming system – Inverse kinematics

The incredibly versatile Final IK – an Inverse Kinematics animation solution – allowed us to speed up progress on the animated aiming system tenfold. As we develop Disjudicator, your character’s weapon aim will look anatomically realistic and varied as you race through its levels. This system also covers a lot of the work required for applied forces for NPC skeletons, hit animations etc.

It alleviates us from the gigantic load of donkey work involved in animating anything using a skeleton – it helps us generate animations for walking, running, sliding, being hit by bullets, rigid bodies, procedurally generated ragdolls… Shall we go on? This plugin has been a life saver so far and we are only beginning to wield it to its full potential.

Please enjoy our first attempt configuring our animation mask with an IK solution (now fixed, don’t worry).

[Spinal maceration continues]
[Spinal maceration continues]

Score system

The score system accounts for accuracy, speed of level completion, as well as enemy kills and the completion of objectives and sub-objectives. Additionally, it will also factor in :-

  • Headshot detection – Score modifier applied to the kill bonus
  • Velocity and accuracy bonus – rewarding you for pulling off precise shots whilst on the move
  • Style bonus – extra points for knocking enemies up into the air and shooting them, shooting while dashing and chained attacks

Server-side highscores

We recently added a very simple server-side high score table for our dev team to compete on (with which we’re having great fun, by the way – dude have you played the new Disjudicator build? Nah? Aww that’s too bad man, shit was SO cash)

 

Objectives

Our custom-coded objective and story progression system allows us to flag NPCs, objects, buildings, items (and pretty much anything else) as objectives, with detailed and varied win conditions such as Destroy, obtain or approach, allowing us to create interactive set pieces and dynamic levels that reach beyond the scope of the current level and affect the narrative of the game

Custom-built RayCast collision system

We soon realised Unity’s own physics engine wasn’t going to meet our requirements for the kind of tight platforming we want Disjudicator to offer, and have therefore built our own RayCast-based collision engine, giving us fine-grained control over every aspect of how the character moves, reacts and interacts with the level geometry and objects throughout the game.

We are still fleshing out the capabilities and robustness of our model, and have already implemented gravity, collision, slope detection and more.

 

Platforming

At the heart of Disjudicator lies its nuanced, finely-tuned platforming. Getting the right balance between difficulty and accessibility is difficult, but we’re investing every effort to make Disjudicator feel natural, challenging and addictive. The current player controller model includes part-animated dashing, wall-jumping and sliding mechanics, to which we hope to tie assets in the near future.

Weapon scripts

Another custom-coded model for Disjudicator’s killing tools – our code abstractifies the concept of what constitutes a weapon, allowing us to create any configuration of firearm, bludgeoning implement or contraption intented for harm, detailing :-

  • Fire rate
  • Reload time
  • Particle system allowing the weapon script to dynamically modify its particle emission
  • Damage
  • Recoil
  • Range
  • Bullet spread
  • Number of projectiles/hit polls fired per shot
  • Projectile or RayCast based hit detection

A look at our set for a mission taking place at a mining installation
A look at our set for a mission taking place at a mining installation

Levels

We have prototyped a few levels to gauge the flow of our implemented mechanics – fine-tuning the feel of the platforming and combat is earmarking a lot of our development time at the moment. We hope to get a full demonstration of the character controller very soon.

 

Story based system

Tying together the missions is a Visual Novel-based storytelling system with multiples routes for completion and character progression. Helping us accomplish this is another life-saving Unity plugin – Fungus. Fungus is a flow-chart based storytelling framework that once again saves us from having to write a lot of code reinventing the storytelling wheel, which quite frankly would be time poorly spent. It’s open source and highly customisable.

We have a GameObject that is saved between scenes (and is serialised to allow the data to be saved locally) that contains all the configurations for the character, such as their equipment as well as a table of flags that are used to represent the games current state.
This allows us to generate files with different sets of flags, from which the game will recognise where the story, character and objectives should currently be – the game automatically loads this state on startup, allowing us to test any part of the game without tedious playing and replaying of the earlier parts of the game.

Hub areaWee placeholder prototype for the Government mission hub

You will have access to the Goverment’s hub area – as well as other hubs later in the game – where you can customise your perks, weaponry loadout and select missions from a holographic map system that splits the city into various areas.

 

In the near future

We have much in store for Disjudicator’s future – we’re currently working on implementing the following :-

  • Hanging on ledges and shooting while hanging
  • Rope swinging
  • Mutators that effect your characters movement and utility
  • Actor deformation/Gore system
  • Improvements and stability changes to our current models

 

Thank you so much for reading, and see you next time!

2 Comments

  1. Reply

    Interesting update! I’d like to know more on the skill and perk system (if I understood correctly and your game will have character progression)
    Thanks for the link to Fungus, I’ll try it for our adventure game.
    Keep up the good work!

    • Dan Bell

      Reply

      Thanks Nikola! We’re still working on fleshing out our own understanding of the character progression system, and eventually streamlining it. We imagine that as well as item-based upgrades, you’ll be able to achieve special bonuses for certain completion routes, performance-based rewards, etc. More to come in the next build notes! Thanks for your support 🙂

Leave a comment

Your email address will not be published. Required fields are marked *