time to roll-up the sleeves and get to work. but first, a general plan:
time to roll-up the sleeves and get to work. but first, a general plan:
a. what needs to be done:
1. set up the board
- create clickable a 5x5 grid
- implement a cell selection system
2. playable pieces
- create nodes and sprites for each pawn
- make their position cell-bound and determined by the mouse position
- implement a pawn selection system
3. movement validity check system
- determine whose turn it is
- check for friendly pawns on the target position
- check for opponents’ pawns on the target position
4. game state / game over conditions
- check if any master pawn was taken in the last move
- check if any master pawn is on the opponent’s master starting position
5. movement
- create a moves pool: code every move from the original board game
- implement a system to randomly pick 5 from the moves pool
- assign 2 unique moves to each player
- leave the 5th move on the side to be swapped at the end of every turn
- implement mirrored movement system for the top player
6. player turns
- implement a system to determine the starting player
- implement the status of ‘active_player’
7. selection system
- implement the status of ‘selected pawn’
- implement a visual toggle for the selected pawn — sprite animation? highlighted cell?
8. visual cues
- implement a system of visual cues to inform the player which cells are valid for the move selected, for the pawn selected
9. UI
- implement a move selection system
- implement camera rotation for each turn (?)
- display ‘current player’, ‘move selected and ’‘game state’
- display every move ‘card’ in the screen at all times (open information)
10. tutorial
- implement a tutorial system with a set of very simple instructions: pick a move to use >> pick a pawn >> pick a valid position >> move to position
- winning/losing conditions
b. make and review UI & overall design choices
although an adaptation, I’m bound to make some choices in terms of how to convey information to the player and how the player interacts with the game’s elements
c. playtesting
not really much to do here, in terms of game design. I’ll mostly focus on UI design choices, the move card selection system and bug fixing