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

Offload default bindings to basecontent or at least to an external file

Open
#2,549 2 comments 0 reactions 0 assignees View on GitHub
area: Basecontent area: documentation area: Input enhancement good first issue
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

Currently the default bindings are hardcoded [here](https://github.com/beyond-all-reason/RecoilEngine/blob/c3fe612/rts/Game/UI/KeyBindings.cpp#L60-L257).

Consider moving these bindings to an external file, with the same syntax as `uikeys.txt`.

This file can either be stored by the engine as hardcoded content, e.g. at compilation time to include it as a plaintext variable to be interpreted as a uikeys file content, or read by the engine from some basecontent source at runtime.

The consideration on whether to use basecontent or not is a bigger discussion, this issue concerns itself mostly with offloading the default bindings to a format that is the same games use instead of reading engine source code.

Contributor guide

Open the contributing guide

Research direction

Start in rts/Game/UI/KeyBindings.cpp around lines 60-257 and compare the default binding syntax with uikeys.txt. Determine how the external content would be supplied, then verify that the engine loads the same defaults without keeping them as binding definitions in the source file.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.