Core Input System refactor
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 15/100
- Tipo di issue
- Refactoring
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- game-dev, operating-systems
Direzione di ricerca
Non vengono indicati file, test o punti di ingresso. Inizia individuando l’implementazione attuale dell’input di GLFW e il game-frame loop del motore, quindi mappa il modo in cui viene interrogato lo stato dell’input. Il lavoro sarebbe completato quando esistesse un’astrazione definita che copra i backend della piattaforma, la temporizzazione del polling, le connessioni dei dispositivi, gli utenti e i metadati dei dispositivi come descritto nell’issue.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The current implementation of in put in Fling is very bad. It is essentially querying the key state from GLFW all the time.
First up, we need some
We should change it so that input is polled at a very specific time in the engine.
Some notes on what this change may entail:
- Replace GLFW as the input interface in favor of each platform's own OS implementation (Win32 API, X11 on linux probably, and possibly the Game Input for windows library to support Gamepads on windows. Xinput on linux).
- This task will require a large refactor how the input API looks. We need to be able to support multiple different input libraries at once (i.e. XInput + Win32) so we need a much better abstraction for what the input code looks like - Create a separate input polling thread that runs at a fixed tick rate (120hz, and all it to be configurable)
- Have the game thread be a consumer of the above input thread and query it once at the top of the game frame, making the state available for all game/editor code
- We need an input device connection interface of some kind. A way to map HID's to individual "users". This way you can support split screen
- A system to query some metadata about each of these connected devices
- We can then utilize this system to build dynamic UI to reflect what kind of icons and things should be in use
- We can also use this to do different things based on the input device all over the place. Different values for force feedback, input mappings, etc.
- Lingua principale
- C++
- Stelle
- 415
- Fork
- 16
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di flingengine/FlingEngine
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
flingengine/FlingEngine#199 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
flingengine/FlingEngine#196 ·
-
Update git submodulesAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
flingengine/FlingEngine#170 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
flingengine/FlingEngine#165 ·
-
Fix skybox CubemapsForse di nuovo libera @BenjaFriend l’ha presa 2200 giorni fa e non c’è nessuna pull request aperta. Apertabug enhancement
flingengine/FlingEngine#162 · 1 assegnatario ·
Tutte le issue di flingengine/FlingEngine
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
mesonbuild/wrapdb#2961 ·
I maintainer di solito rispondono entro 1 giorno
-
80 Instance - Raid - Northrend
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
azerothcore/azerothcore-wotlk#28075 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
objectionary/eo-graphs#80 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno