Skip to content

ANARCHY

Renaissance

Greetings, friends of the sun! πŸ‘‹

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! πŸ‘“

Narrative

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

Trilogy

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.

PreParAdise

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.

Renovation

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.

Chaperone

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.

Persistency

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.

Identity

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.

Abilities

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

Adversity

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.

Bottom Line

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

ANARCHY 0.2.2

Chapters
  • Added πŸ“ˆ "ExtrapolAtion". Three years since Trachi.
  • Reworked "PostExcommunicAtion". Leads to ExtrapolAtion.
  • Reworked "Paradise". ImmigrAtion -> Glade -> Paradise North.#### Quests
  • 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.#### Areas
  • Added 🚞 "Wenger Sanatorium" These people are inSANE.
  • Added 🌲 "Paradise Glade" Was that here before?
  • Renamed "Paradise -> Paradise North" RenovAtion.#### Combatants
  • Added πŸ‘¨β€βš•οΈπŸ‘©β€βš•οΈ"Wenger Staff" Do I look like a receptionist?
  • Added πŸ’– "Field Companions" The more the merrier.
  • Adjusted "Helios" New Portraits & Sprites.#### Abilities
  • 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#### Items
  • Added πŸ›‚ "Visitor's Pass" He's in the Western Wing.#### Enemies
  • Added "Battle Ogre" Level 15???
  • Reworked "Ogre" Come here! πŸƒβ€β™‚οΈ#### AI
  • Reworked πŸ€– "Base Behaviour" Cleanse -> Provoked -> Purge -> Attack.
  • Reworked "Icarus" Doesn't attack targets < 30% HP.#### Variation
  • 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#### Achievements
  • Added "Renaissance" We go again.
  • Adjusted "Paratrooper" Rewarded after ImmigrAtion.#### User Interface
  • 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.#### Action Overlay
  • Adjusted "Combatant Placement" Top-Down -> Side-View coherence.
  • Adjusted "Timings" Faster, better, smoother.#### Savegames
  • 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.#### Miscellaneous
  • 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

ANARCHY 0.2.2

Chapters
  • Added πŸ“ˆ "ExtrapolAtion". Three years since Trachi.#### Quests
  • 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.#### Areas
  • Added 🚞 "Wenger Sanatorium" These people are inSANE.#### Combatants
  • Added πŸ‘¨β€βš•οΈπŸ‘©β€βš•οΈ"Wenger Staff" Do I look like a receptionist?#### Mechanics
  • Added πŸ”ͺ"Counter" Target retaliates (in Range).#### Abilities
  • 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#### Items
  • Added "Visitor's Pass" He's in the Western Wing.#### Variation
  • Added πŸ‘• "Nostalgia" Tick-Tock.
  • Streamlined "Item Slots" Character specific 'Item Types'
  • Streamlined "Fragments" Temporary Equipment#### Achievements
  • Added "Renaissance" We go again.#### User Interface
  • Adjusted "Combatant" Available in Battles & Conversations.
  • Ergo "Equipment" & "Inventory" Can now be changed everywhere.
  • Reworked Slot "Variation" Limited to display owned Variations.#### Savegames
  • Added "NPCs" Stores all Combatant positions & rotations.
  • Added "Save (Debug)" Temporary, maybe.#### Miscellaneous
  • Improved "Scene Transitions" Waits for Camera to be set up.

Technically

Hey friendy-friends!

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.

Visualisation

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.

Portrayal

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.

Abilities

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.

Problem

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.

Setup

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.

Static

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?

Trigonometry

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.

Extension

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.

Counter

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.

CU soon

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