#Miter: Joyn and the Bandit's Bauble Dev Log

1 messages · Page 1 of 1 (latest)

ashen tulip
deft crown
#

neato

ashen tulip
#

It was a pain in the butt, figuring out a good way to resample a Navmesh Path's points to create a smooth line for shrinking/curving. What I ended up doing was using a spline with auto-handles with knots spawned at NavMesh corners, and sampled that curve with a length*subdivisions calc to decide how many vertexes a Line Renderer spawns and assigns to the line

acoustic hemlock
#

is this using that experimental spline package?

ashen tulip
#

Unity's splines aren't very pleasant to work with yet, but they're not unpredictable, so good enough for what I need.

acoustic hemlock
ashen tulip
#

It took me a WHILE to figure out that the reason my splines were all fucking up was because knots can only be defined in local space

#

forcing you to do an Inverse transform point with the spline container's transform

acoustic hemlock
#

Here's to hoping it's API gets more developed. Right now it seems to be best suited for in editor stuff

ashen tulip
#

yeah, it's honestly really sad that it doesn't have a lot of the basic functionalities

#

if there was ANYTHING I would want from Unity's Spline's package

#

it would be a Bendy-Bones implementation

#

I rely on Bendy Bones for all my Blender rigging

#

but the issue is that Bendy Bones are strictly spline based, and ergo cannot be imported into Unity

#

I would try implementing something like it

#

but I genuinely have no clue how to even begin on a project that monumental

ashen tulip
#

I now have an "Action Block" for walking
which is basically shorthand for all the parts needed to make a character walk are now boxed up in a Statemachine thingie that I can plug into it.

ashen tulip
#

After a lot of work, Impacts now work correctly! I'm using a dictionary of Colliders to map to items in the scene for speed, and using a Kinematic Rigidbody Trigger to let items detect when they touch one another without useless physics calcs

azure hemlock
#

This drawing NavMesh paths is so cool! Do You plan to share it in some way? github / asset store? I'm trying to make some people walking system and this is exactly what I would like to achieve.

ashen tulip
#

I'd have to figure out how to trim it down into its more fundamental bits, though, so it's reusable for other people's projects.

ashen tulip
#

This code uhh... Isn't very good, lmao, so you might have issues with it. Just use the prefab in there. I've stripped out the materials, so it's just the pure code and the empty prefab that shows how it's all put together.

acoustic hemlock
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/746044157197549588/1251541457118953524/HeftCritMightDamage.gif?ex=666ef44f&is=666da2cf&hm=5dfa0fa1276555a3b3f33044352812a23b0da285b53b0b424bfbcccc2df74dc5&

Might Damage and Heft Crits are now implemented in the game. If your weapon is moving "down", Heft Damage is doubled, and is already based on how fast the weapon is traveling, while Might Damage does not care about speed, and is purely based on your character's Might, and the weapon's Might.

All damage, meanwhile, is decreased by half of the enemy's Heft and their item's Heft.

ashen tulip
#

Ooookay, so
Now there's an indirect layer between animations and the animancer component
letting me inject more logic and control into it
Specifically, now all animations are contained inside a "CombatTransitionAsset"
and all animations are played by ordering the CharacterAnimationManager to do it
instead of directly interfacing with the animancer or directly using animancer transitions
There's probably a way I can make a derived class of the animancer component and its transition assets
but to be quite honest, I don't understand Animancer's source code nearly enough to muck around with that.
I also implemented Layers so now animations can be set to the upper body only, or the lower body only
and I found out Layers can be set to Additive
which is handy, since it means I don't have to fuck around with Mixers as much
I can just add a "Styles" layer
I think next goal will be to ..
Collate item stats, so we'll start with Grace, since that's the easiest.
For right now, I'm not going to implement the special logic
it's just going to take all the items Grace and add them up
Either way, happy with the progress I made today. Foundations are set up and ready to expand later as needed, when it comes to the animations system.

#

Miter: Joyn and the Bandit's Bauble Devbloggish thing?

ashen tulip
#

Okay, so, today's progress:

Characters can now calculate their derived stats (Attack and Movement speed for now)

Items can now have a lot of math done to them to collate their stat data in various ways, (So I can now "add" items together, to get their collective stats for various purposes)

There is now a "Character Helper" static class, for holding the various functions I'll be using to update and modify character stats.
https://cdn.discordapp.com/attachments/1107907060751945768/1252295473189097663/image.png?ex=6671b28b&is=6670610b&hm=bee8771ca9b6000c0ce65783ac0db4ad3597ecac45d0cdd3a67483606e76a161&
Tommorow, I'll work on making it so when you perform an attack, the animation speed is multiplied by the character's attack speed.

ashen tulip
#

So, today's progress:

Attack Animations are now slowed or sped up, based on the character's Attack Speed, which is currently based on the Heft and Grace of all their equipped items. (Heft slowing down animations, while Grace speeds them up).

It's just a flat ratio right now, but later on in development, I'll be able to do playtesting and implement more nuanced math for calculating speed bonuses/penalties.

Tomorrow, I'll work on making it so Items activate their Hurtboxes only during an Attack Animation, and deactivate them otherwise.

ashen tulip
#

Today's progress, items now only switch into "active" mode when an attack is performed, and switch back to inactive when the attack ends. In this gif, whether or not an item is "active" is shown by the wire spheres attached to them. Red is active, and capable of damaging, yellow is inactive.

Additionally, I fixed it so items can only inflict damage on items with a different owner than themselves, so you can't hit yourself by mistake. (...For now)

https://cdn.discordapp.com/attachments/1107907060751945768/1253022034661736469/Attacks.gif?ex=66745735&is=667305b5&hm=c35724fc91e99b546a83b9248280b81e547e64eedb55c4ede56021dafa3afc95&

acoustic hemlock
#

I like the shading style you've got going on

#

heh, shadestyle shading style

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1254845008830533683/Splawning.gif?ex=667af8fb&is=6679a77b&hm=2690ac5b5785bbb7b59b996c0a128ccc6c5a25eaf6ba25d4ae1caa7e70f30e0f&

Team Spawning now works correctly
How it works is, each spawn point has a Spawn Module which decides how it interprets the team
In this case, the first spawn module I've created is a Spline based spawner
which lets me make the spawn point a spline, and spawn characters along it
The next one I'll do is a fixed point spawner, which just spawns characters at fixed points, obv

ashen tulip
#

Figured out how to turn (flat) Unity Splines into polygons, which will be very useful later on.

ashen tulip
#

So, yeah, tommorow's goal will be something that takes a mesh, and uses it to spawn characters "Randomly"

ashen tulip
#

Ooookay
I didn't manage to get the spawning stuff set up
BUT
I cleaned up my big fuckup
so now my custom State Controller can take both immutable BaseState Templates
but it can also take custom, non-Scriptable Object classes
so long as they implement IBaseState
Thankfully, I didn't make much content yet
so it wasn't too painful to just
switch the controller to use a list of IBaseState instead of BaseState
Just had to fix some errors.
So now, when I get around to implementing custom actions
all that needs to be done is to make characters capable of holding both templates, and a custom state type

ashen tulip
ashen tulip
#

Aight, so
I've completed the rough skeleton of the turn-based part of the game
It isn't functional yet, so tommorow, the first thing I'll handle is getting one of those animations I downloaded put in, as an "Intro Animation"
and get the Intro state working
Everything that can take a turn implements the ITurnTaker interface
and a manager collects all objects that implement it at will
So all the rough bits are there
now it's just a matter of adding the functionality
I've downloaded some vile artefacts in preparation for this

ashen tulip
#

I literally breathed a sigh of actual relief in real life, seeing this.

The developer of the retargeting software finally managed to figure out what I was doing wrong, so I could fix the issue.

As it turns out, the Retargeting Profile does not update with your settings until you re-import the rig, so it looks like it's set to the correct bones, even if it's set to the entirely wrong ones, and there's no indicator of this, or warning.

I'm just grateful that the developer of Retarget Pro was so patient with me and willing to help.

https://cdn.discordapp.com/attachments/742628443006566510/1257021425597022241/Finally_Working.gif?ex=6682e3ee&is=6681926e&hm=18b2c1f81541e12783296474c1f1051a844eaac9cd586063af43ca02846dc5f2&

ashen tulip
#

The gist of it is that Intros are just like
they're literally just an action block under the hood. So the character automatically "chooses) the intro action, and the intro action has an End-turn baked into it, so when it finishes, it just has them give up their turn to move on to the next character.
And when the total turns is higher than the amount of characters, it ends the intros

ashen tulip
ashen tulip
#

Okay!
The game now officially has Action Points, and you can only use actions if you have enough AP.

ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1258881936886337716/image.png?ex=6689a8aa&is=6688572a&hm=f2295758610f51d84b844c818a48b0e92cc79eb70493c0f671d4a18958641a24&

Okay, so
The character brain can now randomly choose which Targeting Module it will use, with weights guiding which one is chosen.
These modules can then iterate over the list of all ITargetables in the battle, and return a given targetable object.
So in other words, enemies can have multiple things they would prefer to target
like Allies nearby
Enemies far away
characters that are wounded
ect ect
and they will randomly choose one of those types of targets to prioritize
and then choose a character who fits that target preference.

ashen tulip
#

Okay!

Now AI brains can have a "Goal" which contain two main parts.

A Target Module, which decides who they prioritize the most, as targets, and a Preference Module, which decides what actions they prioritize the most to use.

Next goal, I think, is to figure out a good way to mesh these two together, so the AI picks a list of targets it wants to target, and each target has a list of actions it would prefer to use on them.

https://cdn.discordapp.com/attachments/1107907060751945768/1259259520513998972/image.png?ex=668b0851&is=6689b6d1&hm=62f9cdea4a8d7dafe86c184c2fe7178c405a6e93f3c682fd70ccdeafa6885e58&

ashen tulip
ashen tulip
#

Okay! This is looking pretty good!

So the gist of it is
This VERY basic script does the following:
Make a list of all targets in the scene, and sort them by how far they are from the user, with the furthest target being first, and the closest being last.

Give each target a weight, based on their position in the list. so the furthest target, CharacterPrefab 2, is given 4, then the next furthest gets 3, and so on and so forth.

HOWEVER, if the target is of the same faction as the user, and the action is meant to be used on enemies marked via the "For Enemies" tag, then it sets the weight of that target to zero.

