Якщо ви спробуєте запрограмувати ігрове моделювання на основі того, як працює реальний світ, тоді у вас виникнуть великі проблеми, коли справа стосується того, скільки інформації комп'ютер може обробити.
Візьмемо для прикладу наступну сторінку, яка є спробою підрахувати, скільки атомів є в піску.
http://www.thenakedscientists.com/forum/index.php?topic=6447.0
Я бачив багато подібних проблем із вивченням хімії та фізики, і смішно велика кількість людей, які потрапляють на цю сторінку, знаходиться в парку балів того, що я бачив, як придумали різні викладачі та підручники. -> 78 000 000 000 000 000 000
Навіть якщо це не вдасться, і ви вилучите 6 з цих нулів, у вас все одно буде число, яке занадто велике, щоб середній комп'ютер міг обробляти інтерактивні швидкості. Особливо, коли є 1000 таких транзакцій, які відбуваються в будь-який момент часу.
Як ми могли б обчислити та відстежити імпульс, положення, швидкість, миттєві прискорення, польові заряди тощо, кожного атома в кожному піску на пляжі, якщо лише одне зерно має 78 000 000 000 000 000 000 окремих компонентів. (Або навіть більше, якщо врахувати субатомні компоненти.)
Я одного разу прочитав документ із графічного програмування nVidia, в якому сказано щось на зразок наступного.
Робити те, що найкраще наближається, виглядає добре, тому що ніхто не зможе сказати, чи симуляція не на 100% точна. Ефективність слід враховувати.
Те саме стосується кожного типу ігрового моделювання, навіть якщо це не пов'язане з графікою. Напевно, ви повинні робити лише мінімум того, що потрібно для роботи. Якщо ви вийдете все тут, то похоронить комп’ютер у складності, з якою він не може впоратися.
Вам також доведеться написати та спробувати підтримати код цієї складності.
Ви можете дати унікальні серійні номери для кожної валютної одиниці, але ви використаєте всі ресурси комп’ютера саме на цій одній деталі.
Можливо, кращий спосіб вирішити це - дати лише 1 унікальну ідентифікацію для кожної транзакції.
Тож гравець №1 платить гравцю №2 1000000 доларів.
Якщо ви дасте кожному долару унікальний ідентифікатор, у багатьох людей комп'ютери почнуть мати великі проблеми, не кажучи вже про весь мережевий трафік і відставання, що це спричинить.
Або ви можете просто створити одне значення, яке представляє всю транзакцію.
uint transferFunds_Player1ToPlayer2 = 1000000;
Навіть 20-річний кишеньковий калькулятор може впоратись із чимось подібним.