Benim RPG oyunun oyuncuları için araba yarışı nasıl oluşturulacağı - karmaşık bir fikir

3 Cevap php

Yani, benim RPG oyunun oyuncuları için araba yarışı oluşturmak istiyorum. Oyuncu ırkını yaratmak ve birçok katılımcının yarışa katılabilir nasıl seçebilirsiniz. Yarış yaratılıyor sonra, diğer insanlar bunu katılabilirsiniz. Maksimum katılımcıların toplandığı zaman, yarış başlar.

Benim fikrim, son katılımcı katıldığında, sonra hemen (araba en iyi kim mi, bu kişi kazanır) kazananı seçmek, ama ben bunu nasıl yapabilirim? Ben son katılan üye olduktan sonra kazanan almak isterseniz, o zaman ben kullanıyorum, (sonra tekrar o oyuncuların 'araba' istatistikleri seçin ve kazanan almak ve daha sonra yarışı silmek, tablodan verileri seçmek tek sayfada birçok sorguları koymak zorunda mysql,) herkese mesaj gönderebilirsiniz.

But this idea is really not optimal and it will lag cruelly for that last person. Maybe you have any ideas how I can avoid lag and make it more optimal. Thank you very much.

3 Cevap

But this idea is really not optimal and it will lag cruelly for that last person.

Ne düşündürüyor? "Yarışı alın katılımcıların olsun 'karakter istatistikleri, katılımcıların olsun' araç istatistikleri, bir kazanan almak için istatistikleri incelemek" ağır bir işleme yük değildir. Eğer and 100 diğer uygulamalar ile paylaşmak gerçekten eski donanım üzerinde çalışan sunucu sürece, bu yarış sonuçlarını belirlemek için yapar daha sunucuya bir ağ bağlantısı kurmak için artık kullanıcının tarayıcısını almalıdır .

Aslında bu tasarımı test ve oyun diğer sayfa yükler için gecikme yukarıda üzerinde ve son oyuncu için önemli bir gecikme gördüm, o zaman bir sorun ve optimizasyon ihtiyaç var - ama sorun algoritması ile neredeyse kesinlikle Eğer tek bir sayfa oluşturmak için birden fazla sorgu kullanımı ile, kazanan hesaplamak için değil kullanıyoruz.

Her zaman hatırla The Rules of Optimization Club.

Eğer son kişi katıldığında yarış işlenecek istiyorsanız, muhtemelen son kişi beklemenize gerek kalmaması uyumsuz işlem kullanmak istiyorum.

PHP here ve başka bir here ile uyumsuz işlem üzerinde bir soru var

Temel fikir olduğunu geçen yarışmacı ancak işlem sunucu üzerinde devam ediyor (muhtemelen sadece onları yarış sürmekte olduğunu bildirmek için bir mesaj ile) hızla döner yürütür sayfa.

Karmaşık tepki - ben bu oyunu çalışmayı hayal nasıl.

  1. kullanıcı düğmeyi 'ırk oluşturmak' tıklar ve oyun lobisine alınır.
  2. Başka bir kullanıcı, mevcut ırkların bir listesini görür 'yarışına katılmak' tıklar
  3. Her kullanıcı, daha sonra diğer yaratıcısı, bir 'hazır' onay kutusunu tıklamanız gerekmektedir. Bu ajax kullanarak yapılabilir. Ayrıca kullanıcının istatistikleri hesaplamak ve veritabanını güncellemek için bu plan isteği kullanabilirsiniz.
  4. Her kullanıcı aynı zamanda bir ajax isteği her saniye, ya da daha az oyun başlamış ise başka kim, hazır görmek, vb olacak
  5. oyun yaratıcısı herkes hazır ve tıklamalar olduğunu görür 'yarışı!' Patlar süreç isteği (tüm ajax, yavaş yavaş bütün proses göstermeye ekran boyunca hareket biraz yarış araba ver gülüm olabilir) kullanıcı tarafından hipnotize ise tüm complex calculations burada yapılmalı küçük yarış arabası (veya 'Racing ...' diyor sadece metin). , sonuçları ile belki bir tablo veritabanını güncellemek.
  6. Bu noktada yarış yaratıcısı geri sunucudan ajax cevap alır, bitti. Tarayıcılar sunucu ile kontrol edilmiştir 'diğer kullanıcıların, her her saniye ya şimdi sonuçlar ile geri sunucudan bir cevap olsun.

Bu tüm mantıklı umuyoruz. Sizin zaten bir JavaScript kütüphanesi kullanarak Değilse onlar çapraz tarayıcı ajax kadar basit yapmak gibi yapmanız önerilir.