Gerçek dünyanın nasıl çalıştığına bağlı olarak bir oyun simülasyonu programlamaya çalışırsanız, o zaman bir bilgisayarın ne kadar bilgi işleyebileceği konusunda bazı büyük problemlerle karşılaşacaksınız.
Örneğin, bir kum tanesinde kaç atom bulunduğunu hesaplamaya çalışan bir sonraki sayfayı ele alalım.
http://www.thenakedscientists.com/forum/index.php?topic=6447.0
Bunun gibi kimya ve fizik okumaktan ve bu sayfadaki kişinin geldiği saçma sayıdaki yüksek sayıların, çeşitli öğretmenler ve ders kitaplarının ortaya çıktığını gördüğü top parkında olduğunu gördüm. -> 78 000 000 000 000 000 000
Bu yol kapalı olsa ve bu sıfırdan 6'sını kaldırsanız bile, ortalama bilgisayarın etkileşimli hızlarda ele alması için çok büyük bir sayıya sahip olacaksınız. Özellikle bu işlemlerden 1000'lerin herhangi bir zamanda gerçekleşmesi durumunda.
Sadece bir tane 78 000 000 000 000 000 000 münferit bileşene sahipse, kumsaldaki her bir kum tanesindeki her atomun momentumunu, konumlarını, hızını, anlık ivmelerini, alan yüklerini vb. Nasıl hesaplayabiliriz ve izleyebiliriz. (Alt atomik bileşenleri göz önüne alırsanız daha da fazla.)
Bir keresinde aşağıdaki gibi bir şey ifade eden bir nVidia grafik programlama belgesini okudum.
İyi görünüme en iyi yaklaşımı veren şeyi yapın, çünkü simülasyonun% 100 doğru olup olmadığını kimse anlayamaz. Verimlilik dikkate alınmalıdır.
Aynı şey, grafiklerle ilgisi olmasa bile, her tür oyun simülasyonu için de geçerlidir. Muhtemelen işlerin yürümesi için gerekenlerin sadece minimumunu yapmalısınız. Hepsini buraya çıkarsanız, bilgisayarı kullanamadığı karmaşıklığa gömeceksiniz.
Ayrıca, bu karmaşıklığın kodunu yazmalı ve denemelisiniz.
Her birim para birimine benzersiz seri numaraları verebilirsiniz, ancak tüm bilgisayar kaynaklarını bu ayrıntıda kullanırsınız.
Belki de bunun üstesinden gelmek için daha iyi bir yol, her işlem için yalnızca 1 benzersiz kimlik vermektir.
Yani # 1 oyuncu # 2 $ 1000000 öder.
Her dolara benzersiz bir tanımlayıcı verirseniz, çoğu insanın bilgisayarlarında tüm ağ trafiğinden ve bunun neden olacağı gecikmeden bahsetmek yerine büyük sorunlar yaşamaya başlarsınız.
Veya işlemin tamamını temsil eden yalnızca bir değer oluşturabilirsiniz.
uint transferFunds_Player1ToPlayer2 = 1000000;
20 yaşında bir cep hesap makinesi bile böyle bir şeyle başa çıkabilir.