Se você tentar programar uma simulação de jogo com base no funcionamento do mundo real, terá grandes problemas quando se trata de quanta informação um computador pode processar.
Tomemos, por exemplo, a página a seguir, que é uma tentativa de calcular quantos átomos existem em um grão de areia.
http://www.thenakedscientists.com/forum/index.php?topic=6447.0
Eu já vi muitos problemas assim estudando química e física, e o número ridiculamente alto que a pessoa nesta página chegou está no estádio do que eu vi vários professores e livros didáticos. -> 78 000 000 000 000 000 000
Mesmo que isso esteja muito distante e você remova 6 desses zeros, você ainda terá um número muito grande para o computador comum lidar com taxas interativas. Especialmente quando existem milhares dessas transações em um determinado momento.
Como poderíamos calcular e rastrear o momento, as posições, a velocidade, as acelerações instantâneas, as cargas de campo, etc., de cada átomo em cada grão de areia de uma praia, se apenas um grão possui 78 000 000 000 000 000 000 componentes individuais. (Ou ainda mais, se você considerar os componentes subatômicos.)
Certa vez, li um documento de programação gráfica da nVidia que dizia algo como o seguinte.
Faça o que for melhor para obter uma boa aparência, porque ninguém será capaz de dizer se a simulação não é 100% precisa. A eficiência deve ser levada em consideração.
O mesmo se aplica a todo tipo de simulação de jogo, mesmo que não tenha relação com gráficos. Você provavelmente deve fazer apenas o mínimo necessário para fazer as coisas funcionarem. Se você fizer tudo isso aqui, enterrará o computador com complexidade que ele não pode suportar.
Você também precisará escrever e tentar manter o código dessa complexidade.
Você pode fornecer números de série exclusivos para cada unidade de moeda, mas usará todos os recursos do computador apenas neste detalhe.
Talvez a melhor maneira de lidar com isso seja fornecer apenas uma identificação única para cada transação.
Portanto, o jogador 1 paga $ 1000000 ao jogador 2.
Se você atribuir a cada dólar um identificador único, os computadores de muitas pessoas começarão a ter grandes problemas, sem mencionar todo o tráfego de rede e o atraso que isso causará.
Ou você pode apenas criar um valor que represente toda a transação.
uint transferFunds_Player1ToPlayer2 = 1000000;
Mesmo uma calculadora de bolso de 20 anos pode lidar com algo assim.