Si vous essayez de programmer une simulation de jeu basée sur le fonctionnement du monde réel, vous allez rencontrer de gros problèmes en ce qui concerne la quantité d'informations qu'un ordinateur peut traiter.
Prenons par exemple la page suivante qui est une tentative de calculer combien d'atomes il y a dans un grain de sable.
http://www.thenakedscientists.com/forum/index.php?topic=6447.0
J'ai vu beaucoup de problèmes comme celui-ci en étudiant la chimie et la physique et le nombre ridiculement élevé auquel la personne sur cette page est arrivée se trouve dans le parc de ce que j'ai vu avec divers enseignants et manuels. -> 78 000 000 000 000 000 000 000
Même si c'est loin et que vous supprimez 6 de ces zéros, vous aurez toujours un nombre beaucoup trop grand pour que l'ordinateur moyen puisse le gérer à des tarifs interactifs. Surtout quand des milliers de ces transactions ont lieu à un moment donné.
Comment pourrions-nous éventuellement calculer et suivre la quantité de mouvement, les positions, la vitesse, les accélérations instantanées, les charges de champ, etc., de chaque atome dans chaque grain de sable sur une plage si un seul grain a 78000000000000000000 composants individuels. (Ou encore plus si vous considérez les composants sub-atomiques.)
J'ai lu une fois un document de programmation graphique nVidia qui disait quelque chose comme ce qui suit.
Faites ce qui donne la meilleure approximation de l'apparence, car personne ne pourra vraiment dire si la simulation n'est pas précise à 100%. L'efficacité doit être prise en considération.
La même chose s'applique à chaque type de simulation de jeu même si cela n'a pas à voir avec les graphismes. Vous ne devriez probablement faire que le strict minimum pour faire fonctionner les choses. Si vous allez tout faire ici, vous allez enterrer l'ordinateur dans une complexité qu'il ne peut pas gérer.
Vous devrez également écrire et essayer de maintenir le code de cette complexité.
Vous pouvez attribuer des numéros de série uniques à chaque unité monétaire, mais vous utiliserez toutes les ressources de l'ordinateur sur ce seul détail.
Peut-être qu'une meilleure façon de gérer cela est de ne donner qu'un seul identifiant unique pour chaque transaction.
Ainsi, le joueur n ° 1 paie le joueur n ° 2 1000000 $.
Si vous donnez à chaque dollar un identifiant unique, les ordinateurs de nombreuses personnes commenceront à avoir de gros problèmes, sans parler de tout le trafic réseau et du retard que cela causera.
Ou vous pouvez simplement créer une valeur qui représente la transaction entière.
uint transferFunds_Player1ToPlayer2 = 1000000;
Même une calculatrice de poche de 20 ans peut gérer quelque chose comme ça.