1. TRACHI – ANARCHY
  2. News

TRACHI – ANARCHY News

ONE

Howdy-ho, friends!


Remember when I promised a major update two months ago? We followed it up by a progress report on July 28th, where we covered what should've been ANARCHY 0.3 (ExtrapolAtion).

The truth is: I've barely had time to spin the things I've worked on into a releasable build. We'll thus have to delay the update by a couple of weeks. Rest assured, though: there's a lot more months to the year!

The last couple of weeks have given me a good hold of the narrative pieces ANARCHY needs. Story remains our strongest point – so let's have a look at the arcs of the individual acts!

[h2]– ParAdise –[/h2]

The first act puts Pandora (aka Lorna) in the driving seat. Following the intro (ImmigrAtion), our protagonist wakes up in a strange new place. There's a bunch of familiar faces, but the world has radically changed. Either that – or Pandora's memory is terribly wrong.

To answer that question, we revisit snapshots of Pandora's life between 1913 and 1919. Key factors are her relationship to Atlas (Aron), Selene (Cleo) and Eurydice (Viktoria). Pandora's aristocratic background, her new identity and life in the military make up her primary arcs.

All in all, the beginning and end of Pararadise proper is mostly sorted out. The current challenge is to pave the road in between. Some of the steps are already there: There's the Checkpoint, the Orchard and the Tree. We'll use the former two to kill the latter – revealing a way to the Castle and confront Eurydice.

[h2]– Prometheus –[/h2]

Once all is well in Paradise, we spot a post-game door. We could live happily ever after, but Pandora knows that there's answers out there. There's a familiar balcony, an old friend – and for the first time in almost year – it RAINs.

That's the cue for ANARCHY's antagonist to reveal itself. A new kind of character – neither bound by history nor a script – has his own plans for the game. TRACHI's people are transformed into training subjects, forced to relive their memories over and over again.

[h2]– ParAdox –[/h2]

Daphne's (Dorothy) intro kicks off in 1915. She's kidnapped, orphaned and becomes Hyperion's (Teron) newest protegee. Her first stop is EnKAD academy – a boarding school to shape adolescents into servants of the state.

It's easier said than done if you're the daughter of a former public enemy, Daphne has a hard time making friends, her grades fall off and she's increasingly late. Hyperion intervenes and presents her with an opportunity. She becomes a Disciplinarian to bring other students in line.

ParAdox is a story about embracing and bending the rules. Daphne's evolution runs largely parallel to her historical development, which we'll follow from Kenovice through Aion until the big finale in Hermingrad 1922.

[h2]– ParAgon –[/h2]

Our earliest snapshot of Atlas goes back to 1913. His interrogation by Crius (Danil) sees him being nonchalantly shot in the leg. Our protagonist holds firm, impressing his captor and landing him a job in the nation's secret police (EnKAD).

Two years later, Atlas is dispatched to Kenovice with orders to kill the man that recruited him. It's a turbulent time, given that he also meets the love of his life. For a couple of years, Atlas is content with life – until a tragic event makes him end up on his own again.

Fast forward to 1921. Eurydice disappears during a mission to Trachi. Atlas is sent to investigate. The current plan for ParAgon is to revisit his trip to the city we know and love.

[h2]– ParAsite –[/h2]

Last but not least: Ganymede. Various characters pointed out that his past is a giant question mark. We saw a couple of flashbacks centering around a boy named Timothy – though we can't say for sure if these are 100% accurate.

Here's what we undoubtedly know: Ganymede delivered a letter for his brother Orpheus (Gregor) sometime before 1919. Two years later, he and Icarus (Nikolas) were in charge of the Forten Assassination. Ganymede met Orpheus again in 1923 and single-handedly dismantled Amryn's entire network in Dusa.

The last part will likely be the main stage of Ganymede's act. We'll get to see a younger brother who's been separated from the person he can't live without. If you've been wondering where the name 'Trojan Boy' comes from, you're in for a treat!

[h2]TRACHI, THEM, US[/h2]

Towards the end of Act 4, the experiment concludes. I can't tell you too much about the results, but here's the pieces that form the conclusion: A fictional story is a script detailing the struggle between characters and their world. In the scope of a video game, we add a player who acts unpredictably.

ANARCHY is the characters learning how to break the script. This could lead to several outcomes. Either order is restored (AUTHORITY), the characters reconstruct Paradise (AUTARKY) or the game breaks into reality (ATOPY).

