Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Like in the game Crypt of the Necrodancer, this game has a rhythm timing aspect to it.

  • This means the player doing actions like moving and attacking is checked against A “True/False” Bool that switches on and off to the beat of the music playing.A “True/False” Bool Check will be done via playmaker and handled by a playmaker state machine and the bool is exposed via a playmaker bool global variable.

However: Our game is going to be more forgiving then Necrodancer from a design sense in that:

  • Failing to match the beat to movement input incurs no penalties.

  • Successfully match the beat to movement input rewards a bonus.

    • That bonus will be determined through other scripts / playmaker state machines.

  • This means the player doing actions like moving and attacking is checked against the beat of the music playing.

Similar Examples from other games

...

The player controller for Dungeon Movement in this game is almost identical. The differences lay in what happens when the player successfully or fails to move to the beat.

However: Our game is going to be more forgiving then Necrodancer from a design sense in that:

  • Failing to match the beat to movement input incurs no penalties.

  • Successfully match the beat to movement input rewards a bonus.

    • That bonus will be determined through other scripts / playmaker state machines.

VIdeo Link

Widget Connector
overlayyoutube
_templatecom/atlassian/confluence/extra/widgetconnector/templates/youtube.vm
width600px
urlhttps://www.youtube.com/watch?v=R5198bVlANY&ab_channel=Gellot
height450px

...

A “On Beat” Check will also be made to see if the interaction was done to the beat of the music. If it is that triggers a global variable true bool that may incur some bonuses for the player.

...

Disable Player Movement Control

There are multiple times when Dungeon Movement needs to be disabled. Such as when the player is in a battle sequence or trying to solve a puzzle on screen. Possibly even cutscenes.

...

The following variables for the component script should be exposed in the unity Inspector window to allow some customization and design tuning.

...

Like as seen here for the sprite renderer componenet. Options are available to the designer:

Variable Name

Variable type

Playmaker or Animator Integration?

Description

Default Variable Setting:

Movement UP

Keyboard Input

The input needed to move up. (+Y)

W

Movement DOWN

Keyboard Input

The input needed to move down. (-Y)

S

Movement LEFT

Keyboard Input

The input needed to move left. (-X)

A

Movement RIGHT

Keyboard Input

The input needed to move Right. (+X)

D

Action Button 1

Keyboard Input

The input needed to count an action.

Action button 1 will be the games main “Context Sensitive” button. In that it accounts for opening chests, engaging in battles, etc.

Spacebar

Movement Distance

Float

The distance in unity units the player moves per successful input

1

Movement Time

Float

The time in seconds it takes for the player character to physically move from the initial location to the destination location.

Setting to -1 will equate to instant movement.

0.1

Next Movement Delay

Float

The time in seconds that the player has to wait until another movement input will register and send off checks.

Setting to -1 will equate to no delay

0.1

Next Action Delay

Float

The time in seconds that the player has to wait until they can perform another action after completing one.

Setting to -1 will equate to no delay

0.1

Playmaker Integrations:

On Beat Check

Bool Name

Playmaker global variable

The name of the playmaker global variable bool that it checks to see if the input was made “On Beat”

The true / false state of this variable is determined external to this script.

On Beat?

On Beat Move Success

Bool Name

Playmaker global variable

The name of the playmaker global variable bool this script sets to true if the “On Beat Check” comes back as true on a movement input.

A playmaker state machine will check for the true change and then reset it back to false after an amount of time.

On Beat Move Success

On Beat Interaction Success

Bool Name

Playmaker global variable

The name of the playmaker global variable bool this script sets to true if the “On Beat Check” comes back as true on a object interaction input.

A playmaker state machine will check for the true change and then reset it back to false after an amount of time.

On Beat Interaction Success

Movement Disabled

Bool Name

Playmaker global variable

The name of the playmaker global variable this script checks to see if it needs to disable movement.

The script should be making this check quite often.

Move Disabled?

Unity Animator Integrations:

Animator Component Location

Object Path

The path location of the object that has the character “animator” component attached to it.

(None)

Movement Animator Name

Trigger (Animator) Name

Animator

The name of the animator trigger variable it triggers when a successful movement is made.

Character Move

On Beat Move Animator Name

Trigger (Animator) Name

Animator

The name of the animator trigger variable that it triggers when a movement is made “On Beat”

Character On Beat

No Movement Animator Name

Trigger (Animator) Name

Animator

The name of the animator trigger variable that it triggers when an input resulted in no movement.

Character No Movement

...