Je commencerai par dire que je n'ai pas cherché beaucoup de sources de jeu ni construit beaucoup de jeux.
Mais essayer d’employer des pratiques de codage «entreprise» dans les applications Web et consulter le code source du jeu me fait très mal à la tête: «Que fait cette logique de vue dans la logique métier? Cela nécessite un refactoring ... "
Cela m'inquiète alors que je suis sur le point de démarrer un projet de jeu et je ne suis pas sûr que d'essayer de créer un processus mvc / tdd va nous entraver ou nous aider, car je ne vois pas beaucoup d'exemples de jeux qui l'utilisent. ou beaucoup de pression pour de meilleures pratiques architecturales dans la communauté.
Ce qui suit est un extrait d’un excellent article sur les jeux de prototypage , bien que j’ai semblé être exactement l’attitude que beaucoup de développeurs de jeux semblent adopter lors de la rédaction du code de jeu de production:
Erreur n ° 4: Construire un système, pas un jeu
... si vous vous retrouvez à travailler sur quelque chose qui ne fait pas avancer directement votre progression, arrêtez-vous là. En tant que programmeurs, nous avons tendance à essayer de généraliser notre code, de le rendre élégant et de pouvoir gérer toutes les situations. Nous constatons que la démangeaison est terriblement difficile, mais nous devons apprendre à le faire. Il m'a fallu de nombreuses années pour réaliser que ce n'était pas une question de code, mais bien de jeu que vous livrez à la fin.
N'écrivez pas un système de composants de jeu élégant, sautez complètement l'éditeur et cédez l'état à l'aide de code, évitez les analyses auto-analytiques basées sur les données, la folie XML, et codez simplement ce qui est fichu.
... Il suffit d'afficher des choses à l'écran aussi rapidement que possible.
Et n'utilisez jamais l'argument suivant: «Si nous prenons un peu plus de temps et le faisons correctement, nous pouvons le réutiliser dans le jeu». DÉJÀ.
Est-ce parce que les jeux sont (principalement) visuellement orientés, il est donc logique que le code ait une importance particulière dans la vue; par conséquent, le fait de transférer des éléments dans des modèles / contrôleurs est assez minime, alors pourquoi s'en préoccuper?
J'ai entendu l'argument selon lequel MVC introduit une surcharge de performances, mais cela me semble être une optimisation prématurée et qu'il y aurait des problèmes de performance plus importants à résoudre avant de vous inquiéter des surcoûts de MVC (par exemple, pipeline de rendu, algorithmes d'intelligence artificielle, structures de données). traversée, etc).
Même chose pour le TDD. Je ne vois pas souvent de jeux utilisant des cas de test, mais peut-être est-ce dû aux problèmes de conception ci-dessus (vues mixtes / métier) et au fait qu'il est difficile de tester des composants visuels, ou des composants qui reposent sur des résultats probabilistes (par exemple, opérer dans des simulations physiques )
Peut-être que je ne fais que regarder le mauvais code source, mais pourquoi ne voyons-nous pas davantage de ces pratiques «d'entreprise» dans la conception de jeux? Les exigences des jeux sont-elles vraiment différentes, ou s'agit-il d'un problème de personnes / de culture (les développeurs de jeux viennent d'un contexte différent et ont donc des habitudes de codage différentes)?