Sıfırdan gerçek zamanlı bir strateji oyunu yapmak için bir projem var. Hala erken planlama aşamasındayım ama mekaniği görmek için biraz program yapıyorum.
Nasıl programlayacağımı biliyorum. Ayrıca, bilgisayar sınıfları için oyun sınıflarını ve Kural Tabanlı (durum makinesi) yapay zekayı nasıl yapılandıracağım konusunda iyi bir fikrim var.
İzci, Görev Yolunu Takip Et, Pozisyonu tut (yaklaşan düşmanlara saldır veya bunalırsa geri çekilme) gibi belirli bir birime belirli bir davranış kazandıracak (ancak aynı anda birçok birimde kullanılabilir) Doktrinler geliştirmek istiyorum. , vb...
Doktrinler sadece birimler için geçerli olacak, bu yüzden bir birim perspektifi olacak ve tüm harita durağanlığından haberdar olmayacaklar.
Bilgisayar yapay zekası tüm görünür haritayı analiz edecek ve başka bir kurallar kümesine bağlı olarak her birime hangi sostrinin atanacağına karar verecektir.
Bunu OpenGL ile C # yapıyorum.
Şimdilik, ana düşünceme başlamadan önce testlerde çok fazla şey yok, sadece birkaç şey var. Tüm oyun işleme (güncelleme mouvement, mücadele, render, vb, birbiri ardına arayacağım) bir oyun döngüsü var, Application.Idle olayı çok sık çağrılır.
Şimdi merak ediyordum. Oyun döngüsünde işlenecek çok şey olacağından, Bilgisayar AI ve Birimler bu döngüdeki eylemlerini seçmeli mi yoksa çok yavaş mı olacak?
Her şeyin aynı anda olmasını istiyorsam, bilgisayar AI için ayrı bir iş parçacığı oluşturmalı mıyım? Ya da her ünite için ayrı bir iplik mi?
Çoklu iplik geçirme konusunda fazla deneyimim yok. Bunun için en iyi yaklaşım ne olurdu?