We don't need to make that call anytime soon. However, it's an important question for the future direction of TRACHI. Think of it as a balance between macro-history, individuality and meta ideology. If you have any thoughts on that – I'll gladly listen to them all.

[h2]ANNIVERSARY[/h2]

TRACHI's first iteration was released exactly five years ago. 2021 saw AUTONOMY, followed by InvAsion in 2022. Last year, we pushed ExcommunicAtion (aka ANARCHY 0.1).

This year is the first one without a major release. I'm super sorry that I have so little to show. For what it's worth: I won't let go until I'm gone. Updates will likely be far and inbetween, but I firmly expect to pick up the pace towards the end of the year.

I want to thank you – and everybody else who has interacted with the games. From the many friends that embraced a nory trying to create, to all the strangers out there. Here's to you and the hope that TRACHI fills you with joy!

Talk to you again soon, friendos!

much love
nory

ExtrapolAtion (Preview I)

Heya, friends! 👋


Evidently, I'm a bit late. So let's kick it off with an apology!

I've had a couple of extra day-job commitments at work, which meant less time for development. We'll thus have to push ANARCHY 0.2.3 into the 0.3 basket. In effect, August 28th will see both the second and third part of ExtrapolAtion released as one big package.

The preview right here is centred around ExtrapolAtion B – aka Trachi 1923. This segment brings us closer to AUTONOMY than ever before – a perfect opportunity to revisit the political and personal situation at hand. We'll also take a look at a new major battle and – last but not least – introduce a long promised Status Value rework.

[h2]Trachi 1923[/h2]

You've seen the preview – and perhaps the teasers at the end of ExtrapolAtion A. For the first time since 2021, we're going back to the city where it all began. Trachi's (outdoor) debut in Unity brings us back to AUTONOMY's finale. Moments after the (former) Mayor's speech, the Ionian Intelligence Serve (IIS) has achieved operation arteria's primary objective.

However, Atlas and Daphne aren't in Trachi just to stage a coup. The Secretary for State Security personally ordered them to clean the city while they're there. In less euphemistic terms: snatch two rogue agents (Orpheus and Eurydice) for a comprehensive 'debrief', while making sure that everybody affiliated with them is permanently taken off the board.

This backdrop is the immediate result of a convoluted political tug-of-war over an otherwise unimportant city. If your thirst for detail is already satisfied: feel free to skip the next section of this post. For everybody else, I'll try to sum it up in a couple of paragraphs.

[h2]Politics[/h2]

In 1923, there's three major factions vying for dominance over Trachi. AUTONOMY mostly follows the events from the perspective of the IIS. Players who paid special attention might point out that this institution consists of two major subfactions: Ionia's secret police (EnKAD) and the Commissariat for External Affairs (CoExA).

On the Trachian side, there's the Faber administration. This de-jure government was replaced following an insurgency by political outcasts situated in a nearby village called Nestville. The coup itself was supported by Ionia as a means to reintegrate Trachi into their sphere of influence. Unbeknownst to them, a breakaway faction of CoExA – led by Orpheus – meanwhile encouraged Trachi's new government to go for full independence instead.

To sum up, there is one major frontline defining AUTONOMY's most important confrontation: On one side, there's the city – supported by the former CoExA office in Trachi. Opposite of that are two EnkAD agents with a mission to subdue the city – including their own rogue agents.

[h2]Melee[/h2]

So much for the story. Next up, let's take a look into how that translates into gameplay. We – the player – are in control of Atlas and Daphne. As we enter CoExA's central station, we're confronted by Ariadne. Her appearance is a collective surprise for several reasons. You could say her being here hits differently for everyone.

It doesn't take long until a fight breaks out. Two on one might sound like a walk in the park, if it wasn't for the fact that Ariadne maintained her ExcommunicAtion strength. In concrete terms, she's Level 15 – we're Level 1. We strike, slash and shoot without putting a dent into her.

When it rains it pours. And when the city is under attack – the city strikes back. Wave after wave of armed militia storm the room to defend their home. Although these people are our enemies, we can appreciate their dedication. More so given the fact that their Level is much closer to our own.

[h2]Upgrade[/h2]

Maybe you can already extract the formula for this particular fight. If not, let me introduce you to the broad strokes: Killing enemies nets you EXP and Loot. Because a chain is only as strong as it's weakest link, we just need to identify the softest target of them all.

