Learn You a Game Jam - Day 6 At Work Thoughts


Ok, so was having issues with colliders before I went to bed.  No combination of collider layer settings was working, and the best one still had the MainTank pushing past the Slime's Zone of Control collider into its Core Collider.  Turns out the ZoC needed to be a Static body not Animatable even though it moves around with the parent... that seemed right when I was making it, but I let the tool tip descriptions lead me astray.

At this point the slime works as intended.  I am going to need to restructure the Character scene a bit to account for how switching classes with item swaps is going to affect things like MaxHealth and CurrentHealth and Type base stats vs character stats vs stats bonuses from item/effects.  I'm sure there will be a ton of other improvements that need to be made to it all.  All can be worked out...

As, in addition to the "puppet" CharacterBody that the Type scene will be controlling, I think the character should also have RayCast directional sensors and a basic list of other Characters for the Type and Item to pull from: their relative relationship to the character like distance and threat and friend or foe and the MainTank tag, which the Slime is going to need to use for instance.

Actually, the GameManager could keep a "Neutral" GameManagerCharacterList of characters, and the TypeCharacterList  (a list the Type node/individual character has of all the Characters) will have the same list but with the information from the Character's perspective.  Threat is a great example, becaue the GameManager won't know that, the character will have to keep track of its personal threat level with each other character on its TypeCharacterList.  Since different types are going to need different things on this list, the GameManager keeping a master neutral list to poll to create their Type lists seems like a really  good idea.

Getting this right means I can have massive battles with characters acting on their own but responding in general to what the player does... it all depends on how I code the Type behavior and the item and the options it gives them.  So, if an OffTank needs to pick up a loose mob, it does so because that's how the OffTank Type works. - assigning a higher threat to mobs not targeting the MainTank or and OffTank.  The OffTank type will have a list of Characters, but its list will be concerned with what enemies it should be tanking, which characters it should be protecting, etc.  The Item type will inform this, as a "Slayer for the Innocent" OffTank Item might give a multiplier for the threat if the Monster is attacking a Priest, where the "Lieutenant's Broadsword" would give a threat bonus to minor Monsters "overattacking" another tank so they can peal them off.

Reacting to the game stat, and in particular the MainTank, but largely independently of command.  Then I can add some basic commands from the player that the Characters will respond to depending on their own type behavior.  Like a "Form Up!" button that will have the Guildies more or less stop what they are doing... if they can... and run to their assigned formation locations relative to the MainTank.

The Type will have information on what to do when it hears the Form Up! signal from the MainTank.

Speaking of which, I'm ready to make the MainTank a Character... I think its just going to be holding me back  not to use the Character type for ALL characters.  Which means I need to make an Item for it, if only to give it the MainTank class.

First Item!

Also think I need to have two basic and one optional physics colliders for Characters.

Core- a small circular collider that masks basically everything, is the smallest a character can be.  Friendly Characters will be able to crowd each other more because they only mask each other's Core.  This is the collider for the CharacterBody2D and is not part of the Type, but can be changed by the Type on Type Initialization (only function is switching to Slime at the moment, but its there!)

Body - a collider that represents the physical body in the game world for enemies and items.  This is what block Foes and the body that takes damage and picks up items and anything else the character needs to "touch" to do.

ZoneofControl - An optional collider that extends the physical boundary of the Character without extending its damage/pickups/touch "body".  I'm thinking of Pikemen specifically.  Foes can't go past them, but don't want that blocking collider to take damage like the Body.

Also, Friend and Foe is a relational designation that will be kept on the TypeCharacterList, where as Affiliation (Guildies vs Monsters)  is an absolute designation that is kept on the GameManagerCharacterList.  When the TypeCharacerList poles the GM list, it will use the affilation of the Type's Character and the GMLists's Character entry's affiliation to make its own determination of Friend or Foe for its own TypeCharacterList.

Get Guildies

Leave a comment

Log in with itch.io to leave a comment.