GoldenCrystal (./1309) :
Perso je suis pas fan de l'événementiel pour les jeux, juste parce que tu peux « facilement » zapper un événement (genre key up) et que ça nique ton gameplay. (Je prends WoW comme exemple à ce titre)
Je ne vois pas de raison que ça arrive... si tu "oublies" un événement qui a été propagé c'est que tu as mal codé. Tu peux très bien manquer le changement d'état de la touche à ce moment-là.
En fait il faut de toute façon une tâche qui s'occupe de "poller" et transforme cela en événements, genre:
keyState = readKeyState();
if (keyState & ~lastKeyState)
sendMessageInt(EVT_KEY_DOWN, keyState & ~lastKeyState);
...
lastKeyState = keyState;Et cette tâche peut être problématique si elle tourne dans un thread séparé. On est dépendant de la gestion du multitasking par l'OS, c'est à dire qu'il ne doit pas avoir de période sensible où ce thread est stoppé au profit de celui de la logique du jeu. Et typiquement Windows aime donner un boost à ce genre de threads, d'où... problème

Par contre ce n'est pas lié à l'événementiel en soi. Tu peux très bien faire un jeu sans événement mais qui sépare le rendu, l'input, la physique, le réseau, etc. dans des threads différents, et le même genre de problème peut arriver à ce moment-là.