Unfortunately, Ariadne won't sit still as we're picking off Trachian citizens one by one. ExcommunicAtion enjoyers might remember her signature ability: Indulgence. It's a global AOE with a one-turn buildup that reduces the HP of every enemy to 1.

To sum up: The primary challenge of this encounter will be to farm Levels and Equipment by killing 'adds'. At the same time, we're applying constant pressure to Ariadne in order to interrupt her casts. Failing to do that could spell death for Atlas or Daph. You being the player means they're reconstructed instantly, but the HP of every enemy combatant on the field is also fully restored.

[h2]Fundamentals[/h2]

Remember when I promised to rework the three primary status values (HP, ATK and DEF) earlier this year? If you've done your rounds in ParAdise, you probably noticed the problem. There was a massive increase of max HP between Levels. For example, Lorna went from around 12 HP at Level 1 to 40-something at Level 2.

To counteract this problem, I boosted ATK-growth across the board, while keeping DEF-values comparably low. This band-aid solution is now obsolete, as we've cut HP-growth per Level by an average of 90%. A character that used to go from 10 to 3000 HP at Level 99 will henceforth have around 300 native max HP at the same level.

In addition, the relationship between ATK and DEF has also been reworked. The old formula [DMG * ATK / (100 * DEF / 100)] has been retired to make place for a much simpler one: DMG + ATK - DEF. It'll take a bit of fine-tuning to get it right, but I'm already a big fan of how straight-forward it is.

[h2]Outlook[/h2]

So, what's next? First and foremost, we'll wrap up the battle against Ariadne. Then it's up the stairs, converging into Trachi's most important room. There'll be a big reunion, an opportunity for revenge and – last but not least – RAIN.

We'll talk more about that in the second preview sometime mid-August. If all goes well, we'll also look at new content for ParAdise, more Variations and a couple of extra QoL features.

A big (preliminary) shoutout to Hibari for helping me stay on course over the last couple of weeks. Major thanks to globabee, who's enlightened me to the aesthetics of Steam Inventories.

And finally, thank YOU very much – as always for your attention! 😊


much love
nory

Renaissance

[h2]Greetings, friends of the sun! 👋[/h2]

After two months of work, here's ANARCHY 0.2.2 (Renaissance)! I'd normally give you an abstract about the highlights of this patch. This time, there's simply too many of them.

We're facing – without a shadow of a doubt – the biggest update since the game came out. Almost every segment has received new content, wide-ranging optimisation and other equally important bits of love.

Let's check it out! 👓

[h2]Narrative[/h2]
ExtrapolAtion A is the centrepiece of Renaissance. We covered the broad strokes in the preview. In technical terms, Daphne is visiting Ganymede on August 28th 1926. On one hand, we're witnessing a love-letter to AUTONOMY's first couple of scenes.

There's a bunch of adjustments, both on the gameplay and narrative side. The dialogue is in many ways optimised and everything is far more interactive. Similar to ImmigrAtion, we're playing a lot with the thought of whether the scene in front of us is genuine history.

This exact dynamic comes to fruition during the conversation between Ganymede and Daph. We kick it off with familiar words – including a bit of extra AUTONOMY lore. When Daphne is about to leave, Ganymede casually drops a narrative nuke.

He's about to spill even more, then the encounter gets physical. I'll leave that and everything beyond to your own exploration, barring for one heartfelt promise: We're not only exposing story elements. 😏

[h2]Trilogy[/h2]

ExtrapolAtion neatly fits the gap between ExcommunicAtion and ParAdise. Future-us will have to decide whether we leave it like that – or sprinkle the former two across ParAdise and ANARCHY's other acts.

For now, I'm happy to give the players (that's you!! 😊) the freedom to engage with the content as a buffet. If you start with ExcommunicAtion, ExtrapolAtion A will trigger right after the epilogue. Come July 28th, we'll extend it with ExtrApolation B and finally work in ExtrApolation C on the day of days.

After that's all done and settled, our narrative foundation is just about ready to support ParAdise. Which is the perfect segue to the next topic in this very post.

[h2]PreParAdise[/h2]

Let's be real for a second: ParAdise – for its many qualities – has 'prototype' written all over it. We're booted into a green landscape without any context at all. For the better part of a year, we've kept it that way to make debugging and testing less of a pain.

At the same time, we've diligently worked on ParAdise's own introduction. ImmigrAtion was engineered for that purpose specifically, although it humbly remained a Fragment ever since. The first course of action is thus to put ImmigrAtion at the forefront of ParAdise.