Likewise, if the action has the "For Friends" tag, and the target is not a Friend, they are set to zero as well.
In practice, what this means is that this specific configuration of AI will randomly choose a target, strongly preferring targets further away, and ignoring targets that should not be afflicted by the user's chosen action.

https://cdn.discordapp.com/attachments/378632457823715332/1259376967275380766/image.png?ex=668b75b3&is=668a2433&hm=6f1ad5939529e0fcccb175b49204f46c77f026fc6ffb40da64dadf01baaa0677&

ashen tulip
#

anyway, yeah
I still have a lot of tough decisions to make on the planning side
but the concept is there now, which means I can rest a bit easier without it haunting my sleep, lmao
mostly
I need to decide how exactly to structure all of this cleanly.
I'm thinking the "Brain" type will govern whether a character is Action Oriented or Target Oriented
I.E, the Brain type will start by creating a list of actions, or a list of targets, and then validate the other.
So one will target literally anything, and then make sure it has an appropriate action after the fact
while the other does the opposite, and will use anything in its kit, and then search for a fitting target after the fact.
Likewise, the brain type will probably govern whether or not weights are combined or randomized
I.E, if it uses all modules in it, and averages their weights together, or selects one module at random, and then uses exclusively that one.

ashen tulip
#

Instead of taking a break like I should have, I did this

Now there are two Brain Modules. An ActionerBrain, and a TargeterBrain.

Actioner Brains sort all actions by their favorite, then pick valid targets for those actions.

Targeter Brains sort all targets by their favorite, then pick valid actions for those targets.

To be honest, I'm still not sure this is the best way to handle this... But it does mean, for example, I can have an enemy who "Prefers to target anyone nearby", or "Prefers to heal", and it will dynamically fill in the details as need be.

https://cdn.discordapp.com/attachments/1107907060751945768/1259571236455973004/image.png?ex=668c2aa0&is=668ad920&hm=c9a4b07775019b78cb751a8fc65b415ea115280574d521d46d8cb2863bcfc48e&

ashen tulip
#

Hoooooookay... Finally done.

I now have two AI, a Target-minded one, that chooses any target and validates actions, and an Action-minded one, that chooses any action and validates targets.

They each have their own unique behavior, which is to create weights for actions and targets, and currently, they are set to never use bad actions on allies, or good actions on enemies.

https://cdn.discordapp.com/attachments/378632457823715332/1259601044397101096/image.png?ex=668c4663&is=668af4e3&hm=11c67f82c3c4ff815eaf80741efc0890b135630923de94b406214cd24854369f&

ashen tulip
#

Okay!
Good news!
My shitty pair of AI dummies can now successfully:

Make a strategy in which they rate targets based on how close or far they are from them, and rate actions based on whether or not they are attacks.
Use that strategy to randomly choose a target and an action, trying to ignore invalid pairs (No hitting friends, or healing enemies).
Make that random choice lean closer towards targets and actions that more closely fit the criteria they care about.
Tommorow, I'll see about making them actually USE the actions they have selected.

ashen tulip
ashen tulip
#

Okay!

I now have a thing in the Movement Action which makes it auto-cancel when the character hits zero AP.

Tomorrow, I'll make it so walking consumes AP as you walk, so a walking action can end prematurely if you run out midwalk.

Very short work day today, but I woke up tired, and consumed a lot of energy yesterday working on that line rendering thing.

ashen tulip
#

Okay, so, I ended up doing some work today...
Now all characters regain AP at the start of each turn.
They regain their Max AP, minus 2, (minimum, 2)
so if you have 10 AP, you regen 8 per turn, and if you have 1 AP, you still just regen 1 (2) per turn
Now to take a nice long break...

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1261587262504833104/Snapping.gif?ex=66938032&is=66922eb2&hm=3b1db3945e2a7faf11a9564c934fd6e6037a7f76a675c239db0be33b9527b5b4&

Okay, so, I managed to get snapping working with minimal headache.

So now I can make a character automatically slide towards a specific position, but more importantly, they turn to face their target, and only move to a specific distance from that target.

It looks janky, but this is basically the "last step" in attack targeting, where the character is forcibly moved to where they need to be to perform the attack.

For right now, it doesn't take into account how large the target is, or what the character's attack range is, but I can easily implement those later, and will be putting it off for now.

ashen tulip
ashen tulip
#

I finally did it. AI agents can now choose a target, then, depending on how close they are, either snap to the target to attack, or walk to the target to get into range.

If they run out of AP midwalk, they end their action immediately, which I'll need to work on at some point, since right now, AP is lost right when you first use the action, which isn't the right behavior, I feel. Maybe a "Cancel" action that refunds the first-blush cost?

ashen tulip
#

The question now is... What should I work on next? There's a lot of options here...

ashen tulip
ashen tulip
ashen tulip
#

I don't have any pretty pictures for you today, but I did get a lot of work done. Subobjects are now a thing, and they implement the various bits and bobs that were previously restricted to items with only a single "component" to them.

Tommorow, I will be reworking the Template Builder, so it can generate limb offsets for subobjects too. So like, it'll let me hand-place items and their components in-editor, set what limbs they're attached to, and then print that to a data block for reuse later when spawning those items.

ashen tulip
ashen tulip
#

For my Break Day, I made a major breakthrough for my game's graphics. Namely, I figured out how to emulate the "unrealistic" shading inherent to good pixel art. By subtracting View Space Normals from World Space Normals, the result is an object whose normals act as if the object was completely flat, and without any shading.

By modulating how strong the effect is, I can make an object have "flatter" shading, which helps preserve details and draw the eye to features and textures, especially on the faces of characters.

Just look how fucking sexy that left egg is.

https://cdn.discordapp.com/attachments/718664783699640361/1263618258121130025/WifSkin.gif?ex=669ae3b5&is=66999235&hm=2eb62d3a900ae3ad86756130b627dcb1fd01aeead2b13ad934cd534fa7f7dd8e&

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1263963151624568853/SubObjectsSpawnable.gif?ex=669c24ea&is=669ad36a&hm=8ed8ccc5ad1f733dedefccaa5d0f3cc071fb2f7c5f99bea3e18f983bb7d53c08&

Okay! Big step forward here. Now I can officially:

  1. Make "handles" for items that have subobjects. I.E, I can define where the pieces of an armlet should snap to, the pauldron to the shoulders, the arm piece to the arm, and the handplate to the hand, and their relative offsets. An item can have multiple sets of handles, one for each valid limb that it can be equipped to.

  2. Spawn items that have subobjects, and use those handles to correctly position them and snap them to the character's body, based on what slot it's equipped to.

#

This might seem overcomplicated

#

but it does mean I can let players wear pants on their arms if they really wanted to.

ashen tulip
#

Aight, calling it here for today.

I've added the core variables and structures I need to make all of this work, so tomorrow, I'll work on actually updating the cluster template builder to match.

ashen tulip
ashen tulip
#

I did manage to get a TINY bit of work done despite today being a break day.

Now, instead of equip slots being associated with a specific bone, equip Slots are associated with a "LimbEquipSlot" which contains a list of "Limbs".

So instead of the "arm" slot being associated with the "arm" bone, it's associated with an "Arm" Limb Equip Slot, which has information on all the bones that are part of the "arm".

This changes nothing, but will make it easier in the future to do shit.

ashen tulip
#

Okay, today's work is mostly done. I set up the skeleton of a limb system
I was waffling on whether or not to have it be a part of the normal Equipment System, or its own dedicate dthing
but I remembered the single responsibility principle, so I'm just going to make it its own system.
Tomorrow's goal will be to flesh it out and let there be like, limb slots and shizz

ashen tulip
#

Gonna take a break today, since I got the Limb Slots sorted out at 5 AM...

Tommorow's goal will be to make the Limb Prefab, and the first "Character" shape module. I'm thinking which "limb" a limb is will be driven by a Property, which is yielded from various sources.

ashen tulip
#

Alright, the limb system is another step closer to completion.
Got the limb slots sorted out, the limb prefab is made, and the Character Shape Module is made.
All that's left now is to futz around with trying to spawn limbs.

ashen tulip
#

So, I've basically finished work on the Limb Spawning system. Now, characters can spawn limbs, with appropriate lengths, and widths for their collider boxes, by measuring the distance between bones in a bone chain and using those as a basis to automatically generate a dictionary of bones matched to their basic proportions. It isn't perfect, but it gets WELL within the ballpark of what I was hoping for, for most cases.

It doesn't account for EVERY bone, but unfortunately, unity doesn't really have a conception of what a "bone" is, so I can't just use the children of a given bone to determine its "length" since many bones have multiple children, and thus, would get wrong results.

Still, it totally generates the limbs correctly now, as far as I can tell.

With all of that said, BEHOLD!

https://cdn.discordapp.com/attachments/1107907060751945768/1266315198323622002/image.png?ex=66a4b36e&is=66a361ee&hm=82f5c1594f5a3025017b38eacb7b464e1dab4c4bb913772e67223e6081db83fa&

ashen tulip
#

Next goal is a system to ensure that attacks actually HIT

So, basically, I need to set it up so that there are... two or so main things.

The attacker needs to know how big they are.
The target needs to know how big they are.
The attack needs to know what its default range is.
The equipment needs to know if it modifies the attack range.

The distance between the attacker and the target, when performing an attack is:

1/2 Attacker size * Attack Distance + Equipment Modifiers  + 1/2 Target Size

I might modify this, but this'll be the gist of it.

ashen tulip
#

Miter: Joyn and the Bandit's Bauble Dev Log

ashen tulip
#

Aight
working on the Attack Distance assessment stuff
I've got a scene made, and a special object which can play every combat animation in the game in sequence
after that, I'll start working on the assessment stuff for them, which will involve using these little batons, which will basically be used to measure how "effective" each animation is with a given attack type

I'll do this by assessing two factors:

  1. Their distance from X Coordinate 0 (How close to the center they are).
  2. How far away they manage to reach on the Z axis (how far forwards they reach)

By assessing these two factors, I can essencially estimate how much range each animation will have with any given item. Right now, there's four attack types, "Punch" and "Swing" for Right and Left hands.

Basically be able to assign each animation a "preferred attack type", which is used for rangefinding. A sword slash will be reading its "Swing" value, for instance.

There's also a base distance, which i will calculate based on the distance the chest reaches from zero, which will infer how far the attack moves the character's entire body forward.

https://cdn.discordapp.com/attachments/1107907060751945768/1266738945518211114/image.png?ex=66a63e13&is=66a4ec93&hm=87d7adf955195149b84c431f815fd70bdc05c494bb7942b38c2822900943dbc6&

