AnnouncementsFunnyVideosMusicAncapsTechnologyEconomicsPrivacyGIFSCringeAnarchyFilmPicsThemesIdeas4MatrixAskMatrixHelpTop Subs
2
Comment preview
[-]x0x7
0(+0|0)
The dungeons are going to have parkour? Is it still going to be top down mostly?
I have 4 views in mind to make the experience. An rts view with a free flying top down camera, this allows you to select units and issue order, and that works ok so far. You can then possess a unit and take direct control, i currently have a red tint to my placeholder icon showing you what unit you would posses by middle mouse click, you can cycle through your group by hitting tab. The top down twin stick view would work well for shot gun combat and melee, however, i have a 3rd person over the should and 1st person view so help with longer range engagements and getting a better understanding of the environment. This lets me also have custom animations for those 4 views, so different styles of melee can be open to you if you are in the top down verse the twin stick vs the 1st person, same with weapon modes. Parkour is a catch all term for dynamic movements through space, vaulting over cover and rolling. Been lazy, was going to put in rolling yesterday but im doing that today. Both the movement and animation controllers use an interface that looks at the units stats key and see's what view mode you are in if you are driving it. Code example:
GameEnums.ViewValues viewValue = (GameEnums.ViewValues)userControls.GetProperty(ViewCounter.ToString());
animator.applyRootMotion = userControls.GetProperty(UseRootMotion.ToString());
switch (viewValue) {
case GameEnums.ViewValues.FirstPerson:
    currentStrategy = strategies["FirstPerson"];  // Switch to first-person movement strategy
    break;
case GameEnums.ViewValues.ThirdPerson:
    currentStrategy = strategies["ThirdPerson"];  // Switch to third-person movement strategy
    break;
case GameEnums.ViewValues.TopDown:
    currentStrategy = strategies["TopDown"];      // Switch to top-down movement strategy
    break;
case GameEnums.ViewValues.RTS:
    // RTS view might disable individual puppet movement or use a different mechanism
    currentStrategy = null;
    return;  // Skip further processing if RTS mode doesn't require individual movement updates
}
then i can do specifics in the following example:
public interface IAnimationStrategy {
void Initialize(Animator animator);
void UpdateAnimation(Vector3 movementDirection);
void Cleanup();
}
public class ThirdPersonAnimationStrategy : IAnimationStrategy {
private Animator animator;

public void Initialize(Animator animator)
{
    this.animator = animator;
}

public void UpdateAnimation(Vector3 movementDirection)
{
    animator.SetFloat(AnimationProperties.UpDown, movementDirection.z);
    animator.SetFloat(AnimationProperties.LeftRight, movementDirection.x);
}


public void Cleanup()
{
    animator.SetFloat(AnimationProperties.UpDown, 0);
    animator.SetFloat(AnimationProperties.LeftRight, 0);
}
}