Even so, there's still a big leap from fake-Aion 1913 to waking up in front of a Monolith. Ergo we took the backdrop of Paradise (that is 'green', Monsters and LiberAtion) as ingredients for a new map and made it a tutorial zone.

[h2]Renovation[/h2]

The Glade is first and foremost a gameplay and narrative bridge. At the same time, it also serves two additional goals. I like to think of it as a field test for smaller, tighter outdoor maps. One aspect of that is performance – the other one is a more abstract 'vibe'.

Both factors have direct consequences for the existing parts of ParAdise. You'll probably notice that our main map – 'Paradise' – is now known as 'Paradise North'. It's an open-ended project, so I can't give out too many details yet. However, I'm leaning toward splitting the map.

I'll talk more about it when things are more concrete, but we can look at it in the following way: The new map is, for all intents and purposes, a good orientation of the aesthetic detail we're going for.

[h2]Chaperone[/h2]
[previewyoutube][/previewyoutube]
The other, much more immediate side-goal of the 'Glade' is to introduce Companions. Since we're placing ourselves in the tradition to exploration-based Tactical RPGs (i.e. Baldur's Gate, Pillars of Eternity and the like), combat and field-movement are deeply intertwined.

The new area tries to experiment with that. We've got a major character (Selene / Cleo) as our persistent side-kick on our way north. She follows, places herself on the grid and is even interactable for a chat or two.

If all goes well, we'll extend this system to Paradise proper. Lime would be an obvious candidate for a persistent companion down the Lime line.

[h2]Persistency[/h2]

A wise man once said: People die when they're killed. In ANARCHY, deaders stay dead until the player triggers a Monolith. This means we have to be deliberate about what's respawned whenever we reenter a scene.

One likely scenario is saving and loading a game. The core challenge is to reinstate the scene as close as possible to the way we left it in. This is the primary reason why ANARCHY only supported AUTO-Saves. That restriction – in turn – was a major motivation for me to take a deeper look.

Starting today, we're supporting Manual Saves. It's currently limited to Field-Mode (i.e. no Battles and Conversations) but I'm committed to make it work everywhere. The second addition is that we've reworked the save and load menus to show the location and the portrait of the Field Leader.

[h2]Identity[/h2]

We've more or less covered Variations in the preview and the technical overview. Thanks to our diligence, we can focus on what's new for you. First of all, you can equip Variations at any point in the game. Since individual pieces are still tied to Steam Items, some Fragments allow you to unequip an item without being able to reequip it.

Temporary Variations are thus marked as 'TEMP' – although I'll eventually slap an extra confirmation dialogue on top of that. Except for these fringe cases, you'll only see the Variations you own. This is mostly to prevent someone buying the Variation under the assumption it can't be unlocked through playing the game.

All in all, I'm (almost) completely satisfied with our current infrastructure. Implementing a new Variation takes about 10-15 minutes, all in all. The only aggravating part is making the Variations itself, so I'll keep that to a minimum until the updated Character Generator comes out. Here's hoping we'll get to see it released sometime this year.

[h2]Abilities[/h2]

Obviously there's a bunch of changes and additions to the battles as well. I went into the visualisation of Actions a bit deeper here. From the player's perspective, combat generally works the same, just a lot more stable and smooth.

Our big new feature is a Counter mechanic. Given a certain Status Effect, a target of an Action retaliates with their own attack. It's not only borderline broken, but also breaks new ground. Chaining Actions without dropping the Side-View Overlay is something I've had my eyes on for a long time.

We'll get to see more of that in August at the latest. For now, I've also implemented a couple of extra abilities like Selene's Decrescent, a weakness inflicting AOE – and several weapon-based skills such as Terminology's Legshot [MOV DBUFF] and Fast [MOV BUFF].

[h2]Adversity[/h2]

To be blunt, I've procrastinated a long time around setting up proper decision trees. AI-controlled combatants operated on very bare-bone instructions. As of Renaissance, every Field enemy now has a multi-tiered set of nodes that checks both enemies and allies for specific conditions.

Say, for example, you apply an ATK boost to yourself. If there's a Slime nearby, it could spoil your plan by purging that immediately. Another scenario would be an enemy unable to reach a target running Provoking, so it goes after someone else. These, in conjunction with every enemy's unique set of abilities, should make the fights in ParAdise way more engaging.

[h2]Bottom Line[/h2]

