Les limitations a 3.2/4Go concernent les OS 32 bits, et leurs plages d'adressage.
WinXP occupe encore une grande partie du parc informatique ; et dans la mesure ou il n'y que "peu" de contraintes pour faire une appli qui tourne sur XP/Vista/Seven/etc. ce serait un mauvais choix que de s'en priver, surtout pour un mmo sense tourner sur un maximum de machines pour permettre a un large public d'y jouer.
AnAutisticCat > pour faire simple, le GPU s'occupe de toute la partie affichage (les meshes des modeles 3D et la geometrie elements 2D de l'interface, le vertex processing pour les operations sur les maillages, et les pixel processing pour les operations sur la colorisation -qui va des formules d'eclairage a l'application des ombres en passant par les effets de post-processing- etc.), et le CPU s'occupe... ben de tout le reste !
A commencer par la collecte des donnees necessaires pour que le GPU fasse son boulot (dans l'affichage, il y a un gros morceaux qui se passe cote CPU, pour assembler les vertices dans blocs memoire, pour trier les materiaux efficacement, pour gerer les changements d'etats du renderer hardware, pour gerer la structure de la scene a afficher, avec des portals et des occluders, etc.)
Et ensuite il y a tout le reste... Le reseau (envoi et reception des donnees chiffrees, synchronisation des paquets), les facteurs correcteurs lies au reseau (prediction de mouvement, anti-lag, synchronisation des differentiels clients sur le serveur, etc.).
Le son (gestion des blocs memoire contenant les musiques et effets audio, mais aussi mixage au runtime avec ajout d'effets, occlusion, etc. pour adapter les themes a l'environnement du joueur).
La physique (tres peu presente dans un MMO, on en trouve bcp plus dans les jeux de courses de vehicules par exemple)
L'intelligence artificielle, avec la navigation et le comportement des monstres et NPCs.
Le streaming (tres important en mmo ou open-world) pour creer l'illusion d'un monde continue en chargeant et dechargeant continuellement les blocs de ressources necessaires a l'affichage et a la gestion du monde environnant du joueur.
Animation (peut etre un mix de CPU et GPU selon les methodes de "skinning" utilisees) ; il faut melanger des animations pour obtenir les transitions en jeu. En plus du lipsync et facial expression pour les moments cinematiques (pas dur, mais bcp de calcules pour blender des bouts d'animation ensemble, le motion extraction, l'IK pour du foot-planting si necessaire, etc.)
Ensuite viennent des trucs plus superficiels, i.e. tout le gameplay (gestion des stats des entites, user interface, etc.)
En general, sur un systeme 4 cores, tu vas dedier un thread a la gestion de l'application (creation des tasks du job system pour les autres threads), un thread au rendering (pour collecter les donnees pour le GPU), un core pour les 2-3 services critiques du jeu (ici surement streaming et animations par exemple), et le dernier core pour les bidules restants, histoire d'equilibrer la charge du mieux possible.
Apres il faut voir que si bcp de choses sont faites en local pour assurer la reactivite maximale du jeu, il y a synchronisation constante avec un serveur, pour s'assurer que le client ne modifie pas le comportement du jeu (cheats). Bcp de choses sont sans incidences sur le gameplay et ne sont faites qu'en local (effets visuels et particules, UI, etc.), mais tout ce qui est deplacements, calculs lors de combats, etc. est critique et DOIT etre synchronisee sur tous les clients, donc un serveur puissant calcule aussi tout cela en parallele pour les clusters de joueurs, et fait office de "verite vraie" lors des synchro.
Voila voila...