Если вы попытаетесь запрограммировать игровой симулятор на основе того, как работает реальный мир, то вы столкнетесь с некоторыми большими проблемами, когда речь заходит о том, сколько информации может обработать компьютер.
Возьмем, к примеру, следующую страницу, которая является попыткой подсчитать, сколько атомов содержится в песчинке.
http://www.thenakedscientists.com/forum/index.php?topic=6447.0
Я видел много таких проблем, когда изучал химию и физику, и смехотворно большое число людей, с которыми он столкнулся на этой странице, находится в бальном парке из того, что я видел, как придумали разные учителя и учебники. -> 78 000 000 000 000 000 000
Даже если это слишком далеко и вы удалите 6 из этих нулей, у вас все равно останется число, слишком большое для среднего компьютера, чтобы справляться с интерактивными ставками. Особенно, когда в любой момент времени происходят тысячи таких транзакций.
Как мы могли бы рассчитать и отследить импульс, позиции, скорость, мгновенные ускорения, полевые заряды и т. Д. Каждого атома в каждой песчинке на пляже, если только одна крупа имеет 78 000 000 000 000 000 000 отдельных компонентов. (Или даже больше, если учесть субатомные компоненты.)
Однажды я прочитал документ по графическому программированию nVidia, в котором говорится что-то вроде следующего.
Делайте то, что дает наилучшее приближение внешности, потому что никто не сможет сказать, что симуляция не на 100% точна. Эффективность должна быть принята во внимание.
То же самое относится к каждому типу игрового моделирования, даже если это не имеет отношения к графике. Вы, вероятно, должны делать только минимум того, что нужно, чтобы все заработало. Если вы сделаете все возможное, то закопаете компьютер в сложность, с которой он не справится.
Вам также придется написать и попробовать и поддерживать код этой сложности.
Вы можете дать уникальные серийные номера каждой единице валюты, но вы будете использовать все ресурсы компьютера только на этой детали.
Возможно, лучший способ справиться с этим - дать только 1 уникальное определение для каждой транзакции.
Таким образом, игрок № 1 платит игроку № 2 $ 1000000.
Если вы дадите каждому доллару уникальный идентификатор, у компьютеров многих людей начнутся большие проблемы, не говоря уже о сетевом трафике и задержке, которую это вызовет.
Или вы можете просто создать одно значение, которое представляет всю транзакцию.
uint TransferFunds_Player1ToPlayer2 = 1000000;
Даже 20-летний карманный калькулятор может справиться с чем-то вроде этого.