Over the last two days, I've spent every waking minute testing ANARCHY. It's a bit like moving places, when everything you own becomes a burden. As annoying as it may be, I'm incredibly proud of what we've achieved. The 'we', in this case, is literal. I want to once again express a heartfelt thanks to (-_-!) for posting so many helpful reports.

All of these are issues I didn't have to find myself. They are – hopefully – issues you won't run into anymore. That, coupled with the community support and the (very encouraging) player statistics are the reasons why I keep coming back to ANARCHY.

On that note, let's talk again in just about two weeks. We'll take a look at ANARCHY 0.2.3 (Souvenir), where we'll formally introduce our fourth and final protagonist.

Hugs and kissies from your biggest fan

much love
nory


-----
Release Notes

[h2]ANARCHY 0.2.2[/h2]
[h3]Chapters[/h3]
  • Added 📈 "ExtrapolAtion".
    Three years since Trachi.
  • Reworked "PostExcommunicAtion".
    Leads to ExtrapolAtion.
  • Reworked "Paradise".
    ImmigrAtion -> Glade -> Paradise North.
[h3]Quests[/h3]
  • Added 📅 "ExplanAtion".
    ExcommunicAtion + ExtrapolAtion.
  • Added Task "ExhalAtion"
    Is it me, or was I here before?
  • Added Task "ExternalisAtion"
    Either way, August 28th.
  • Added Task "ExpirAtion"
    Another world about to be rewritten.
  • Adjusted "Argonautica"
    Major rewrites and restructuring.
[h3]Areas[/h3]
  • Added 🚞 "Wenger Sanatorium"
    These people are inSANE.
  • Added 🌲 "Paradise Glade"
    Was that here before?
  • Renamed "Paradise -> Paradise North"
    RenovAtion.
[h3]Combatants[/h3]
  • Added 👨‍⚕️👩‍⚕️"Wenger Staff"
    Do I look like a receptionist?
  • Added 💖 "Field Companions"
    The more the merrier.
  • Adjusted "Helios"
    New Portraits & Sprites.
[h3]Abilities[/h3]
  • Added 🤺 "Counteract"
    Counter (if attacker(s) in range) [1 TURN]
  • Added 🌒 "Decrescent"
    20% AOE DMG | adds WEAK [2 TURNs]
  • Added 🚿 "Cleanse"
    REMOVE 1 DBUFF
  • Added 💦 "Purge"
    REMOVE 1 BUFF
  • Added "Ambrosia"
    100% DMG | PARALYZE [1 TURN]
  • Added Passive "Broken Wings"
    My life for yours.
  • Fixed "Rage"
    20% Lifesteal | No CNTRL
[h3]Items[/h3]
  • Added 🛂 "Visitor's Pass"
    He's in the Western Wing.
[h3]Enemies[/h3]
  • Added "Battle Ogre"
    Level 15???
  • Reworked "Ogre"
    Come here! 🏃‍♂️
[h3]AI[/h3]
  • Reworked 🤖 "Base Behaviour"
    Cleanse -> Provoked -> Purge -> Attack.
  • Reworked "Icarus"
    Doesn't attack targets < 30% HP.
[h3]Variation[/h3]
  • Added 👕 "Nostalgia"
    Tick-Tock.
  • Added "Tartarus"
    Third time, isn't it?
  • Added "Liberty"
    Ser yourself free.
  • Streamlined "Item Slots"
    Character-specific 'Item Types'
  • Streamlined "Fragments"
    TEMPorary Variations
[h3]Achievements[/h3]
  • Added "Renaissance"
    We go again.
  • Adjusted "Paratrooper"
    Rewarded after ImmigrAtion.
[h3]User Interface[/h3]
  • Adjusted "Combatant"
    Available in Battles & Conversations.
  • Ergo "Equipment" & "Inventory"
    Adjustable everywhere.
  • Reworked Slot "Variation"
    Restricted to owned Variations.
  • Adjusted Battle Menu "Deploy"
    Only shown if deployable combatants >= 1.
[h3]Action Overlay[/h3]
  • Adjusted "Combatant Placement"
    Top-Down -> Side-View coherence.
  • Adjusted "Timings"
    Faster, better, smoother.
[h3]Savegames[/h3]
  • Added "NPCs"
    Stores positions & rotations.
  • Added "Manual Saves"
    We'll always be here.
  • Added "Save File Portraits"
    Putting a face to a name.
  • Added "Save File Area Info"
    Places to be.
[h3]Miscellaneous[/h3]
  • Adjusted "Camera Boundaries"
    Staying in our lanes.
  • Adjusted "Scene Transitions"
    Now waiting on the Camera to be set up.

Renaissance (Beta)

Heyho Friends & Family!

As promised – here's the ANARCHY 0.2.2 (Renaissance) beta.

The flagship addition is the first part of a new chapter – ExtrapolAtion. If you'd like to know what it's about, allow me to gently point you to the Preview from a couple of weeks ago.


There's also a new combat mechanic: Counter. It's born out of a larger rework – covered in this technical post. That announcement also mentioned an overhaul of Variations. There's a high chance we'll take a dedicated look at the what, how and why for that as well.

On the whole, Renaissance is feature-complete. What's left is to test ANARCHY itself and apply the proper polish. If there's time, I'll try to work in more flavour and prep the stage for ExtrapolAtion B.

I'll save that and the bigger picture for the actual release on June 28th. Until then, I wish you a spectacular week – with high hopes to talk to you again very soon. 🥰

much love
nory




Release Notes

[h2]ANARCHY 0.2.2[/h2]
[h3]Chapters[/h3]
  • Added 📈 "ExtrapolAtion".
    Three years since Trachi.
[h3]Quests[/h3]
  • Added 📅 "ExtrapolAtion A".
    1926, take two.
  • Added Task "ExhalAtion"
    Is it me, or was I here before?
  • Added Task "ExternalisAtion"
    Either way, August 28th.
  • Added Task "ExpirAtion"
    Another world about to be rewritten.
[h3]Areas[/h3]
  • Added 🚞 "Wenger Sanatorium"
    These people are inSANE.
[h3]Combatants[/h3]
  • Added 👨‍⚕️👩‍⚕️"Wenger Staff"
    Do I look like a receptionist?
[h3]Mechanics[/h3]
  • Added 🔪"Counter"
    Target retaliates (in Range).
[h3]Abilities[/h3]
  • Added "Counteract"
    Counter [1 TURN]
  • Added "Ambrosia"
    100% DMG | PARALYZE [1 TURN]
  • Added Passive "Broken Wings"
    My life for yours.
  • Fixed "Rage"
    20% Lifesteal | No CNTRL
[h3]Items[/h3]
  • Added "Visitor's Pass"
    He's in the Western Wing.
[h3]Variation[/h3]
  • Added 👕 "Nostalgia"
    Tick-Tock.
  • Streamlined "Item Slots"
    Character specific 'Item Types'
  • Streamlined "Fragments"
    Temporary Equipment
[h3]Achievements[/h3]
  • Added "Renaissance"
    We go again.
[h3]User Interface[/h3]
  • Adjusted "Combatant"
    Available in Battles & Conversations.
  • Ergo "Equipment" & "Inventory"
    Can now be changed everywhere.
  • Reworked Slot "Variation"
    Limited to display owned Variations.
[h3]Savegames[/h3]
  • Added "NPCs"
    Stores all Combatant positions & rotations.
  • Added "Save (Debug)"
    Temporary, maybe.
[h3]Miscellaneous[/h3]
  • Improved "Scene Transitions"
    Waits for Camera to be set up.

Technically

[h2]Hey friendy-friends![/h2]

I recently announced a triplet of monthly updates. Each of them packs a piece of this year's special event - ExtrapolAtion. I also mentioned that the first part – ExtrapolAtion A – was about 80%-90% done.

Just a week later, we're almost feature complete. This left a bit of room to sit down and finally polish some of ANARCHY's core systems. In this post, I'd like to present these optimizations and also provide a more in-depth technical overview.

[h2]Visualisation[/h2]

From the get-go (i.e. InvAsion), I put a big effort into making the character's visual appearance customisable and scalable. Thanks to Unity's Sprite Libraries, we're able to run all the characters on a single animation tree. We're also using inheritance to derive individual character prefabs from a single base-combatant. This means that changes to colliders, path-finding and many other pieces of logic don't need to be adjusted one-by-one.

However, Variations introduced a bit of a problem. We're running most of the game through ORK, while handling Dialogue separately. Each Variation added a bit of redundancy, since I not only had to make two sets of portraits per Variation – but also create another prefab.

The complexity of this system could also cause desyncs here and there. Switching Variations effectively respawned the character's object. In some cases, the Dialogue System wouldn't recognize that new object as the same character and thus wasn't able to anchor the character's dialogue bubble. In other cases, the camera unhooked itself.

