Rework battle system ? #116

Closed
opened 2022-05-09 12:20:29 +02:00 by kazhnuz · 6 comments
Owner

In Sonic games, moving and reacting to the environnement and badnics is a big part of how the game works. A lot of ennemies are diffentiated in how you'll beat them and avoid their attack.

Some notions that would be useful

  • Map attacks to button instead of being in a list
  • Let the player chain attacks, maybe with some mechanics like either timing or actions points.
  • Adding notion of placing ourself and moving could be nice ?

I don't think we should think with with Beat Them up combos, but with more "actions chains", like in an Unleashed.

I see two main possibility:

  • Turn based (but make avoiding attack harder to conceptualize) where the characters and ennemies have their turn, but in a more dynamic fashion
  • "Semi-turn-based", where the characters act each after the others and can move/avoid stuff/attack and the ennemies moves and attack "dynamically" more like common Sonic ennemies, with a sort of "relay" after each one is finished. Absent character would regain slowly their action points.
In Sonic games, moving and reacting to the environnement and badnics is a big part of how the game works. A lot of ennemies are diffentiated in how you'll beat them and avoid their attack. Some notions that would be useful - Map attacks to button instead of being in a list - Let the player chain attacks, maybe with some mechanics like either timing or actions points. - Adding notion of placing ourself and moving could be nice ? I don't think we should think with with Beat Them up combos, but with more "actions chains", like in an Unleashed. I see two main possibility: - Turn based (but make avoiding attack harder to conceptualize) where the characters and ennemies have their turn, but in a more dynamic fashion - "Semi-turn-based", where the characters act each after the others and can move/avoid stuff/attack and the ennemies moves and attack "dynamically" more like common Sonic ennemies, with a sort of "relay" after each one is finished. Absent character would regain slowly their action points.
kazhnuz added the
2. Epic
1. Game Design
4. Battle System
labels 2022-05-09 12:20:29 +02:00
kazhnuz added this to the 0 - Rework Design project 2022-05-09 12:20:30 +02:00
Author
Owner

( The second add some possibilities, like some character being more "support" that "prepare the terrain" like Tails that could build some stuff ).

( The second add some possibilities, like some character being more "support" that "prepare the terrain" like Tails that could build some stuff ).
Author
Owner

The ennemies would be divided into

  • basic ennemies (simple patterns of actions, do stuff like "go to the ennemies and try to dash on him", are basically coded with a parent that have behavior and stuff)
  • boss (have some patterns of attacks, like big powerfull ennemies)
  • rivals (have some AI that try to use the different actions of a character)
The ennemies would be divided into - **basic ennemies** (simple patterns of actions, do stuff like "go to the ennemies and try to dash on him", are basically coded with a parent that have behavior and stuff) - **boss** (have some patterns of attacks, like big powerfull ennemies) - **rivals** (have some AI that try to use the different actions of a character)
Author
Owner

Dev plan
0 : Preparatory phase

  • Add more buttons to map all future actions
  • Add (optionnal) character switching to the subgame scene
  • Connect player object to characters
  • Basic CBS-like maps
  • Add Finite State Machine

1 : Basic systems

  • Add a parent "ennemy" item that can just move to the player if they notice and have some "chill behavior" if they don't + add initial support for aerial ennemies
    • Implement a Motobug and a Spinner, that can't attack yet.
  • Add support for damage to the player and a spike ball
    • Add support for being KO
  • Add back the punching combo
  • Add a win condition system and two condition (all ennemies, goal panel)
    • Add the victory screen
  • Add a game over screen

2 : Complete with more stuff

  • Add basic ennemies with corresponding actions/attacks
    --- Motobug :: Go to us, attack by dashing.
    --- BuzzBomber :: Go to us, shot when near enough ?
    --- Crabmeat :: Go to us, shoot bullet from both sides
    --- Coconut :: On a tree (which is a separate object), and shoot boombs when we go near them
  • Add some more attacks
    • Add a special attack/action for Sonic, Tails and Amy
  • Add defending

3 : Add variations

  • Rival support
    • Add support for "cloning" a character to a rival
    • Create a "rival" object ennemy
    • Add to attacks a "when to use them" API for rivals
  • Add support for different maps
    • Make ennemies able to navigate Battle's maps
  • Add items, might have to change compared to the present items.
    • Add a special hud for that, to select a good item
    • Add a "use item" button to use the item (wow)
    • Add a more complexe "pause UI" to use items on other characters
  • Add a Boss
    • TODO
