En iyi cevap: Duruma göre değişir .
Hiçbirini sınırlamak zorunda değilsiniz
Güncellemeler : Güncellemeleriniz bir üst sınıra bağlı değilse , oyunun çalıştığı makineye bağlı olarak oyunu daha hızlı veya daha yavaş çalıştırmaktan kaçınmak için oyun mantığı bir delta zaman miktarına bağlı olmalıdır . Bu, birçok oyun tarafından kullanılan çok yaygın bir yaklaşımdır, ancak sadece bu değildir.
Oluşturma : Oluşturma bir üst sınıra bağlı değilse, çerçeve arabelleği eksik veya hatalı bir durumda sunularak yırtılmaya neden olabilir . Bu nedenle birçok oyun Dikey Senkronizasyon (v-sync) kullanır
Her ikisini de sınırlayabilirsiniz
Güncellemeler : Bazı oyunlar , oyun sistemlerinin bazıları veya tümü için sabit zaman aralıklarından yararlanır . Bu yaklaşım aynen sizin tanımladığınız gibi çalışır. Saniyede Güncelleme sayısı, üst düzey bir makinede işlerin çok hızlı hareket etmediğinden emin olmak için bir üst sınırla sınırlıdır. Bu delta zamanlaması ihtiyacını ortadan kaldırır. Bazı uygulamalar sabit zaman aralıklarında, bazıları delta zamanlamalı olarak daha iyidir. Hangi yaklaşımı seçmek tamamen tam olarak neyi başarmaya çalıştığınıza bağlıdır. Çevrimiçi kitap GameProgrammingPatterns , her iki mimariye de dokunan oyun döngülerine adanmış bir bölüme sahiptir .
Rendering : Saniyedeki Kare yukarıda belirtilen yırtılma sorunu önlemek için bir üst limit olarak ayarlanması gerekir, ancak, uygulama olmamalıdır bazı CPU kilidi ile el bunu çalışırlar. Bunun yerine, v-sync özelliğini etkinleştirin ve alt donanımın monitörün yenileme hızıyla senkronize olmasına izin verin. Bunu yaparak, oyununuz şu anda yaygın olan 60Hz'den çok daha yüksek bir frekansta çalışabilecek gelecekteki monitörlerle uyumlu olacak. Ayrıca, özellikle kıyaslamaya dahil olan birçok oyuncunun hala mümkün olan en yüksek kare hızına izin vermek için v-sync olmadan çalışmayı tercih ettiğini belirtmek gerekir. Bu nedenle, çalışma zamanı sırasında özelliğin etkinleştirilmesine veya devre dışı bırakılmasına izin vermek mantıklıdır.
Neyi sınırlamamalısın
Oyununuz kullanıcı girişi için yoklama tabanlı bir yaklaşım kullanıyorsa, örneğin: getInput()
güncelleme adımı sırasında denetleyici durumlarını güncellemek için bir tür çağrı çağırırsa , bu sınırlandırılmamışsa daha iyidir. Veya sınırlıysa, çok yüksek bir üst sınıra ayarlayın. Kullanıcı girişini ne kadar sık sorgular ve ona göre hareket ederseniz, oyun o kadar duyarlı ve pürüzsüz olur. Bugünlerde duyduğumuz 60Hz oyunlar, AI'yi ve tüm dünya durumlarını bu oranda güncellemiyor, bazıları bu kadar hızlı hale gelmiyor, ancak denetleyici girdisini saniyede en az 60 kez sorgulıyor ve oyuncu avatarını buna göre güncelliyor. Bunun sadece hızlı tempolu aksiyon oyunlarıyla gerçekten alakalı olduğu kabul edildi.