Güncelleme browser oyunu Travian oyunda 4 çeşitli kaynaklar gibi özellikleri nasıl yaşamak?

4 Cevap php

Ben Travian gibi (ya da Ikariam benzeri) bir web-tabanlı oyun yapmak istiyorum. Oyun PHP & olacak MySQL tabanlı. Ben nasıl oyun niteliklerin canlı güncellenmesi elde edebilirsiniz merak ediyorum.

Önyüzde için, AJAX çağrıları (veritabanından son değerleri almak) veya (sunucu ile tebliğ değil) değerleri bile sahte güncelleştirmesini kullanarak elde edebilirsiniz.

Arkaplanı için, bu (her birkaç saniyede bir çalışan) bir PHP cron işi yapılır? Eğer öyleyse, herkes bana bazı örnek kodlar sağlayabilir?

Bu arada, ben IIS + FastCGI kullanmak eğer bir sorun olacağını biliyorum.

=== Sürüm Bilgisi ===

PHP: 5.2.3

IIS: 6.0 FastCGI

OS: Windows Server 2003 Standard R2

4 Cevap

Doğru cevabı kesin ihtiyaçlarına bağlıdır.

Herkes her zaman aynı oranda bilgi olsun mu? Eğer öyleyse, basit bir çözüm, kendi kullanıcı ne kadar uzun varolduğunu izlemek onlar alıyoruz oranına göre kaynakların miktarını hesaplamak ve bunların toplam geçirdim kaynakların sayısını çıkarmak olduğunu. Bu oran hiç rağmen, değiştirebilir eğer bir sorun biraz olacak, bu yüzden bu çözümü kullanmak eğer tamamen işleme (aşağıda birine örneğin) yeniden sürece, hemen hemen almak oranı ile sıkışmış konum .

Insanlar kaynaklarını nasıl alabilirim hızlı değişiyorsa, periyodik verileri güncellemeniz gerekir. A cronjob / zamanlanmış görev herkes emin güncellenen yapmak için iyi çalışır, ancak bazı durumlarda, her bir kullanıcının bilgi güncelledik yana oldu ne kadar sadece ölçmek için daha iyi olabilir, ve sonra yaptığınız her sayfa yük bunları güncelleştirmek iken onlar kaynaklarını kazanmak hangi oranı ile uzak oldum zaman çarparak kaydedilir - aslında yeni değeri ihtiyacınız olana kadar bu şekilde, sen güncelleme kaçının.

Ayrıca her zaman ressources hesaplayabilirsiniz bir sayfa ya da javascript sorar. Sen son güncelleme zamanı tutmak gerekiyordu.

Eğer son kez kullanıcıların kaynakları güncellenen zaman kaynak yönetimi gibi Travian için, takip etmek gerekir. Eğer (bir sayfayı yenileyin veya bir şey için) kaynak değerlerini okursanız, 'son güncelleme kez' beri kazanılan kaynakların miktarını eklemeniz gerekir (kaynak alanları miktarına bağlı ve kullanıcı alır Boni) ve bu değer göndermek tarayıcı. Ayrıca let tarayıcı komut bu tutarları hesaplamak olabilir.

Bu değerler a lot gereklidir beri veritabanı ile iletişimi geliştirerek, her nasılsa tüm kaynak miktarda önbelleğe dikkate olabilir.

Bir kullanıcı bir kaynak alanı bina tamamlanırsa, pazar kullanan bir yapı oluşturur, vb size sadece olayların bu tür takip edemez, çünkü kaynakların miktarını (ve 'son güncelleme zamanı') güncellemeniz gerekir.

Kullanıcı tarayıcının sayfayı yeniler zaman yeni değerler yazmak için her zaman gerek yok çünkü kaynakları hesaplayarak veritabanı yük azalır. Eğer daha az yuvarlama hatalar var çünkü aynı zamanda daha doğru olur.

Sayfa arasında artan kaynaklarını korumak için Frank Farmer anlatıldığı gibi bir yöntem gerekir yeniler. Sadece bazı javascript kaynak miktarı ve 'kazanç frekans' embed ve tek kaynak miktarını her 'kazanç frekans' artırır.

Bu eski bir yazı olabilir ama ben gelişmekte oldum oyun yapar nasıl başka bir seçenek işte Google hemen gelir.

Ben host üzerinde çalışan özel bir oyun sunucusundan canlı güncelleştirmeleri almak için bir flash soket kullanan bir istemci tarafı JavaScript kullanabilirsiniz.

I http://devpro.it/xmlsocket/ adlı XMLSocket kiti kullanın