Wednesday, 28 August 2013

Wednesday Progresso

Pretty Good Day

Only about eight hours today but got some nice things done. In a nutshell I decided to add the ladder animations to the state engine database which is now part of the main animation system, and then integrated it into the prototype replacing the hacked version. Works much better and I am confident about it's use in the wider scenarios too so I am very happy to have put that to bed.

Our enemy can't hide forever...the little scamp!

I also added melee combat to the system so that if the player is within 150 units of the enemy, they will charge at you at high speed and swing for you! If they are REALLY close or you are ducking, they will give you a nice boot kick to let you know you're in danger.  Adding this relatively small function improved the combat system by 200% it was so freaky cool to see!

The final task was to clean up the whole module and get it so no rogue globals were being used. This task due to the fact I could break the code in fifty different ways from Sunday was a perilous task but with careful coding and constant testing it went well.

The absolutely final thing I did before this blog was to separate out the assets used in the prototype into what I call the PrototypeArt folder, which is a common folder in the main part of the software. I then recreated the AI prototype as a project as part of the main engine and transferred all the data structures to the main type file.  What all that means is that come Thursday I will be able to integrate the AI components into the current terrain + physics prototype (or create a new terrain + physics + AI prototype just in case I want to work on physics without loading in all the AI stuff).  There are some extra things I want to add to the AI system like spot effects (i.e. character running from A to B while strafe firing the players position, e.t.c.) but I can add these once the main visual demo is up and running, and the light weight AI prototype remains alongside for fine grain AI work.

Signing Off

Mark is plumbing away on a new weapon and the actual 'combat super building' that will feature in my AI demo, and hopefully I can reveal some sneak peek shots of that art when I get it.  The plan is to move my placeholder art into the AI demo and then replace it all with final artwork as it comes in.  Fortunately I already have finished sand bags, boxes, concrete barriers and characters so we should have a mini-visual fest in a few days time.  The meeting and the deadline for the AI demo is Monday, and I plan to work the weekend to get as much done as possible so there might be a rare weekend blog if the visuals start coming together at that point.


  1. I see a lot of work is being done for the enemies which is awesome! But what will happen with the characters we wish to make neutral or cowardly? Even though they are least important its something to consider. Here are some examples of some AI drop-down option:


    Governs which team(s) the character is aligned with as ally, neutral or enemy with.

    0 Player
    1 Team 1
    2 Team 2
    3 Team 3
    4 Team 4


    Governs who and when the character attacks.

    0 Unaggressive - Never attacks.
    1 Aggressive - Attacks Enemies on sight.
    2 Very Aggressive - Attacks all visible Enemies and Neutrals.
    3 Frenzied - Attacks everything.


    Governs whether the character assists Allies in combat.

    0 Helps Nobody - Doesn't help anyone.
    1 Helps Allies - Only helps Allies.
    2 Helps Friends - Helps all Friends and Allies.


    Governs how likely the character/creature avoids/flees from threats.

    0 Cowardly - Avoids/flees. Cowardly actors NEVER engage in combat under any circumstances.
    1 Cautious - Avoids/flees from threats unless the character is stronger than them.
    2 Average - Avoids/flees from threats that are stronger than the character.
    3 Brave - Avoids/flees from threats only if severely outmatched.
    4 Foolhardy - Doesn't flee or avoid anyone.

    1. @lee
      hello great work with melee attack! my compliments!

      @ tyrone
      i would add one option to enemy AI:
      -Friend until attacked: enemy is in UNAGGRESSIVE STATE until is shoot, then if it's not dead it attack player (or the attacker if wasn't the player to shoot)

  2. yep I agree Juir, I think even if a character is set to Ally and is attacked several times he then either switches over to neutral or even enemy. So basically he leaves your service.

  3. I wrote more detail here