ashen tulip
#

Okay! The trackers now assess a few things.

  1. How far they are from an imaginary "center line" defined by the player
  2. How far they are forwards.

By subtracting their "distance from center" from their "distance forward", I can assess with fairly extreme accuracy just how far a hypothetical attack would reach for any given animation with any given piece of equipment, as well as a base value defined by the character's chest position.

Next goal will be to take this data and actually start shoving it into things. Namely, into the Combat Animations themselves.

The red sphere is the current "attack type" being tracked, and in layman's terms "The closer it is to the center, and the further forwards it is, the more likely it is to hit a target in front of you at a given range."

https://cdn.discordapp.com/attachments/1107907060751945768/1267052212765462539/HitRangeCalculator.gif?ex=66a761d4&is=66a61054&hm=52c27b1b2dbdc4821d445d0a66b2ca34c95fb8348c910374122d47f269246cfc&

ashen tulip
#

Okay, well, took a nap, felt better, and finished the Animation Calculation System!

Now I can iterate over every combat animation, and get the range values for all attack types and assign them to it in a convenient dictionary.

Tomorrow's goal will be to do something similar for items. Give them a value which represents their "length" for a given attack type.

https://cdn.discordapp.com/attachments/1107907060751945768/1267623279963799612/image.png?ex=66a975ad&is=66a8242d&hm=ec6689ada15dc5b2601bb03aaa2a8e8dc37f32c1a76ec24ae61b8b79b8d59994&

ashen tulip
#

Aight, finished some more of the setup stuff. So, basically, now the Item Length Assesser goes in and grabs all of the animation assesser handles, and basically copies them exactly to the item assesser, giving me a list of objects I can use as reference points for further stuff.

Hard to explain, but basically, I'll be taking these purple handles, and using them as Rulers to measure how long items are punchways, swingways, ect ect.

https://cdn.discordapp.com/attachments/746044157197549588/1268253804185260114/image.png?ex=66abc0e5&is=66aa6f65&hm=b9f87f6c3ac80b57236a6e6f3f26bb5f35ef45159903d9c809445e8722dcb4e7&

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1268567778600681585/image.png?ex=66ace54f&is=66ab93cf&hm=5c40e797bfed39df37c4277c3fe843cce885daf3cc71ebbe0fd55cfce3a467df&

It is finally done.

So, to recap.

  1. In order to assess how close a character needs to be to a target in order to hit them, various pieces of information are needed.
    -The size of the character.
    -The size of their target.
    -The distance their animation takes them when attacking.
    -The influence of their equipped item; How much range it adds to their attack.

  2. By taking half the size of the character, and half the size of their target, as radiuses, the character can be placed directly in front of their target.

  3. From there, the character is pushed further away from the target, based on how much "Base Range" their attack has.
    -(I.E, how much it moves their entire body forward.)

  4. From there, the character is pushed even further back, based on the type of attack they are performing.
    -Additionally, how much base-range the animation affords that type.

  5. Next, the range granted by the Attack Type is multiplied by the value of the item they have equipped.
    -I.E, an item with a "Swing Length" of 1 will result in 1 unit being added to a swing attack.


In order to calculate all of these variables, I opted to create a scene in which I can precalculate everything needed.

  1. Calculate base range by tracking how far the character's chest moves forward, minus how far they move to the sides. The max value of this is used as the range.

  2. Calculate attack type ranges by tracking how far various limbs move from the chest. The further forward, and the less to the left and right, the better.
    -Use offsets to account for different types of attacks. I.E, a Punch should be forward from the hand, while a swing is to the side of the hand.

  3. Calculate the length of each item, by raycasting from the "Attack Type" handle to each item, and using the point hit to find the "edges" of an item.

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1268839711007445104/image.png?ex=66ade291&is=66ac9111&hm=060fe7d3b9b9ace5a361ac6ade8ceb281fecde49e1014fc4942a41360fff611b&

Okay, item range assessments are now fully automated. Next goal will be to use all this new juicy juicy data to actually modify the distances that AI use to target their attacks.

But first, I'm going to take a genuine long break, at least tommorow and maybe the next day. This has been a pretty heavy-work part of the game, so now that it's done I feel like I gotta take a moment to decompress.

ashen tulip
#

Ooookay...

That was a lot of work, but I have refactored my Finite State Machine and all derivatives and all components of it to all use asynchronous methods, to prevent Race Conditions from ever happening again, since I can now just await any situations where it would come up.

Tomorrow's goal: Make characters spawn with brains.

ashen tulip
#

Aight, Characters now spawn with brains. A curious little fun fact though, is that it seems like characters are instantly dying on contact with one another, which is fun 🤡

So, tomorrow's goal will be to fix that.

ashen tulip
#

So, today's progress. Characters now have a "Defeat Condition", which evaluates a condition using an event, and when that condition is met, marks the character as Defeated. If a character is defeated, they end their turn automatically without doing anything. Tomorrow, I will add a special "While Defeated" action, since I want some characters to do special things while they're defeated.

ashen tulip
#

Okay! There is now a dedicated "While Defeated" action.

I did have a funny bug, I tried to just use the "End Turn" action for the default, but uhh...

...Enemies got back up after they died with that.

It turned out "End Turn" was set to reset characters to their idle animation, so uhh... I had to make a specific action for skipping turns that didn't do that, lmao.

ashen tulip
ashen tulip
#

A weapon... To surpass the Metal Gear...

https://cdn.discordapp.com/attachments/1107907060751945768/1272131964597698590/image.png?ex=66b9dcb7&is=66b88b37&hm=6f1d29afb34dd530a2beb717dcb551769e6b7003c857545a4f9b6da975e29b79&

Also, rangefinding MOSTLY works now. So spears position the character further away than swords, for example, and this is automatically calculated for every item in the game, for each limb they can be equipped to.

https://cdn.discordapp.com/attachments/1107907060751945768/1272158441137377290/Ranges.gif?ex=66b9f55f&is=66b8a3df&hm=b76d985f373fadcc63da87d045914d1f9e98f7658d524d81f1fb038e21dc790b&

Tomorrow's goal will be to adjust the navigation, I want it to be a bit more consistent, for a variety of reasons, so the plan is;

  1. Make a circle of eight valid points around a character being targeted, at the "snapping distance", in a circle.
  2. Evaluate the navigation path, such that a point is chosen in the direction of the second to last point in the navigation.
  3. Among the eight valid positions, evaluate which one is closest to the chosen point on the nav-path.
  4. Recalculate the path so it terminates at that point instead.
ashen tulip
#

