Categories
Audio&Games

Thread or not thread ?

Lu sur Jiraf.org:

"Autant il est normal de faire tourner le rendu dans un thread séparé ( et dans du hardware séparé ), car c’est une sorte de pipeline, y’a quelque chose a afficher, on l’envoie, et on laisse la lib graphique dessiner a son rythme, elle a pas besoin de dialoguer constamment avec le thread du jeu,
Autant il est normal de faire tourner les libs des couches les plus basses du reseau dans leur propre thread, c’est classique pour les entrees/sorties, ca permet de gagner un peu de precieuse bande passante et ca ne change rien aux interactions entre le thread du jeu est ladite couche reseau,

Autant pour l’IA et la physique, ca va etre beaucoup plus delicat.
l’IA et la physique interagissent constamment avec le reste du jeu, ca sera vraiment casse-bonbons a implementer dans des threads … ces threads et le thread du jeu seraient frequemment en train de s’attendre…"

En gros Space explique que l’utilisation de plusieurs processeur sur les prochaines consoles, compliquera fortement les choses pour l’IA ou la physique, mais que pour les graphismes ça devrait rouler…  J’ai lu le même son de cloche dans le report d’une des conférences de la GDC 05. Un programmeur assurait avoir tripoté les premiers kits de dev NextGen et s’était aperçu que pour le rendu graphique, c’était clairement du haut niveau mais que pour une chose très intéressante dans un jeu comme l’IA/gameplay, ça allait être la mort. The bad news. Va t-on avoir droit à des jeux comme aujourd’hui juste amélioré graphiquement ? Il semblerai qu’on en prenne la voie… Merde un jeu de caisse surréaliste avec une IA de protozoaire, ça risque de faire tâche…:> Et s’il faut 5 ans pour pondre un truc correct, les developpeurs iront se suicider en se jetant sur des autoroutes… C’est ça que vous voulez ??

Edit: Le programmeur L’ingénieur américain en question s’appelle Chris Hecker et c’est un type bien. Parcourez donc son site. Et voilà ce qu’il disait à propos de la Next Gen chez Alice in Wonderland:

"So, as you know, graphics and physics grind on large homogenous floating point data structures in a very straight-line structured way. Then we have AI and gameplay code. Lots of exceptions, tunable parameters, indirections and often messy. We hate this code, it’s a mess, but this is the code that makes the game DIFFERENT. Here is the terrifying realization about the next generation consoles: I’m about to break a ton of NDAs here, oh well, haha, I never signed them anyway.

Gameplay code will get slower and harder to write on the next generation of consoles. Modern CPUs use out-of-order execution, which is there to make crappy code run fast. This was really good for the industry when it happened, although it annoyed many assembly language wizards in Sweden. Xenon and Cell are both in-order chips. What does this mean? It’s cheaper for them to do this. They can drop a lot of cores. One out-of-order core is about four times [did I catch that right? Alice]  the size of an in-order core. What does this do to our code? It’s great for grinding on floating point, but for anything else it totally sucks. Rumours from people actually working on these chips – straight-line runs 1/3 to 1/10th the performance at the same clock speed. This sucks."

Ouais, moi aussi j’ai bien envie de le dire…