Durant une partie de « Left 4 Dead 2 », mon coéquipier, souhaitant me montrer les performances de sa nouvelle machine (plutôt haut de gamme), lance une carte et entre quelques commandes :
z_common_limit 10000
z_mega_mob_size 10000
director_force_panic_event
Sans grande surprise, le vénérable jeu n'a pas apprécié qu'on lui demande d'afficher d'un coup 10 000 ennemis alors que la valeur par défaut est de 50.
La demi-heure suivante a été consacrée à expliquer ce qu'est un « buffer overflow » et pourquoi, même avec un Core i7, 16 Go de RAM et une carte graphique haut de gamme, il est juste impossible qu'un moteur de jeu grand public puisse gérer autant d'ennemis simultanément. Il n'y avait aucun problème de performance à rechercher. PEBKAC.
Un buffer overflow c'est un problème de gestion des dit buffers, pas quelques chose de normal même lorsqu'on demande à mettre énormément de choses dans ce buffer. La gestion du buffer devrait simplement refuser d'ajouter des données lorsqu'il n'y a plus de place, pas faire un overflow.
Par contre sans plus de détails sur comment le jeux n'as pas aprécié l'opération, difficile de dire où est le pebkac :
- le jeu ferme sur une erreur parce qu'il n'arrive pas à allouer tout les ressources nécessaire : principale responsable, ton pote qui en demande trop. Je comprend que les dev n'ai pas voulu mettre de limite, laquelle va dépendre de la machine.
- le jeu fait des buffers overflow : PEBKAC pour les dev qui ont des failles dans leur gestion.
- le jeu rame monumentalement : problème de performance.