**Dev plan** *0 : Preparatory phase* - Add more buttons to map all future actions ✅ - Add (optionnal) character switching to the subgame scene ✅ - Connect player object to characters ✅ - Basic CBS-like maps ✅ - Add Finite State Machine ✅ *1 : Basic systems* - Add a parent "ennemy" item that can just move to the player if they notice and have some "chill behavior" if they don't + add initial support for aerial ennemies - Implement a Motobug and a Spinner, that can't attack yet. - Add support for damage to the player and a spike ball - Add support for being KO - Add back the punching combo - Add a win condition system and two condition (all ennemies, goal panel) - Add the victory screen - Add a game over screen *2 : Complete with more stuff* - Add basic ennemies with corresponding actions/attacks --- Motobug :: Go to us, attack by dashing. --- BuzzBomber :: Go to us, shot when near enough ? --- Crabmeat :: Go to us, shoot bullet from both sides --- Coconut :: On a tree (which is a separate object), and shoot boombs when we go near them - Add some more attacks - Add a special attack/action for Sonic, Tails and Amy - Add defending *3 : Add variations* - Rival support - Add support for "cloning" a character to a rival - Create a "rival" object ennemy - Add to attacks a "when to use them" API for rivals - Add support for different maps - Make ennemies able to navigate Battle's maps - Add items, might have to change compared to the present items. - Add a special hud for that, to select a good item - Add a "use item" button to use the item (wow) - Add a more complexe "pause UI" to use items on other characters - Add a Boss - *TODO*
Author
Owner

Possible schemes

V1 - Usage of item in real-time

  • A: Jump

  • B: Basic hit (doesn't use action point) + Interact

  • X, Y: Special actions

  • Left stick: move

  • Right stick: camera ?

  • R, L : Switch characters

  • R1: Use item

  • R2: Lock target

  • up, down: Switch wisp mode & item mode

  • left, right: Switch items

Issues:

  • Would be nice to have a "defend" action
  • Two special attack add more combo and make the game a bit too much beat them all

V2 - Item Menu

  • A: Jump

  • B: Basic hit (doesn't use action point) + Interact

  • X: Show item menu

  • Y: Dash

  • Left stick: move

  • Right stick: camera ?

  • R, L : Switch characters

  • R1: Defend

  • R2: Lock target

  • up, down, left, right: Special actions

### Possible schemes **V1** - Usage of item in real-time - A: Jump - B: Basic hit (doesn't use action point) + Interact - X, Y: Special actions - Left stick: move - Right stick: camera ? - R, L : Switch characters - R1: Use item - R2: Lock target - up, down: Switch wisp mode & item mode - left, right: Switch items *Issues:* - Would be nice to have a "defend" action - Two special attack add more combo and make the game a bit too much beat them all **V2** - Item Menu - A: Jump - B: Basic hit (doesn't use action point) + Interact - X: Show item menu - Y: Dash - Left stick: move - Right stick: camera ? - R, L : Switch characters - R1: Defend - R2: Lock target - up, down, left, right: Special actions
Author
Owner

To handle behavior intelligently, we'll need a to add support for a finite state machine subsystem into birb's actor system, as both fighter and IA will need to have their own states.

State should have callback for when they start, end or begin.

To handle behavior intelligently, we'll need a to add support for a finite state machine subsystem into birb's actor system, as both fighter and IA will need to have their own states. State should have callback for when they start, end or begin.
Author
Owner

Something like

StateMachine:extend()
StateMachine.addState("punch", punchState)

StateMachine.states = {}

function StateMachine.addState(name, state, isDefault)
	StateMachine.states.list[name] = StateMachine
    
    if (isDefault == true) then
    	StateMachine.states.default = name
	end
end

function StateMachine:initStates()
	self.currentState = StateMachine.states.default
end

function StateMachine:setState(state)
	StateMachine.states.list[state].start(self, )
end

function StateMachine:getState()
	return self.currentState
end
Something like ```lua StateMachine:extend() StateMachine.addState("punch", punchState) StateMachine.states = {} function StateMachine.addState(name, state, isDefault) StateMachine.states.list[name] = StateMachine if (isDefault == true) then StateMachine.states.default = name end end function StateMachine:initStates() self.currentState = StateMachine.states.default end function StateMachine:setState(state) StateMachine.states.list[state].start(self, ) end function StateMachine:getState() return self.currentState end ```
Sign in to join this conversation.
No description provided.