[h2]Portrayal[/h2]

About two weeks ago, I finally came up with a solution. Instead of defining a set of portraits in both ORK and the Dialogue System, I rewrote parts of the latter so it would pull the corresponding portrait directly from ORK. In effect, we now only need one Dialogue Actor per character. That – in combination with a little script handling the different sets of sprites – means we can run all Variations of a character on a single object.

This means less headaches for me and more stability for the game overall. There is an even bigger upside, though! Changing a set of sprites to another is much less invasive than respawning the entire object. In effect, we can now equip Variations almost everywhere.

One result of that is you being able to alter Daphne's appearance all throughout ExcommunicAtion – even while she's in the middle of a dialogue line. The same goes, of course, for ParAdise. As a bonus, there'll be no more camera issues caused by respawning characters. This ties in nicely with another optimization.

Every time you loaded into a new scene, it could be that the camera hadn't adjusted itself to the characters. We diminished that problem by hard-coding about 0.5 seconds of delay before fading in the screen. Since a couple of days ago, the game now properly waits for the camera to be set up – i.e. no more artificial delay.

[h2]Abilities[/h2]

There's a couple of miscellaneous adjustments, but I'd like to tackle a major one right here. I mentioned ExtrapolAtion A being just about done. Without revealing too much, let's say that the 1926 encounter between Daphne and Ganymede in ANARCHY will be much more physical than AUTONOMY's. I promised it would combine the best of all worlds – and I intend to keep my word.

Generally spoken, ExcommunicAtion is a bit of a tutorial for ANARCHY's basic combat interactions. ExtrapolAtion aims to do something similar for advanced mechanics. One of them is the Knockback we introduced in ANARCHY 0.1.3 (Silhouette). Simply put, the ability tries to push a target one tile away from the user.

That leaves us with three points. An origin (user), a target and a destination. If the destination is an empty cell, the target is pushed back. If something's in the way, the target ends up back where it was – and we'll deal a hefty amount of damage to the target and whatever's occupying the destination. The ability itself is super rewarding, but its implementation has always been a bit undercooked.

You could say the same about ANARCHY's combat in general. Major parts of it were ad-hoc solutions, making the system increasingly hard to work with. To illustrate that point, let's take a look at what happened whenever a combatant uses an ability.

[h2]Problem[/h2]

We start in our regular top-down view and gather the combatants involved in the corresponding 'Battle Action'. An 'Action Overlay' appears and so do a couple of HUD elements. The characters, as 'Side-View' sprites, are then placed on predefined spots. There's a couple of animations, sound and visual effects, as the action itself goes through its motions.

Since we're swapping forth between Top-Down and Side-View perspectives, I had to create a custom solution for that. One of the biggest challenges was picking up the right characters, storing their original positions, rotations and scale – all the while making sure it would work both for single- and self-targeted abilities and for cell- and target-based AOEs. Not to speak of special cases like Interception, Construct or Knockback.

At some point, the entire system got so convoluted – I was afraid to touch even a single line. Imagine if you'd like to have a Counterattack where you wanted one or several targets to retaliate. Ideally, we wouldn't close the Overlay between the 'Main Action' and the corresponding Counter. We'd want to open the Overlay, run the initial attack and follow it up with a Counter straight away.

[h2]Setup[/h2]

Twelve months into development, I have a much better idea of what the 'Action Overlay' should and shouldn't do. Each Action has a 'User', a 'Target' and a varying amount of 'Collaterals' (for Cleaves / AOEs) at the very least. In addition, there's, 'Intervenors' and 'Assistors'. You've already seen an example of the former. When Icarus sacrifices himself, he's what we now call an 'Intervenor'.

The reason for putting Combatants in abstract boxes like that is to account for all possible scenarios. Going back to our Knockback example, we want to differentiate between entities that are knocked back and those that are in the way. If you think about Knockback projecting a line from the 'User' through the 'Target', we can automatically tell the 'Collateral' has to be on the same line.

In the Side-View, on the other hand, we always want the 'User' on the left and the 'Target' on the right. We thus know that the 'Collateral' has to be placed even further to the right. By creating boxes within boxes, we're accounting for that fact.

[h2]Static[/h2]

To place the combatants, we need more than just a direction – even for simple cases like this right here. We could place them on preset spots depending on what kind of box they're in. Incidentally, that's how we've been handling it for almost a year. It served us nicely, but two major problems became increasingly hard to ignore.

