Wenn Sie versuchen, eine Spielsimulation basierend auf der Funktionsweise der realen Welt zu programmieren, werden Sie auf einige große Probleme stoßen, wenn es darum geht, wie viele Informationen ein Computer verarbeiten kann.
Nehmen wir zum Beispiel die folgende Seite, die versucht zu berechnen, wie viele Atome sich in einem Sandkorn befinden.
http://www.thenakedscientists.com/forum/index.php?topic=6447.0
Ich habe viele Probleme wie diese beim Studium der Chemie und Physik gesehen, und die lächerlich hohe Zahl, zu der die Person auf dieser Seite gekommen ist, befindet sich im Ball Park dessen, was ich bei verschiedenen Lehrern und Lehrbüchern gesehen habe. -> 78 000 000 000 000 000 000
Selbst wenn dies weit entfernt ist und Sie 6 dieser Nullen entfernen, haben Sie immer noch eine Zahl, die viel zu groß ist, als dass ein durchschnittlicher Computer sie mit interaktiven Raten verarbeiten könnte. Insbesondere, wenn zu einem bestimmten Zeitpunkt Tausende dieser Transaktionen stattfinden.
Wie könnten wir möglicherweise den Impuls, die Positionen, die Geschwindigkeit, die momentanen Beschleunigungen, die Feldladungen usw. jedes Atoms in jedem Sandkorn an einem Strand berechnen und verfolgen, wenn nur ein Korn 78 000 000 000 000 000 Einzelkomponenten aufweist? (Oder noch mehr, wenn Sie die subatomaren Komponenten betrachten.)
Ich habe einmal ein nVidia-Grafikprogrammierdokument gelesen, in dem etwa Folgendes angegeben ist.
Tun Sie, was die beste Annäherung an das Aussehen ergibt, denn niemand kann wirklich erkennen, ob die Simulation nicht 100% genau ist. Effizienz muss berücksichtigt werden.
Gleiches gilt für jede Spielesimulation, auch wenn es sich nicht um eine Grafik handelt. Sie sollten wahrscheinlich nur das Nötigste tun, um die Dinge zum Laufen zu bringen. Wenn Sie hier alles geben, begraben Sie den Computer in einer Komplexität, die er nicht bewältigen kann.
Sie müssen auch versuchen, Code dieser Komplexität zu schreiben und zu pflegen.
Sie könnten jeder Währungseinheit eindeutige Seriennummern zuweisen, aber Sie werden alle Ressourcen des Computers nur für dieses eine Detail verbrauchen.
Eine bessere Möglichkeit, dies zu handhaben, besteht darin, für jede Transaktion nur eine eindeutige Kennung anzugeben.
Spieler 1 zahlt also Spieler 2 $ 1000000.
Wenn Sie jedem Dollar eine eindeutige Kennung geben, werden die Computer vieler Leute große Probleme haben, ganz zu schweigen von dem gesamten Netzwerkverkehr und der Verzögerung, die dies verursachen wird.
Oder Sie können nur einen Wert erstellen, der die gesamte Transaktion darstellt.
uint transferFunds_Player1ToPlayer2 = 1000000;
Sogar ein 20 Jahre alter Taschenrechner kann so etwas verarbeiten.