beyond-all-reason / beyond-all-reason/RecoilEngine

[FR Long Shelf] N-Pod Movement Type

Open
#887 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

Add a movement type that represents tripods, quadpods (tetrapods) and so on, so called N-Pods (-> Bots, Tanks, Ships, Hovers and _NPods_).
Specificity of an N-Pod type is that it can have _N_ movement directions and switch freely over them, choosing a favorable direction when given order, thus avoiding full (or half, such as of tanks) rotation cost.
When a unit receives command, it would perform a move order like this:
![NPodIllu](https://github.com/beyond-all-reason/spring/assets/84379085/0c4f5b35-02cf-4033-861f-ec13f48cf8e8)

A movement class will have its N specified as a parameter. N should start from 3.

To accommodate animations to it, scripts will receive MoveDirection(newDirection) call-in, where newDirection is a number from 0 to N-1 with 0 representing the front of the model, and each subsequent number - the next direction in clockwise order, that corresponds to the next "axis of symmetry" (roughly speaking).
Scripts can use this value to adjust legs animation to a new movement direction.

Reason for this proposition is to diversify move mechanics in the game and do something fresh.
This particular type of movement is interesting, from visual and gameplay aspects. It may bring new displays of mobility and help creating more memorable unit designs.
Remember Dragoon from Starcraft I: it had simpler animation sequence in terms of number of sprites, as it was omni-directional, saving artists from extra-work, but memorable.

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. Start by mapping the existing movement-type subsystem and script call-in interface, then determine how an N parameter and direction changes fit the engine. Done would include N-Pod movement from N=3 onward, free direction selection, and the MoveDirection(newDirection) notification for scripts.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.