Kısa süre önce bir kart oyunu için motor yazmaya karar verdim. Ben büyük bir "kart" oyuncusu değilim, ama bir arkadaşım beni oyuna tanıttı (bu Danimarka oyununa bir dönüş) ve aşık oldum.
Oyunu 3 segmentte geliştirmek istiyorum:
- Temel motor, kartları / desteleri / oyun tablosunu, vb.
- Bir kullanıcı arayüzü (mobil / masaüstü web uygulaması şeklinde)
- Çeşitli stratejileri / zorlukları olan yapay zeka vb.
Bunlar çok farklı projeler, bence ... ve uzun vadede hepsinin nasıl bir araya geleceğini görmekle uğraşıyorum. İlk başta, motoru kullanarak oyunu "oynamak" bile istemiyorum. Motor öncelikle birim testleri ile test edilecektir. İstemci var olana kadar oyun testi başlamaz. Yani burada bir istemci-sunucu ilişkisi var.
Motor bulmacanın çok büyük bir parçası. Bilmek istediğim şu: Bu motor için "genel API" yı nasıl geliştirirsiniz?
Motorun sorgulama yoluyla durumunu RESTful API'ye döndüren çok temel bir web hizmeti olabileceğini düşünüyordum, ancak motorun kendisini bir web uygulaması olarak geliştirmenin kötü programlama kararlarına yol açabileceğinden endişeliyim. (Örneğin, bir MVC mikro çerçeve seçtiysem, bu API gerçekten görünümlere sahip olmazdı ... sadece JSON aracılığıyla serileştirilmiş nesneleri döndürüyor ya da bu yönde bir şey. MVC kullanmak gibi bir hizmet için kötü bu? )
Diğer fikrim, motorun sadece bir konsol uygulaması olacağıydı ve daha sonra, veriyle web uygulaması arasında veri oluşturmak için bir tür köprü yazacağım. (Köprü gerçekten herhangi bir şey olabilir. Yani, web sunucusu ve oyun motoru bir IRC sunucusunda boşta kalabilir ve durumlarını kanallarda paylaşabilir.)
Hangi yaklaşımı benimseyeceksiniz (bir web hizmeti olarak geliştirebilir veya bağımsız bir uygulama olarak geliştirip daha sonra köprüleyebilirsiniz) ve neden?
Teşekkürler, Robbie.
EDIT: Sanırım bu Oyun Geliştirme aittir. Açıklığa kavuşturmak için bir kart oyunu motoru yazacağım. Gelecekte bir web istemcisi ve bir AI istemcisi ile entegre olabilmesi için motorun API'sını ortaya çıkarmanın en iyi yolunu bulmaya çalışıyorum .
Burada bir hesabım bile yoktu, öyleyse merhaba :)