Quel rôle le développement avec les événements a-t-il dans les jeux?

9

La plupart du développement d'applications est basé sur le développement avec des événements, mais compte tenu du style de boucle de jeu du développement de jeux et du besoin (souvent) de hautes performances / débit, quel rôle le développement à l'aide d'événements a-t-il et quels sont les compromis? La synchronisation / verrouillage qui est souvent impliquée a-t-elle un impact plus important?

Par exemple: - Comment le réseau [couche] informe-t-il la boucle de jeu des données reçues? - Comment le système de physique informe-t-il des collisions

Je demande, car je me souviens d'une époque où le développement de jeux à l'aide d'événements était un non-non strict. Cela a-t-il changé?

Steven Evers
la source

Réponses:

5

Le système d'événements est puissant et peut être rendu très rapide.

Ils vous permettent également de moduler des sections de code dans une structure de couplage très lâche. Ils vous permettent de créer des lots de tâches et d'exécuter des tâches. Le travail bien avec des fonctions multicœurs et asynchrones.

Physique - Les rappels de collision, les objets d'activation ou de repos se traduisent bien en événements. Networking - Autant que possible devrait être un événement (chat vocal ect .. l'exception) Game Logic - Se prête naturellement à un modèle d'événement Menus & UI - Travaillez brillamment dans un système basé sur les événements

De nombreuses consoles modernes et bibliothèques middleware utilisent également des événements.

Le rendu et l'interrogation des périphériques d'entrée peuvent être un peu déroutants à intégrer. Surtout si vous utilisez des commandes de mouvement, car les événements peuvent introduire une latence notable et être contre-intuitifs au format d'interrogation.

Kimau
la source
4

Je dirais que l'utilisation du style de boucle principale est toujours recommandée: elle est rapide, elle vous donne un contrôle total sur l'ordre des actions (c'est important dans un jeu) et il est plus difficile de faire des erreurs de codage. Cependant, si la technologie que vous utilisez vous permet d'utiliser facilement des événements, elle peut être très utile pour beaucoup de choses. Par exemple, je les utilise pour avertir quand et où les ennemis meurent, lorsque les touches du clavier sont enfoncées ...

En conclusion: utilisez la boucle de jeu pour contrôler la logique principale du jeu, mais gardez à l'esprit que les événements peuvent être utiles dans d'autres situations.

miguelSantirso
la source
Je ne suis pas d'accord pour dire qu'un style de boucle principale est recommandé. Les jeux de style boucle principale perdent face à un jeu bien écrit et contrôlé par événement dans plusieurs domaines: 1) sur un système multitâche, ils consomment une quantité inutilement élevée de processeur pour un ensemble fixe de fonctionnalités, 2) sur des appareils portables, même sur un seul -les systèmes de tâches, l'utilisation supplémentaire du processeur affecte négativement la durée de vie de la batterie, 3) plus le jeu est simple, plus ces problèmes deviennent importants par rapport à un jeu proprement événementiel.
Sam Harwell