Okay, so
Tommorow's goal will be to do something that's kind of hard to explain
Basically, right now, the issue with pathing is that the AI paths towards a weird, semi-random point around a character that it is targeting.
This is because the AI pathing picks the "Closest Valid Position" to where it is targeting
and the area a character occupies is not valid space
so when the AI says "I want to move to this character's position"
the AI navigation picks a spot close to that one
which, since there is a circle of valid spots all equally close to it
(Since the characters cut out a circle of the valid walkable space
it picks the semi-random spot
which is why the AI navigators are picking weird as fuck places to go to, like to the side of a character, or just straight up walking all the way around them
and it's not INTENTIONAL
So
the solution I've come up with, which is jank as fuck, is this
Turn off both the character AND their target's obstacle components. So they no longer "block" space.
Navigate from the center of the character to the center of their target.
Pick a point slightly backwards from the end of this path, like 95% of the way there.
Create a new navigation path which paths to THIS spot instead.
Turn on the target's AI blocking again.
Walk the character to their intended destination.
Turn off their Navigation AI and make them an obstacle again.
so the first path the AI calculates is literally just to get the "direction" from which the character will be approaching
so it calculates the path in order to find out "which direction am I going to come at this guy from?"
before using THAT to calculate their actual intended location.

drowsy peak
#

Keep up the great work! I love the style of this game so far!

ashen tulip
ashen tulip
#

Sorry it doesn't look more interesting yet

#

I've been focusing on pure code and only making assets when I absolutely have to

#

I have a lot of interesting models

#

but I haven't actrually implemented them

drowsy peak
#

Development takes time, youre doing the right thing focusing on mechanics first then polish later!

#

I think you'll do a great job with the level design

ashen tulip
#

Okay, so, I figured out what the issue was with the Dash Slash being offset wrong, I think what was happening is, it's measuring the furthest distance the arm goes from the chest, but not the furthest TOTAL distance.

So if you swing your sword really far,, then pull it back, then leap forwards, it will act like you have more range than you do, because at the START of the attack, your swing went really FAR, but, it went far BEFORE you actually leapt forwards

That said, I've fixed that, and fixed another issue where the Weiner horse's obscene punch range would mis-apply to attacks that didn't involve it.

So now, items that do not match the current animation's type grant a more diminished bonus to range. I.E, if you have a spear in your left hand, and swing with your right, the spear doesn't give you a weirdly wide berth just because it's flailing around off to the side.

In accordance with the ancient pacts, here's a gif of that in action.

https://cdn.discordapp.com/attachments/1107907060751945768/1273818312048119848/jumpy_boyes.gif?ex=66bfff3f&is=66beadbf&hm=bfca6b6d7e3a0cec37e9d94ed262c05d137484558ca6bfb611584c69937bb23f&

#

I think my next goal is to make the skeleton of a win/loss system.

I'm thinking the structure is...

BattleEnd

  • Type (Win, Lose, or None)
  • Condition (What triggers the battle to end?)
  • Result (What happens when the battle ends?)
ashen tulip
#

Okay
Got that sorted out
I can now officially end combat whenever I press the E key
at which point, the debug log will proclaim it for all to hear
(They keep fighting anyway 😗 )

ashen tulip
ashen tulip
#

Fuuuuuck me.

Tooday was so rough on the dev side, but I got it working. I can now go from the main menu to the battle scene, and the battle scene will wait for the transition to complete, before playing intros.

On top of that, my keyboard is fucking sucking, so I had to bust out the new keyboard I was hanging onto until I needed it.

Fuck, this thing is so weird. Gonna take weeks to get used to it. It's one of those fancy mechanical gaming keyboards. So clicky, so weird.

It even glows.

ashen tulip
#

https://cdn.discordapp.com/attachments/1275881104036991037/1278181338607915139/image.png?ex=66cfdea2&is=66ce8d22&hm=174c1ed3c3a15a052f676af1f3aa69c98330f225c0137d32beaa13b9bfbf40c8&

THERE IT IS!

Ya boy officially janked together an HLSL shader by butchering and frankensteining multiple other shaders together.

The gist of this is that I modified the Bitmap TMP Shader, to add an Outline function to it that uses Alpha Values to calculate a pixel perfect outline around any given piece of text using it.

ashen tulip
#

One more step towards glorious UI Heaven

ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1275881104036991037/1279152680853307495/TextTracking.gif?ex=66d36744&is=66d215c4&hm=30db892f8a86556f38028e5a56f0351bf89fa13052deabc371a45a18055e847f&

Every time something like this just WORKS without any fucking nightmares crawling out of the computer to torment me, I can't help but giggle like a fucking schoolgirl.

It just works. Every fixedupdate, the Dynatext updates its text element with the contents of a given variable, and since it's a Func, it can technically display ANYTHING that returns a string.

Only a psychopath wouldn't see this as useful.

ashen tulip
#

I don't have any pretty pictures to show you all today, so here's the code I made, instead.

https://hastebin.com/share/bugefaroya.csharp

#

I'm working on a system right now for making a drag and drop system that slides around and generally should look sexy as hell

#

I want those icons to have some HEFT

#

So imagine this, but there's like a dozen of them, and when you drag one, the others slide into position bouncily.

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1280712707875541074/BetterFrames.gif?ex=66d91428&is=66d7c2a8&hm=9b0e8eff192ade0e313d08af3279755a187a8c30f9d6855fcb3ab7f1f3b5e2af&

I got distracted making my UI better instead of making it more complete... I didn't finish drag and drop functionality today, but this looks so fucking sexy now, like, holy shit. It bounces, it flounces, it has sass without being as chaotic as before.

All algorithmic, too, so it's not like, hand-animated, or using tweening.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

I'm trying to decide if I should work on a Hexagonal Layout System (So I can have Hex UI Panels instead of like, a Grid UI)

Or if I should work on spreadsheet-style resizing, so the panels can be resized proportionally and do odd things like that.
The former is interesting and fun to think about, the latter is directly useful, but I can imagine it being a pain in the ass to set up the way I want it.
Thoughts?

ashen tulip
#

I am REALLY unhappy with how bad Unity is at actual pixel perfect text.

ashen tulip
#

https://imgur.com/UB9p5pb

Ten Hours.
That's how long it took me to finally make this work.

But now the work is done. And It will always be done. I am... Inevitable.

It is also 2AM... I'm so tired.

ashen tulip
#

Well, after a lot of effort and tutorials, I think this is as good as it gets...

ashen tulip
#

I KNEW IT
I FUCKING KNEW TEXTMESHPRO WAS CAPABLE OF IT
The EXACT resolution required, and all it took was even MORE fiddling with settings that are not at all obvious as to how to achieve the end result

God... It looks so gooooood, fuck. You cannot fathom the catharsis of finally having non-distorted, pixel perfect, absolutely pixel fucking perfect text in my game.

https://cdn.discordapp.com/attachments/1107907060751945768/1284747716215181332/image.png?ex=66e7c20d&is=66e6708d&hm=1c1dc152ede506c5071c23e03fdf2304d090b46e011110a1b0a164faae6c9b8c&

https://cdn.discordapp.com/attachments/1107907060751945768/1284747768224546896/image.png?ex=66e7c219&is=66e67099&hm=41e4170a324b58a691a83064d45eb17a8d5f4ff6d0e48f0d998345197d7ebcc1&

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

Character portrait WIP

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1287139118777761843/image.png?ex=66f07537&is=66ef23b7&hm=52eabc1a21762d9f5f1e18c0d47a521de579e6990410c7a2b5e2fa93e09ee2c7&

Aight, i'm going to call it here for today. I got a system made for opening and closing panels, so I can make the description box open/close at will, solving the issue of size, and I've blocked out the rough skeleton of what the team builder will look like.

The biggest issue right now is, god, making UI sucks, lmao. Half the work was just like, fixing a bunch of weird graphical issues with the panels from yesterday.

ashen tulip
#

Improved the Placeholder Golem Portrait.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1292795685166387210/image.png?ex=6705094e&is=6703b7ce&hm=c574409e2e35ee88eebe461c13c235946fea77d9f6f2b0d44aa6e3718a9a04d0&

https://cdn.discordapp.com/attachments/1107907060751945768/1292795691281682584/image.png?ex=6705094f&is=6703b7cf&hm=c2391ac21439742a436cab9a3ec69286aa12d34d7f4ed6765516c7d8c948ddc4&

Aight, so, not much done today, I optimized the SHIT out of some of the graphics so they didn't tank FPS as badly, and I'm working out the plans for the layout for the dual menu design I'm wanting.

In the end, I want to be able to switch from image one, to image two, and other such things, too. My plan is to make a "Dual Menu Manager", which can store and implement configurations like:

Left: Inventory
Right: Reserve Team

Left: Reserve Team
Right: Active Team

Left: Inventory
Right: Active Team

Left: Skills
Right: All Characters

Ect, ect ect

ashen tulip
ashen tulip
#

Aight, today's work was mostly preparatory. I added Sorting and Filtering to the Team Menu too, and set up all the Sorting and Filtering scripts to be able to be disabled, along with other stuff like dragging and dropping.

So tommorow, I'll work on making it so, depending on what menu is open, you can or can't drag and drop icons around. So, for example, you can drag characters around when in Party Mode, but not when in Equip Mode,

Still, got some good Icons made and shit like that. So now the Option Bar at the top looks a bit sexier.

https://cdn.discordapp.com/attachments/1107907060751945768/1293449498361598012/image.png?ex=67076a37&is=670618b7&hm=d7b2b3f4d147234424e726db1713a5307e70ece398f246a6045bea14199b5b8a&

ashen tulip
#

https://i.imgur.com/HV48GU5.gif

I'm still not completely happy with this. There's still a lot of bugs to fix, and missing features, but now the Active/Reserve team stuff works, and I've unfucked some of the code that ended up needing to be redone to fit my needs.

ashen tulip
#

https://i.imgur.com/XPWh3Wm.gif

Aight, smashed the FUCK out of some bugs, and cleaned things up a lot. Now item sorting respects clusterslots and all the stuff revolving around clusters, and some of the broken edge cases have been cleaned up with the rest of the dual-menu system.

I'm really happy with today's progress. Tommorow's goal is... Probably either more cleanup, or finally starting work on the item equipping system.

You guys's thoughts?

  1. More cleanup. Just boring code stuff.
  2. Better Aesthetics. Make it clearer when items are part of a cluster or not.
  3. Item Equip System. Barrel forwards with new features as fast as possible, and to hell with the consequences.
ashen tulip
#

https://i.imgur.com/cSZluD2.gif

Well, it was the coding equivilent of passing a kidney stone, but I finally got Equipment Swapping functional.

I grow ever-more annoyed by Scriptable Objects and their limitations.

ashen tulip
misty rain
#

love the art style

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1297975994459750450/Skillventory.gif?ex=6717e1d8&is=67169058&hm=bc88d89b5ccb6a7e09a383e384742ce67ff5b8088865e0dec90d458147243f07&

Finally making progress again. Feels good. Got the Skillventory working. Later, this will do some more complex stuff, dealing with like, assigning skills to characters, and populating the skill list with like, a list of all the skills all your team mates know or can learn and shit like that.

For now, though, it just works like an inventory, but with some template prefab skills as placeholders.

Thoughts on how it all looks?

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1298290611966967828/SkillAssignments.gif?ex=671906da&is=6717b55a&hm=35b655dece2bf2b9fcd50c50cf9b5a31ae1b5a94432b0511f38ec966ea49378e&

https://cdn.discordapp.com/attachments/1107907060751945768/1298291536672591873/image.png?ex=671907b7&is=6717b637&hm=0e68ac70be689f4f8bdc3130adca180b4b5d070655fd0df91a8fd8a5b7a89049&

Lots done today.

-You can now assign skills to characters
-Added some new skill icons, for Classless skills.
-Changed my color palette, (oooOOOoooh, scary) because the existing bright purple shade was pissing me off, so I modified my palette ever so slightly to make it sexier. So now purples should look better. (That old purple was just pissing me off so bad.)

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1300168432364556358/Trouble_Menu_Complete.gif?ex=671fdbb6&is=671e8a36&hm=d92dee2a0f9c1a842f2dd6ac494c3304be473050859396e7a9eb0cc96e371719&

In any case, the Trouble Menu is now complete! It currently lacks a lot of functionality, but the menu itself is there now, so I can build off it later. It displays a list of "Fightventory Entries", which each contain a list of teams involved in the fight, the scene it takes place in, its name, description, and its "Startistics" which are a subjective measure of the fight's Lethality, Puzzliness, Tedium, and Complexity.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1302827166689529928/JoynCarpentdottr.gif?ex=672987d9&is=67283659&hm=2cc45e01a4d6ac8a9ae4ada091afce86769e249545ce31944bf43bf5b1a4d9a4&

Okay, got the new Joyn Model in, and finished work on the new shader for her. I am really liking this "Ramp Swatch" approach, though I'm starting to see a lot of the cracks, in terms of getting it set up properly. I still think you could set this up to be mostly automated, but it would take a lot more effort than I'm realizing I might be willing to put in.

Thoughts?

ashen tulip
ashen tulip
ashen tulip
#

I am REALLY fucking happy with how they look, all set up and with their fancy shaders in-game.
It's really got that "Early 'we didn't know how the fuck to make this work' Nintendo DS Limitations" aesthetic.
I feel like the DS was one of the last game consoles where you saw the Artform of working within the limitations of hardware.

ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1303849762390413394/Scarecrow.gif?ex=672d4037&is=672beeb7&hm=35330c0ccf41b5256bc92af58eb044c1dc7a27c46011209285681247ac308185&

Aight, that makes six total characters that are actually imported properly into the game. Though, the scarecrow isn't finished yet, since they use special constraints/wiggle bones that need to be implemented first.

Any other characters I should add, or are we ready to move on to the coding stuff needed to turn these into fully fledged characters?

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1304151615279730800/image.png?ex=672e5957&is=672d07d7&hm=7085c4b278a45f2d76eb883d6d39790a49bcbfd17a3715855ed22dd800fcef0a&

Okay, step one is done. I can now iterate over every character model (that I provide the generator) and it will auto-assign them to prefab character objects, and do the setup so that the model is actually integrated with the character, in terms of like, variables and animation hookups.

Tommorow's goal, I want to automatically print the resultant characters to Prefabs in a special folder.

ashen tulip
#

Well, sadly, I was not able to completely rework my entire item system in a single day. So far, I've managed to get back to being able to generate single items. This new system, however, is a trillion times more modular. There is no difference between an Item, a Character, and anything else, other than what Modules are installed into them, and since all modules are stored in a single list, saving them to JSON becomes much more straightforward, since they will all be the same kind of entity, under the hood.

Need a character? Just plug Character Data into it. Need it to explode on impact? Just add the "Explosive Impact" property to it. Shit like that.

https://cdn.discordapp.com/attachments/1107907060751945768/1305082342292848640/image.png?ex=6731bc25&is=67306aa5&hm=cac357b64c7194601c0834a0a566709b5fb78f1f173704ed6ac76fe41deccfd6&

Tomorrow's goal will be spawning an item using this new system.

ashen tulip
ashen tulip
#

Aight, I've managed to fix every single outright compile error. Now I get to experience the delights of finding all the bugs I surely introduced from fucking up parts of basically reworking my entire codebase.

ashen tulip
ashen tulip
#

OKAY!

Automated Entity Generator can now, in addition to making items automatically:

  1. Automatically create a new character from a template
  2. Give them the appropriate Shape, Substance, Vitality, and Intent.
  3. Automatically give them Limbs and Equip Slots

and it can also:

  1. Read an entity's Shapes, Substances, Vitalities, and Intentions
  2. Turn those into a list of yielded properties from those Minutia, such as "Does Blunt Damage", "Has an angry brain" and "Is a physical object that exists"
  3. Turn those yielded properties into Data Plugs, for setting up the entity as an Item or a Character.
  4. Automatically calculate the entity's stats as an Item and/or character.
  5. Name the entity, based on what it is made of and shaped like.
  6. If the entity is a Character, automatically give them a list of possible skills, based on what skills their Minutia offer them, and then automatically equip those skills.

https://cdn.discordapp.com/attachments/1107907060751945768/1306093110857826376/image.png?ex=6735697f&is=673417ff&hm=fd509bb1dc6b4e0ae8ac1c44961e8eedb7da78b3b276e4914729d5279dbf02ac&

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1306140617021198377/image.png?ex=673595be&is=6734443e&hm=cd9f82a520b37147a60a1c65a7f5163150ce8ed96554c361737a1ffce4e616dd&

https://cdn.discordapp.com/attachments/1107907060751945768/1306140744783888435/image.png?ex=673595dc&is=6734445c&hm=fce9eb618e04c8da471b70732f763092f765659ecd13ce38e224f82d76ccfa4c&

Aight, I'm a LOT happier with this, now. The textures I use now look a lot more like the final result, instead of having to make the textures be ugly colors/shades in order to make them work with the new Swatchitizer shadercode I made.

Joyn, and behind her, the texture she uses, and a palette crushed version, for comparison.

ashen tulip
#

Okay! I have officially unfucked everything that was broken by the new RealEntity system (For the Main Menu, Inventory, and Teamventory systems)
Tomorrow, we begin the process of unfucking the combat system.

ashen tulip
#

Okay, today's work is done.
Kept it simple, all I did was make sure that the Fightventory Menu can still boot you into a new scene
and made a Fightventory Manager to hold a Fightventory entry, so the gist of it is:

  1. You pick a fight
  2. That fight is loaded into the manager as the current fight.
  3. The scene transitions, and the manager isn't destroyed when this happens.
  4. Combat starts, and the combat manager retrieves the current fight data from the Fightventory Manager, using it to initialize the fight.
ashen tulip
#

Okay! I finally unfucked character spawning.

The gist of the problem was, I was checking all the characters BEFORE they finished spawning, and additionally, I was giving characters limbs for every single equip slot, instead of only limb slots specifically.

Behold, Joyn and her Lumbering golems, currently performing the Player Brain's only strategy: "If it's my turn, end my turn."

https://cdn.discordapp.com/attachments/1107907060751945768/1307611267933929472/MagicConchWhatIsYourCommand.gif?ex=673aef64&is=67399de4&hm=3cf24de55c8bd6ae285112a9756b18b5aafd9327d58ffd31d8cd23756454e7e6&

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/746044157197549588/1309002810758791168/MoreSkillStuff.gif?ex=673fff5e&is=673eadde&hm=fdbf29afd23dc2e28e8f28051d8e94fecd378feef20e19bcc86d5a93595d10e6&

Another step forward. The skill menu now snatches up the character requesting the menu, and displays their skills accordingly. Tomorrow's goal will be to make it so you can select a skill by clicking on it, which will do various things, like display its description.

One issue is right now, Active Skills are held in a different category from Movement skills, which is not really dovetailing nicely with my current system, since I'm iterating only over the active skills, meaning Movement ones can't actually be included yet.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1311308573682438164/BarMaxxingComplete.gif?ex=674862c6&is=67471146&hm=23d8bcff81780f1e9f804f4c397c04a28d9321ac14e95ed0ce6617d27d799462&

https://cdn.discordapp.com/attachments/1107907060751945768/1311308574386950224/BarAndPips.gif?ex=674862c7&is=67471147&hm=891ece8aa7b152f3d16c371946d6b60e5cdb4c2fa2e5429e185562b2d160468f&

Today's work is finally finished! To Summarize:

  1. You have three stats, Elbow Grease, Pontification Points, and Attention Width.

  2. If the Pips for these stats is high enough that it would go outside of the box, it instead uses a bar.

  3. Pips and Bars can be either Filled, Empty, or Going (If you're about to use an action that would deplete one of them)

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1311583024063971388/image.png?ex=67496260&is=674810e0&hm=685f5f245bb3d1d8dd1568fb65eff1b83d427c58b75e4dee99ad562e3ea2b853&

FUCK

FUUUUUUCK

I finally DID IT

I no longer need multiple cameras to render a downscaled, outlined, color graded scene. I finished shadercode to do it all in one camera.

Before, I had to:

  1. Render the game at 640x480 in a "Pixel Camera"
  2. Print this camera to a Render Texture.
  3. Put an image of that Render Texture into a UI Element
  4. Render that UI Element in front of ANOTHER CAMERA, set to full resolution
  5. Render the UI to THAT camera, because only the main camera can raycast to UI automatically.
  6. Downsample THAT UI using a shader, because otherwise, the UI would not be pixel perfect with the downsampled in-game footage.

Now, by rounding the UVs, and doing some other tweaks, I can simply take one camera, read pixels with a rounded-off UV, then use that for outlines, color grading, and everything else.

You cannot FATHOM the catharsis of this.

ashen tulip
ashen tulip
ashen tulip
#

Final-fucking-ly. You would not believe how long it took to quash all the bugs involved with injecting player input into the existing AI driven attack selector system

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

Things on the docket for my game:

  1. Make actions display how much AP they're going to drain.
  2. Add more buttons to the button box (Like a dedicated "End Turn" button)
  3. Camera functionality, like snapping to the current character, and a freecam panning setup.
    3.1. Character Team Display, that shows a teeny little icon for all your team members and all the current enemies.
  4. Turn order Display system, that actually shows the turn order of the next 9 characters (and the current one)
  5. Automate Action Creation (So I can make a "Generic Attack", and automatically make an attack version of every animation, for example)
  6. More cleanup and polish (rearranging menus, adding doubleclick functionality to a few more things, and automating more things on the dev side)
  7. Experiment with adding a "Gun Bone" to characters, so they can fire weapons in their hands using animations.
  8. Make a "Movement Radius" that actually displays and limits how far you can walk, rather than just cutting you off midwalk when you run out of AP and instantly ending your turn.

Any of you have any opinion on which one I should do next?

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1316102263353249832/image.png?ex=6759d33f&is=675881bf&hm=0640d9bf119074f1235bf9d66ec9cf4c6539ac78fe210cdad0cb4bc8caeadb8a&

Bluuugh... Finally fixed a bug I only just now noticed, with the equipment system. Equipment is now fully functional (again...)

Basically, processing a character's modules was causing their equipment to get purged, because it was removing all of their equipment slots, and then deciding what equipment slots they should have and adding those based on what limbs they had-

-So, to fix that, I had to write some code that stored their current equipment slots to a buffer, and after processing, if they had the same limbs, it would re-equip the buffered items to those slots.

If you're wondering what her lefthand weapon is, it's a Weiner Horse Statue.

ashen tulip
ashen tulip
ashen tulip
#

https://i.imgur.com/SfSBbnr.gif

Sometimes, you have a moment in Game Dev that I like to call;

"It just works..? It doesn't explode my screen, or shoot acid in my eyes?"

I had that moment today, with making the camera able to follow a target. It's probably the single most cathartic feeling you can have in game development.

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1317615378230153258/image.png?ex=675f5472&is=675e02f2&hm=bcd7478a94ecea1af726b71ba821b54e4a204f966b7887890f32a4a3ffe65c02&

https://cdn.discordapp.com/attachments/1107907060751945768/1317616083225804872/image.png?ex=675f551a&is=675e039a&hm=79ba29df5e5d750b5c69d913250d580461e3712b7378da9820ad6d04d9c74ec0&

More work on the Rollercoaster Arena.
In order to ensure maximal viewing, several of these seating arrangements require the use of Science Whoomers to get up to.

The Science Whoomers, by whooming science into the air, are able to lift people up to their seats safely and efficiently, by directly bombarding them with highly scientific high energy particles.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

YOU'VE GOT THE TOUCH!

https://cdn.discordapp.com/attachments/1107907060751945768/1320180650522968104/image.png?ex=6768a98a&is=6767580a&hm=cf7a67c580e4dc8bc161edafca57468f036a05d619e84bbae29628253342e095&

YOU'VE GOT THE POWER~!

I'm so fucking happy right now. I now have a system that can take an FBX file, extract all the animations from it, turn them all into Animancer Clip Transition Assets, put all of those in my custom Combat Transition Wrapper, create State Machine Actions and States that use those, and use those to create Attack Skills out of every single animation.

100% Automated.

#

Like, this is such a huge milestone. I know it's overly technical, but it's huge.

Before, all the actions in the game were just like, placeholders. Handcrafted prototype actions for pure testing purposes.

Now, my game has what I honestly consider its first actual CONTENT. You can now attack enemies by doing the Griddy.

ashen tulip
#

Daily Unity Bitchfit:
I scrambled to try and fix a bug for like, an hour and a half
thinking I fucked up my skill automation system
because Characters would only T-pose when using any of the generated attacks.
you know what the problem was?
The character I made the animations on originally was named DefaultArmature.016 instead of DefaultArmature
so every single animation was incompatible with every single other character
I only found out thanks to Animancer's robust error-handling finally spitting out something that let me know that the animation it was trying to play had literally no matching bones on the rig (due to the root of the entire skeleton that everything else was a child of being mis-named)

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

Okay, no pretty pictures today, but progress nonetheless!

I now have a material manager on the characters too, and added a function to automatically find and cache their renderers, so I don't have to do that manually anymore. With all of that done, Tomorrow's goal will be the fun part.

I think it'll be to code it so whenever a Brute Impact occurs, it triggers the hit flashing on the object that was hit (Making the whole character flash, if part of their body gets hit)

Maybe I could use this to help with some of the debugging, too. Make it so if an entity takes damage, the hit part flash red three times, and if they get hit, but don't take any damage, they flash white once.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/746044157197549588/1324910048669077524/image.png?ex=6779de23&is=67788ca3&hm=511efb7b6b16e1f56d53fce54b57546127545a050d9fd49a52f42e2114e7e20c&

Okay! The Automatic Item Generator is now complete!

I simply take 3D models, plug them into the generator, and out comes fully formed, fully functional battle-ready items!

Tomorrow's goal will be to automatically take all of these new items, and automatically generate handles for them for all possible equip slots.

This will make it so the items are completely done with the pipeline needed for them to technically be in-game content with the push of a button. The only thing that would be left after that is to manually change their stats, hitboxes, offsets (for how they actually look when equipped) and valid equip slots (the slots they can actually be equipped to, normally)

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1325213015129198592/image.png?ex=677af84c&is=6779a6cc&hm=73c3e7733f9e43b02e023c8de82831101558d7687f86482f8d0dc8e652e0be37&

Okay! I can now, fully automatically, generate mannequins from items, equip them to all slots, and then assign them to all possible equip slots.

(I'll have to manually flag certain items as not being equippable to certain slots, and manually move them to make them look pretty, but other than that, it's fully automatic!)

So that means, using nothing but Item Models and the press of a (few) button(s), I can:

  1. Create Prefab Items ready for combat
  2. Turn them into Shape Modules to make items be shaped like them
  3. Turn them into template inventory items so they can be equipped
  4. Give them equip slot offsets for all possible slots, so they can be set up to spawn in various spots
ashen tulip
ashen tulip
ashen tulip
#

Am I insane????

I was like "Man, I'm way too sick to work on the game right now... BUUUUUT... I can at least boot it up and try to play out a full fight, just to see where it breaks, and what happens."

https://i.imgur.com/b4CFYS8.gif

The answer is... Nothing? The code is already made, and you can already fully navigate a full (albeit extremely primitive) gameplay loop in my videogame?

What the fuck. I literally do not remember coding this to make it work. I thought I was going to have to plug all the systems in together and fix the bugs from all the changes I've made to the characters and items and other systems...

Apparently, past shadestyle was like "Hope never rides alone, as long as we're here with it" and threw a light into the future for me?????????????????

ashen tulip
#

https://imgur.com/yPMAm0f

Okay, there we go! Fixed the transitions, turns out they were getting set to the wrong layer is all. So now we have a fully functional gameplay loop.

You pick a fight from the menu, go to it, win it or lose it, then go back to the menu. Primitive, but it works!

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

Okay, skills can now have what I call a "Hidden Item". This doesn't do anything YET, but tomorrow's goal will be to make it spawn when the action is used.

This is ultimately just a smaller piece of the Reactions system, which will involve spawning "items" with unique properties.

The idea being that you could learn something like "Blue Sword Shaped Energy Jutsu", and whenever you use it, a blue energy sword appears in your hands while you do the griddy or whatever other bullshit is set up for it.

https://cdn.discordapp.com/attachments/1107907060751945768/1330850705992450058/image.png?ex=678f7ace&is=678e294e&hm=abe1016cb3bd476acd5a13a9e115ade3290149eca3cf9330841ce031c623ceea&

ashen tulip
#

I'll be honest, today's a break day, mostly so I can contemplate what angle I'm going to attack the next task from.

My goal is to make a skill that spawns an "item" while it's being used, then deactivates it when it ends. This "item" uses the same exact system as the existing item system, the only differences are cosmetic, in most cases.

In essence, I want to be able to, for example, have a skill where your character waves their fingers, and conjures a "Mana Shield", which is an item with stats and properties and all that jazz.

What I'm beginning to wonder, though, is if I'm walking into a bit of a trap. I already have Characters and Items using the exact same code system, that is to say, all characters and items are "Real Entities", and the only difference between them is what modules/pieces are plugged into them. Characters have the "Is a character" module plugged into their Real Entity, while Items have the "Is an item" module, basically.

So what I'm starting to wonder, is if I should take the next step, and make it so Skills are ALSO "Real Entities".

This would mean, for one, that rather than skills HAVING items in them, skills ARE items, which, when equipped to a skill slot, effectively activate and deactivate themselves.

There's two main things that make me shy away from this, though.

There's a concept called the "God Component", which is something you should avoid doing, which is to say, you should avoid having one piece of code that tries to do EVERYTHING. This feels like a step closer to that.

The second thing is that this would involve another gut and rework. I'd have to gut the existing skills system, and rebuild it to use Real Entities instead. I did this once before when I was first making the system- I rebuilt the entire item and character codebase to use this new system I made, but it was a pain in the booty.

TLDR: "I'm thinking whether I should make skills use Lazy Jank or Overcomplicated Jank, and fretting over the downsides to each."

ashen tulip
#

https://cdn.discordapp.com/attachments/746044157197549588/1331633041210212382/bafkreidgl4yfn3cjxmsliaihnqkb3adrgo4va67xjgi7764vlmouoqzytu.jpg?ex=67925369&is=679101e9&hm=060796fe30380958e09da3dd1fc2da86b49af9abe99d369b8fc499f92a757eaf&

Okay! In THEORY, my entire skill system has been integrated with my item and character system.

So now, Items, Characters, and Skills are all just "Real Entities", and the only difference between them is what function modules are plugged into them.

Tomorrow's goal will be to see what lovely bugs emerge as a result of this...

ashen tulip
#

Okay! Combat is now working again!

Had to clean up a few final bugs that I created, ala Frankenstein's monster, but now we're good to go. Tomorrow's goal, however, will be to fix a bug I discovered by accident while setting this all up. So, one issue that's happening right now is, if you only have one action of a given type, (Like, say, you only have one Movement Type action) clicking that button is meant to just instantly boot you into the only action you have.

Makes sense, right? If you only have one attack, it makes no sense for the "Attack" button to boot you into a menu with only one option in it.

Well, there's an issue, I am pretty sure the game thinks right now if there's only one attack, it should boot you into the MOVEMENT option, no matter what.
So I need to poke around and fix that.

Other than that, really pleased, very few nightmares exploded out of my screen to torment me like Scrooge's christmas ghosts, or, for the nondemoninational among you, the Ark of the Covenant.

ashen tulip
#

Man, this goal is really ballooning out of control, lmao.

Okay, so, today's achievements;

Characters now maintain a straight up easy to access list of EVERY spawned item associated with them (I got sick of hunting for items in equip slots)

Equip Slots in the world can now support multiple items being attached to them (So in theory, if you don't want to duct tape swords together, you can just hold two swords in your hand instead 🙂 )

Items can now be associated with characters AFTER characters have already been spawned (Before, items were only spawned in the same pass as a character being spawned, so there wasn't any code that actually supported adding additional items after that)

The Combat Action for spawning an item now has code in it, it will spawn an item in a given limb slot, unless that item has already been spawned, in which case it will simply "enable" it. (I.E, make it visible again)

The method for spawning an item via a Skill is now written, and will also run any Spawn Definition Modules plugged into the item when it spawns them this way (So if an item has special rules about what happens as it's spawned, they'll be obeyed)

Of course, I feel kind of shit, because none of this has any visible results yet. I'm still working on actually making a skill that can spawn an item.

ashen tulip
#

Fuuuuuuuck meeeee...

...Okay.

We finally got it working, after about 3 hours of work

Jesuis fuck, Sooooo many bugsssss...

Fun fact: This entire time, items weren't even spawning. As in like... All items

They weren't actually spawning the items that were equipped. You know why?

I never noticed, because I only ever had one item for each template, but whenever you spawned an item, the template item stats on that prefab were automatically overwriting the stats of the item on awake

So if I had tried to spawn a sword made of 200% metal, I would have noticed earlier that something was wrong, because It would have been overwritten with the template sword on the actual object that was spawning.

Tons of other bugs too, but like, holy fuck, this one was rough.

https://cdn.discordapp.com/attachments/1107907060751945768/1334218423181250570/Sneakyswipe_Test_Complete.gif?ex=679bbb3c&is=679a69bc&hm=613945ddecbaf2e38a5789aa414cab7aed1f45b58e7a91611eb43dd7e03849c1&

But, after all of that, and the prior weeks of work on the stuff to build up to it, at long last, I can spawn and despawn items using skills...

ashen tulip
#

Okay! Laid out the skeleton and did the basic coding for the Reactions system today.

The gist of it is fairly simple. Each character has a "Reaction Manager". This holds a list of Reaction Holders.

Each holder has a Skill, and a Trigger. When the Trigger is triggered, the Skill fires instantly.

So you use the skill "Counterattack", which makes it so when your character takes damage, they whip around and pistolfuck whoever just touched them, as an example.

Things still on the agenda:

  1. I need to figure out where to put the second skill. (There will be the Skill you USE, that provides the UI and sets up the Reaction, and then there will be a second skill, which is what happens when the Reaction actually triggers. Not sure where to STORE that on the skill, though, so that might prove tricky)

  2. I need to make actual content. A generic Counterattack seems like a good start.

  3. Need to figure out a few dingleberries with the triggers themselves. I know I want to use Events, mostly, so that means some tricky bits of coding to make sure I don't add Memory Leaks to this soup.

https://cdn.discordapp.com/attachments/1107907060751945768/1335280957070114877/image.png?ex=679f98cc&is=679e474c&hm=8fbc43ef8dfdda37a8b76afd606ddc5ba7a09f5685fdaa2a201051a9cef7fe4c&

ashen tulip
#

No pretty pictures today, sadly, but I got a bunch of different shit done.

  1. There is now an "Overwatch" Trigger. If someone who isn't part of your faction gets too close, and you have line of sight to them, the trigger fires.
  2. There is now a tick rate thingie, so Triggers will evaluate whether or not to fire on a set timer
  3. Skill Entities now have a thingie to hold the Reaction Skill stuff they need, so it's all in one convenient place.
  4. There is now an "Actionflow" Manager, which later, I'll code it so it can freeze characters mid-action, when I need to.
ashen tulip
#

Okay, today's work: Made the Reaction skill. It currently brings up a menu asking you to confirm, which, when confirmed, ends the action.

Tomorrow's goal will be to add some extra functionality to that. Namely, when you use it, it should inject its Reaction into the character's Reaction Manager.

Recap on the general goal: I want a skill that, when you use it, sets your character up in a "Reaction" state, where they wait for something, like an enemy getting close, before using a skill automatically and instantly. This will let me do shit like adding Parry, Counterattack, and Overwatch actions.

ashen tulip
#

Today's completed task:

Tons of bugfixes with the new Reaction System and Overwatch Trigger.

When you use a Reaction:

  1. It will not trigger on enemies who are standing completely still and not doing anything. (You can't get Triggered by nothing)
  2. It will not trigger on said enemies even if your allies walk near you. (You can't get Triggered by nothing just because your friend walks by)
  3. It will not trigger while you're performing an action (You can't get Triggered midwalk and start doing the Griddy instead of walking up to your enemy to kill them)
ashen tulip
#

Okay... I think everything is working correctly now. It took all day, but I rearranged how I was handling the code to be much cleaner for Reaction skills being used.

Now here's what happens when you use a Reaction Skill in combat:

If it is not the character's turn, and they are idling, and nothing has the game frozen, like a menu or cutscene, do the following, a few times a second:

  1. Capture all colliders in a sphere around the character

  2. Use those to get a list of Characters who do not belong to the character's faction

  3. Iterate over the list, and check the following, Is a character:
    -A. Not defeated
    -B. Moving or Acting
    -C. In line of sight

  4. If all three of these conditions are met, Overwatch is triggered.

  5. If Overwatch is triggered, turn the character to face the target that triggered it.

  6. Play an animation of some kind.

  7. Yippee!

ashen tulip
#

Okay, I now have an effect that should swap an item's model and material after it spawns.

Tomorrow, I'll make an item to test it. Maybe a sword that's had its model swapped to a stick or something. Also, I think I still need to make normal spawning honor Spawn Effects, I think they don't currently, only special skill spawns do.

The purpose of swapping the model and material is so, when I make a Parry skill, it can spawn a giant spring, but swap the spring's model to a glowing star or some shit like that, so it looks like a special effect.

Small progress, but we're back in the groove.

ashen tulip
#

Aight, today's progress;

There's now two kinds of modules, Spawn Define Modules and Post Spawn Modules.

Spawn Define modules are the ones that override spawning behaviors, and are used for special cases, so basically, a module that says "No, this item spawns in your HAND, not wherever else it was"

Then there's Post Spawn Modules, which are the ones that just occur after items spawn in general. Both of these are ran after the item has been spawned, whether by a skill or by a character.

ashen tulip
ashen tulip
#

Okay, today's progress:

Mostly just reformatting. While it was a cool idea, it's kind of annoying having to jam item data into any skill that spawns an item, so I added an optional thing to just assign an item directly to a skill, to override that behavior and make it optional.

So now, a skill CAN be an item, or it can just CONTAIN an item, and either way works.

ashen tulip
#

OKAY!

At LONG LAST

After so much fucking bugfixing and fuiddly little bullshit bits of code interlocking together...

You can now do the world's shittiest "Parry".

Here's the gist of it;

  1. You use "Prepare Parry"
  2. Your turn ends instantly.
  3. An enemy walks within ten feet of you
  4. You instantly whip around to face them and use "Parry"
  5. A "Force Spring" with a star model spawns in your hand
  6. You do the Griddy at them.
  7. If they somehow get hit by the star, they go flying away.
ashen tulip
#

So, should Parry fire if ANYONE attacks near you,or should it only fire if they target you specifically?

I can honestly see it both ways. It'd be neat to set up parry near an ally, only for it to fire when an enemy tries to hit your best buddy.

Either way, today's progress is, the Overwatch Trigger can now be set to only fire if certain conditions are met, like the enemy attacking, acting, or targeting you specifically.

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1341963523940421714/Parry.gif?ex=67b7e86c&is=67b696ec&hm=cbc8431dc94d66d4959bf3ef4345d98199c610ebf624ab679d4c2b8b16ce5460&

Okay! Parrying now works exactly as expected. When you try to attack near them, they knock you the fuck back a decent distance.

The first time I tested this, it somehow glitched and knocked the dude seven trillion miles away, but I wasn't able to replicate that, and I wasn't recording when it happened, sadly... Ah well!

ashen tulip
ashen tulip
ashen tulip
#

Okay, today's completed task:

Items now track what limb they're equipped to, and update this at various times when it would be needed.
Limbs now track whether they're a Held or Worn slot, which will be used for a variety of things.

wise hinge
#

You're making really good progress

#

And I also really love the style of your game dude

ashen tulip
#

Hoookay... That sucked, but now, items that have special spawning conditions will still know what limb they are assigned to.

So, for example, skills that spawn an item, will have that item know what limb it is "equipped to", Which means now, all items should have the info needed to know if they're held or worn

ashen tulip
ashen tulip
#

Today's task completed:

Items that are equipped to a "handlike" equipment slot are now considered "Held Items", and when spawned, the item object is marked as "Loose".

Brute Impacts no longer deal damage when hitting Loose Items.

Tomorrow's goal, making a ridiculous held item with a massive hitbox for testing this.

ashen tulip
undone spade
ashen tulip
#

Just plop em in your character's skills list, and boom bam boom, they idle different

charred hollow
ashen tulip
#

It's a Strategy RPG

undone spade
#

I wonder if you could randomize the speed of the animation between certain range so it doesn't look to samey.

ashen tulip
#

Also, bonus fun fact
Cowering like a worm and swinging your sword desperately over your head is currently the most powerful defensive option in the game. I have not successfully damaged someone with a head on attack using that animation with a sword yet.

ashen tulip
#

Okay, today's goal complete:

I now have an object pooling system for spawning particle systems. TLDR: I can add more flashy stuff to attacks

ashen tulip
ashen tulip
ashen tulip
#

Okay, set up a system so I should be able to modify a Particle System mid-game, instead of needing one for each possible eventuality.

So like, I can change out the trail, the spinning particles, and the splashing particles to different sprites, and change how many and how big they are, during the game itself, based on stuff like damage or elements or whatnot. Should help a lot.

How's it look for a generic impact effect?

https://cdn.discordapp.com/attachments/1107907060751945768/1351481728866189382/VariableSplorts.gif?ex=67da88f1&is=67d93771&hm=cb04dc16144f7a5117795a15ad0130d2ddabaa812dbafa8fe984f4c6ee9bbc53&

ashen tulip
#

Been a while, but I've been working on the crafting system

#

Have some Gifs

ashen tulip
#

https://cdn.discordapp.com/attachments/1102728637104541777/1407918853769658451/inventory........gif?ex=68a7da1c&is=68a6889c&hm=7018501dcecca928c7007c843fad6a66d0bdfdcf6b656defacee02349e938e35&

So, after discovering Unity cannot be trusted, due to it gaslighting me for 14 hours straight, I have finally caved, and spooled up my own custom system, in which items in my game are assigned a random number ID between 1 and 999,999,999, which is used for comparison instead of actually...

Comparing the items themselves. Because apparently that just fucking does not work, when unity decides to secretly copy things without your consent, thus making unique instances that CANNOT be compared fruitfully.

My game's inventory menu will now update when you add or remove items to it, to actually show those items being added or removed. 🙂
have i earned vodka tonight yet

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

@mellow yacht moving this here to not clog up the other channel

#

But I did manage to figure out a solution. It's ugly, I don't know how it works, and it's janky as all hell, but hey, it works.

#
            Vector3 dir = (Vector3)InputManager.GetInstance().GetMousePosition() - Camera.main.WorldToScreenPoint(transform.position);
            float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

            transform.rotation = OrigRot * Quaternion.AngleAxis(angle, OrigAxis);```

By combining this with a section to find an object's current forward axis, and then inverting it if the object's side is facing away from the camera, I was able to get the proper mouse-to-direction movement I was wanting.
mellow yacht
#

I don't understand this but cool!!
I'll spend some time understanding the math of it if I get time 😅

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1411054072642928880/image.png?ex=68b34203&is=68b1f083&hm=235c9f70b8fb77c8ae2d316fdb1676f52e6d118c36a6cdf130293d3f6b5e9eb9&

Okay, here's what the automatic item spriting looks like in the current iteration.

It spawns an item, gets the average position of all its component parts, then moves the holder to that average position to center the item cluster

This is just step one, however. Step two will be to try and do a bunch more operations for beautification and making sure the item is fully in frame (Or close enough)

ashen tulip
#

Good news! I'm stupid! Instead of boxcasting via colliders, I should have been using Bounds, which are literally what I wanted, but better in every way.

Here's the updated LittlePicture generator for turning items into 32x32 sprite textures:

https://cdn.discordapp.com/attachments/1107907060751945768/1411163516332933171/image.png?ex=68b3a7f0&is=68b25670&hm=94f6dc7aa4f1275d6d26dbc9d7027697280ae527c98ecb0cd0f15f5c5786564e&

How this new version works is, it automatically gets the Bounds of the collective renderers/meshes, (The box inside which an object's mesh is rendered) and uses that to approximate the size of the item, which is then used to center the camera on it, and ensure the item does not clip outside of it.

TLDR: Instead of shooting cube lasers at an item to try and LIDAR how big it is, I can just ask unity how big it is, when trying to fit it inside a camera.

ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1102728637104541777/1411912648227815454/GellyAnims.gif?ex=68b6619f&is=68b5101f&hm=b5efe752a88c2399b516d0b9f4fc7c4c0353e96d42d5a0e6f00c721f1a2efab3&

I have a bonus treat for you all today. Since I'm planning on working on "Wacky Mode" soon (Retargeting animations to work with the "wrong character type", I made some models of weird bodyplans, and an animation for this Gelly one, to see how a two-bone skeleton might look in motion.

Also, this is testing live keyframing, which is basically just "You can make keyframes by dicking around mid-recording", which I didn't know about until now, and is SO much faster for animating.

Thoughts?

ashen tulip
ashen tulip
ashen tulip
ashen tulip
ashen tulip
stray surge
#

This is cool

ashen tulip
#

Hoooooookay

Everything is now fixed, with the new "Forefront" system that lets me move things around better.

So now, when you open a submenu for a character or whatever, it can move that character to the "Forefront" of the menu, giving you a lot more room to look at it properly.

and I fixed all the shit that broke with this, so you can still drag characters around from your active team to your reserve team and whatnot.

Does this look like pleasant UI to work with?

https://cdn.discordapp.com/attachments/1107907060751945768/1414345985269825626/Party_Menu_EX.gif?ex=68bf3bd8&is=68bdea58&hm=bbf42936ed3d2c99e8829e26a259a2fcc11ca4beec681d13c933f7d7599324dc&

ashen tulip
#

So, question for tomorrow:

For the Demo, do you guys want a Team Shop where you just splatter infinite units into your team at will, or do you want a line of NPCs who you can talk to to add or remove them from your team with little blurbs and whatnot?

Both are temporary measures, but I figure it's worth asking.

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

Okay, my game is now officially a barely functional mess, when I actually make a build of it!

Tomorrow, I'll do the final cleanup, and get you all a demo to "play".

Things that DON'T work:

  • Pausing only works on the first overworld screen. None of the others.
  • There's not code yet to stop you from making infinite Cluster Items. Not sure what side effects this will have
  • The game looks like shit. Currently unfixable.
  • The UI looks like shit and isn't pixilated, due to me having to turn off the pixel filter to make it work at all. Currently unfixable.
  • And many, many more!

As penance, have a gif that made me laugh in hysteria:

https://cdn.discordapp.com/attachments/1107907060751945768/1415538338949107742/Fuckittwenty.gif?ex=68c3924f&is=68c240cf&hm=e6721e3381b2c63cf632c5430ec498a1cff6426d6b18775957d4eb6e0af99f4e&

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1102728637104541777/1416669947442102343/MoveySpinnyCameraDealy.gif?ex=68c7b033&is=68c65eb3&hm=0428bb1e72fb25f5032bcbccfbcc56d5292176de141ec7f47d46974717e560a3&

OKAY!

So now the camera is fully fixed up. The Freecam toggle isn't really needed anymore, because now, the camera won't pan or rotate if you're dragging a gizmo or an item or whatnot. That was an issue some people complained about.

Additionally, I fixed an issue with pausing, and an issue with cluster items not activating when you swung em.

ashen tulip
ashen tulip
#

An IRL friend bullied me into it, so I released a bugfixed updated version of Miterworld to the itch, for whoever was playing the first buggy as hell version. I fixed the camera fuckery, building fuckery, a bunch of softlocks, the fucked graphics can now be turned off, and a bunch of other stuff.

ashen tulip
ashen tulip
#

Okay, here's what I've got so far, for the skeleton of the system. The TLDR is, that list of Skill Scroll Pieces should let you add "Pieces" together to make a custom skill.

Right now, the four types of Scroll Piece are Move, Attack, Kata, and Blend. The first two will basically give you the movement options and attack options you're expecting, while the Kata Scrolls will give you animations, and the Blend Scrolls will let you change how multiple animations are combined.

Example:

[Jump]
[Griddy Kata]
[Attack]
[Family Guy Death Pose Kata]

These four combined would make a skill where you pick an enemy, and griddy into the air and then drop down on them while doing the family guy death pose.

Next goal is actually implementing the functionality for these.

https://cdn.discordapp.com/attachments/1107907060751945768/1418350607797977196/image.png?ex=68cdcd70&is=68cc7bf0&hm=19d5897a68b8dc1f30c1b1667e329d6e541e611ffa287262db7042b0ae2190ee&

ashen tulip
ashen tulip
#

OOOOKAY, we've offically crossed the rubicon. I managed to get a fully custom action into combat, now.

So the next step is being able to build them. Currently, Custom Skills can only play animations and nothing else, but hell, that's good enough. We're officially constructing state machines from mutable bits.

In this case, I put three Animation/Kata Scroll Pieces together, and fixed the bugs so the animations would play one after another.

https://cdn.discordapp.com/attachments/1107907060751945768/1419365981234397294/InBattle.gif?ex=68d17f14&is=68d02d94&hm=ffb74e788c928b57c47e15053e1e92aa2908d76ed700d36b4ebeb3520149a5b1&

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1419480794707001405/image.png?ex=68d1ea02&is=68d09882&hm=d4ab935da8a49dac21eea2d3396120d6e955e06601107dce054c1bf565464669&

Third burst of soul power. Made an inventory of Scroll Pieces that can take in a Team of characters, and automatically mine their skills for Scroll Pieces (Even if their skills aren't Scroll Skills in the first place, through some code trickery!)

In English: I can now rip up everyone's skills and turn them into modular skill bits.

Things other than playing animations still aren't implemented, mind you, but we're on the right track.

ashen tulip
#

Haaaaaaaa...... I hate UI.... -But I finally got it fixed so it vaguely works.

I have to use DIFFERENT code to maintain the scale of content in a scrollable window, depending on if that content is horizontally scrolling or vertically, and I found that out today after... Three hours of throwing my head at why the fuck my UI wasn't working.

https://cdn.discordapp.com/attachments/1107907060751945768/1419702276867494050/image.png?ex=68d2b847&is=68d166c7&hm=aaea42df6923126b9c2e449f5fbee7c37efde57eba053bf78b56556661c2a893&

They don't have fancy graphics to distinguish them, but the Scroll Pieces are successfully getting loaded into the bottom bar.

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1420121103220736162/image.png?ex=68d43e57&is=68d2ecd7&hm=51916332ddc3f2d24551f5fc4884d333fea173cde029c83803ca54714726406e&
https://cdn.discordapp.com/attachments/1107907060751945768/1420121334834270359/image.png?ex=68d43e8e&is=68d2ed0e&hm=b494ac15d0d3e163f618a19344f1cb1afc27447c16c50ff7ec508d1b9fe0ed13&

Bam, Automatic Skill Icons. They're crude, but I can keep improving on them over time. I basically just print PNG assets of the halfway mark of every animation in the game, which gives us some variety. Later, I can improve it even more, but still, good enough for government work.

Also, a close up of the Boxing Idle, as an example.

ashen tulip
charred hollow
#

oooo it's getting along nice!

ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1421448637279506573/image.png?ex=68d912b4&is=68d7c134&hm=a7a43dc17604c126930528119e44db00c8faf976c3cc93cc5badc89e2da00f72&

Okay, you can now:

  1. Go into a Custom Skills Menu Scene.
  2. Drag bits of skills from every character in your team together, to mad-libs together a new, Custom Skill from the animations of other skills
  3. Put that new Custom Skill in a Skillventory of custom skills.
  4. Have that skill appear in your Skills Menu, so you can see and select it.
  5. Equip that Custom Skill to any character on your team.
  6. Have that character use that Custom skill.
ashen tulip
ashen tulip
#

Okay, two onion sandwiches, a two-liter of off-brand Mountain Lightning™ a Venom Original, a bowl of grapes, and a lot of me laughing and muttering "you little fucker" later...

https://cdn.discordapp.com/attachments/1102728637104541777/1422799740256518194/PREVIEWWWWWWWWS.gif?ex=68ddfd04&is=68dcab84&hm=829079b22b2b12aabb8fabaa2e15d60c4a48a6793ff2f5454988a24703bfc6f4&

You can now MAKE an attack, then have that attack WORK, and also PREVIEW that attack with a dummy (who I will replace with a goblin later)

One of the most annoying problems turned out to be a bug where if the character didn't have enough AP, they wouldn't actually walk in Preview Mode because they were too tired.

The ONLY reason I figured it out is because I spotted my Debug Log Text for when that happens, "You're outta here!"

needless to say, i am a very good programmers

ashen tulip
ashen tulip
ashen tulip
ashen tulip
#

https://cdn.discordapp.com/attachments/1107907060751945768/1425655689333706862/image.png?ex=68e860d3&is=68e70f53&hm=0a460fe347c6ab1c64c4e11543d792c6b7113d48b535f7d456360d5a78f4eda3&

Okay! I've officially fixed the issue, (Pic for reference).

So, now, the Brute Impact Effect only fires once per item, per enemy. So each item you have equipped can only brutally impact the first part of an enemy it touches.

What this means is that with your raw body alone, you can get a max combo of 6 Hits, (Each limb, your torso, and your head count as items)

This should help a lot with a bunch of stuff, honestly, the old code for detecting hits was... It sounded very elegant to my braindead past self when he wrote it, I'm sure.

ashen tulip
ashen tulip
#

Oh, also, note for those playing the tech demo: Basically, stuff that is still broken right now includes:

  1. The camera in Crafting Items mode is still wonky, I need to go back in and fix that
  2. Allies and Enemies can get knocked off the stage, which is a bit buggy
  3. [Motion] + [Strike] is currently the only working Skill Combo, [Strike] on its own just does the attack with no targeting.
  4. Pixelization is fucked, and mostly unusable.
ashen tulip
#

Okay, so, now there is an Aiming System in the videogame I'm making!

When a Strike Scroll is not paired with a Move Scroll, instead of giving you the option to pick an enemy and walk towards them to attack, it gives you the option to pick a direction to attack in, instead.

All that's left to do now is make it so AI enemies can use it too.

https://cdn.discordapp.com/attachments/862848449597931560/1458315268685303878/Aiming.gif?ex=695f316e&is=695ddfee&hm=8e3be223c705c8087f03f77040bf5103d78cb035e2c33612951cc5ff0b295fba&

twilit zodiac
#

pretty much 2 years of work and dedication

#

I am very impressed

ashen tulip
ashen tulip
#

It's tricky because even after all of that, I still don't have what I would call a playable videogame

ashen tulip
#

Okay, now when brute impacts hit an enemy, both you and the enemy freeze for a moment.

This feels like good feedback, considering it made me instantly hyper aware that the default attack whiffs its hit the instant it starts, lmaoooo

You can see he freezes the instant he starts to stand up, implying that the point where he hit the enemy was literally from his hitbox STARTING inside of them.

https://cdn.discordapp.com/attachments/1102728637104541777/1459383940392681533/Frozenbuh.gif?ex=696314b5&is=6961c335&hm=9fad1aa3d1c3e5e49865c165b4d5b9d59b69cb209cc4d8554a5116ca69385867&

ashen tulip
ashen tulip
ashen tulip
ashen tulip