Baru-baru ini saya memutuskan untuk mulai menulis mesin untuk permainan kartu. Saya bukan pemain "kartu" besar, tetapi seorang teman memperkenalkan saya ke permainan (itu adalah putaran pada permainan Denmark), dan saya jatuh cinta.
Saya ingin mengembangkan game dalam 3 segmen:
- Mesin dasar, menangani kartu / deck / gamestate, dll.
- Antarmuka pengguna (dalam bentuk aplikasi web seluler / desktop.)
- Kecerdasan buatan dengan berbagai strategi / kesulitan, dll.
Ini adalah proyek yang sangat berbeda, dalam pikiran saya ... dan saya berjuang untuk melihat bagaimana mereka semua akan cocok bersama dalam jangka panjang. Pada awalnya, saya bahkan tidak ingin bisa "memainkan" permainan menggunakan mesin. Mesin terutama akan diuji oleh unit test-nya. Pengujian bermain tidak akan mulai sampai klien ada. Jadi ada sesuatu hubungan klien-server di sini.
Mesinnya adalah potongan puzzle yang sangat besar. Yang ingin saya ketahui adalah: bagaimana Anda mengembangkan "API publik" untuk mesin ini?
Saya berpikir mesin itu bisa menjadi layanan web yang sangat mendasar, yang mengembalikan statusnya melalui permintaan ke RESTful API, tetapi saya khawatir bahwa mengembangkan mesin itu sendiri sebagai aplikasi web dapat menyebabkan keputusan pemrograman yang buruk. (Misalnya, jika saya memilih kerangka kerja MVC, well, API ini tidak akan benar-benar memiliki pandangan ... itu hanya mengembalikan objek berseri melalui JSON, atau sesuatu seperti itu. Apakah buruk menggunakan MVC untuk layanan seperti ini?)
Gagasan saya yang lain adalah bahwa mesin itu hanya akan menjadi aplikasi konsol, dan saya kemudian akan menulis semacam jembatan untuk menyalurkan data antara itu dan aplikasi web. (Jembatan benar-benar bisa apa saja. Maksudku, server web dan mesin gim dapat menganggur di server IRC dan berbagi statusnya dalam saluran.)
Pendekatan apa yang akan Anda ambil (kembangkan sebagai layanan web, atau kembangkan sebagai aplikasi mandiri dan jembatankan nanti), dan mengapa?
Terima kasih, Robbie.
EDIT: Jadi saya rasa ini termasuk dalam Pengembangan Game. Untuk memperjelas, saya akan menulis mesin permainan kartu. Saya mencoba mencari cara terbaik untuk mengekspos API mesin sehingga dapat diintegrasikan di masa depan dengan klien web, dan klien AI.
Saya bahkan tidak punya akun di sini, jadi bagaimana :)