For one, we had to predefine spots for specific abilities. Interception, for example, places the 'User' further to the left. Knockback, as we saw, has a 'User', 'Target' and a 'Collateral' spot. Cleave – hitting the Target and one Combatant to the Target's left and right – thus uses a 'Target' and two 'Collateral' spots along the y-axis.

Now, the last example might have you asking: "Even if you put 'Target' and 'Collateral' in two boxes, how do you know which 'Collateral' is which?". In the scenario above, the 'Collateral' further to the north should also occupy the northernmost spot, right? So why don't we just take their Top-Down constellation and translate it to the side-view?

[h2]Trigonometry[/h2]

For every case that works, there's three that won't. In order to represent the original configuration, we have to check the relation between 'User' and 'Target' first. Once again, we can form a line from left to right (x) – and then a line from the bottom to the top (y). Noting the position of the User user(x, y) and target(x, y), we subtract the user's coordinates from those of the target and get a relative position r(x, y). Now we draw a line from (0, 0) to the x and y in r(x, y).

Say the 'User' is one step to the north of the 'Target'. That would be user(2, 2) and target(2, 3). Our relative position would be r(2-2, 3-2), i.e (0, 1). Now draw a line from (0, 0) to (0, 1), and compare it to the line defining the x-axis. The angle would be 90°. If the 'User' is straight to the left of the 'Target', that could be user(2, 2), target(3, 2) – resolving to r(3-2, 2-2) -> r(1, 0). That line would match the x-axis, which means their angle would be 0°.

Now try to rotate the picture in the middle by 180°, and the right one by 270°. We can apply this to every possible configuration to derive an angle by which to rotate the entire thing and end up at the 'User' being left of the 'Target'. Every 'Collateral' is thus placed in relation to its Top-Down position relative to the 'User'.

Simply put: We only need a single preset position as our 'anchor'. With that, we're able to translate Top-Down constellations in terms of their angle and order from left to right. As a bonus we also get their relative distance at the same time. This means that shooting a target from 5 cells away is now accurately represented as well.

[h2]Extension[/h2]
[previewyoutube][/previewyoutube]
The same logic applies to 'Interception'. That means charging point-blank is now automatically shown differently than charging from further away. In the case of 'Knockback', we not only got rid of the 'Collateral' and 'Target' preset spots, but can also scale it up for AOEs pushing Targets outwards from a 'Target', 'User' or 'Cell' – or pulling them in.

All in all, we've made the system more stable and scalable at the same time. Even for simple AOEs, we're now equipped to represent all Combatants in relation to how they're placed on the Top-Down Grid. It's making me so excited – I almost forgot to talk about the catalyst that let me to revisit the 'Action Overlay' in the first place.

I mentioned the Counter, and the way we've reworked the way Combatants are gathered depending on their role within an 'Action'. The good news is: If you keep reading, you'll see a rough but functional implementation of Counteract. It's a Status Effect that makes a 'Target' – 'Collateral' or not – strike back after being hit.

[h2]Counter[/h2]
[previewyoutube][/previewyoutube]
Evidently, we had to consider cases where an attack hits from outside the 'Target's' own range. After rewriting parts of ORK's source code, we're taking that into account as welll. In other words: If a combatant is being shot from two cells away, they need to have a weapon with at least the same range equipped in order to retaliate.

Like Knockback and its abstract class 'Manipulation', 'Counter' adds a whole new dimension to the Combat. It's clear that we'll have to tinker with it over the next couple of months. However, we've effectively transcended the 1-Action-per-Overlay limitation. This opens the door not only for User->Target chains, but could also be refactored into User->User or User->Intervenor sequences.

With our new Ability and a faster, better stronger Action system, we can put our eyes towards the horizon. First off, we'll wrap up the last bits of ExtrapolAtion A. That means putting in the final two or three elements and testing it all. There's a bit of overlap between that and some of the new / reworked combat systems – so the road toward ANARCHY 0.2.2 is already paved.

[h2]CU soon[/h2]

I'll be out of town for a short work-trip until Sunday. This leaves about a week to polish Renaissance for its beta release around the end of next week.

If you'd like to help make ANARCHY a better game – you're more than welcome to participate. One way or the other, please accept my heartfelt gratitude for reading this lengthy post. I'm learning tons of new things each day – and I consider myself privileged to have you there.

Kissies and huggies all around. 🤗

much love
nory