मैंने हाल ही में एक कार्ड गेम के लिए एक इंजन लिखना शुरू करने का फैसला किया है। मैं एक बड़ा "कार्ड" खिलाड़ी नहीं हूं, लेकिन एक दोस्त ने मुझे खेल से परिचित कराया (यह गेम डेनिश पर एक स्पिन है), और मुझे प्यार हो गया।
मैं खेल को 3 खंडों में विकसित करना चाहता हूं:
- बुनियादी इंजन, कार्ड / डेक / गेमस्टेट इत्यादि को संभालता है।
- एक उपयोगकर्ता इंटरफ़ेस (मोबाइल / डेस्कटॉप वेब ऐप के रूप में)
- विभिन्न रणनीतियों / कठिनाइयों आदि के साथ एक कृत्रिम बुद्धिमत्ता।
ये बहुत अलग प्रोजेक्ट हैं, मेरे दिमाग में ... और मैं यह देखने के लिए संघर्ष कर रहा हूं कि वे लंबे समय में एक साथ कैसे फिट होंगे। सबसे पहले, मैं इंजन का उपयोग करके खेल को "खेलना" करने में सक्षम नहीं होना चाहता। इंजन को मुख्य रूप से इसकी इकाई परीक्षणों द्वारा जांचा जाएगा। जब तक कोई क्लाइंट मौजूद नहीं होगा, तब तक प्ले टेस्टिंग शुरू नहीं होगी। तो यहाँ एक क्लाइंट-सर्वर रिलेशनशिप है।
इंजन पहेली का एक बहुत बड़ा टुकड़ा है। जो मैं जानना चाहता हूं वह यह है: आप इस इंजन के लिए "सार्वजनिक एपीआई" को कैसे विकसित करेंगे?
मैं सोच रहा था कि इंजन एक बहुत ही मूल वेब सेवा हो सकती है, जो कि अपने राज्य को प्रश्नों के माध्यम से एक RESTful API पर लौटाती है, लेकिन मुझे चिंता है कि इंजन को वेब ऐप के रूप में विकसित करने से खराब प्रोग्रामिंग निर्णय हो सकते हैं। (उदाहरण के लिए, यदि मैंने एक MVC माइक्रो-फ्रेमवर्क चुना है, तो, इस API में वास्तव में दृश्य नहीं होंगे ... यह सिर्फ JSON के माध्यम से क्रमबद्ध वस्तुओं को वापस कर रहा है, या उस प्रभाव के लिए कुछ है। क्या एमवीसी को किसी सेवा के लिए उपयोग करना बुरा है। इस? )
मेरा दूसरा विचार यह था कि इंजन सिर्फ एक कंसोल ऐप होगा, और मैं बाद में इसके और वेब-ऐप के बीच डेटा को पाइप करने के लिए किसी तरह का एक पुल लिखूंगा। (पुल वास्तव में कुछ भी हो सकता है। मेरा मतलब है, वेब सर्वर और गेम इंजन दोनों एक आईआरसी सर्वर में निष्क्रिय हो सकते हैं और चैनलों में अपने राज्य को साझा कर सकते हैं।)
आप किस दृष्टिकोण को अपनाएंगे (वेब सेवा के रूप में विकसित होते हैं, या स्टैंडअलोन ऐप के रूप में विकसित होते हैं और बाद में पुल होते हैं), और क्यों?
धन्यवाद, रोबी।
संपादित करें: तो मुझे लगता है कि यह खेल विकास में है। स्पष्ट करने के लिए, मैं एक कार्ड गेम इंजन लिखने जा रहा हूं। मैं इंजन के एपीआई को उजागर करने का सबसे अच्छा तरीका जानने की कोशिश कर रहा हूं ताकि इसे भविष्य में वेब क्लाइंट और एआई क्लाइंट के साथ एकीकृत किया जा सके ।
मेरा यहाँ खाता भी नहीं था, इसलिए हॉवी :)