engineeringfairnessmultiplayer
सर्वर अधिकार का मतलब है कि खेल की जो इकलौती प्रति मायने रखती है वह सर्वर के पास है। आपका डिवाइस वह चाल भेजता है जो आप खेलना चाहते हैं, सर्वर उसे अपने पासों और अपने नियमों के सामने परखता है, और तभी बोर्ड बदलता है। बदला हुआ ऐप कुछ भी दावा कर सकता है: सच्चाई वहाँ रहती है जहाँ उसकी पहुँच नहीं है।
बैकगैमन इसी सख्ती का हकदार है। यह सीढ़ी और पॉट वाला पासों का खेल है, यानी धोखा देने के दो रास्ते हैं: चालें गढ़ना या दाँव मोड़ना। निष्पक्ष सर्वर को दोनों दरवाज़े बंद करने होंगे। दूसरे दरवाज़े में हम खुद शामिल हैं, और उस तक हम आएँगे।
सर्वर अधिकार का असल मतलब क्या है?
Orion का हर चालू खेल एक ही जगह मौजूद होता है: हमारे सर्वर पर। आपके फोन का बोर्ड एक खिड़की है, खेल नहीं। जब आप गोटी खींचते हैं, ऐप उसे हिलाता नहीं। वह एक छोटा संदेश भेजता है जो कहता है: मैं यह खेलना चाहता हूँ। सर्वर उस इरादे को अपने बोर्ड पर, अपने नियम इंजन से, उसी बारी के लिए फेंके अपने पासों के साथ दोहराता है। वैध चालें खेल आगे बढ़ाती हैं, और दोनों खिलाड़ियों को वही नई स्थिति मिलती है। अवैध चालें कभी हुई ही नहीं।
यह सबके लिए एक ही सर्वर है। iOS ऐप नेटिव SwiftUI है, Android ऐप नेटिव Jetpack Compose है, और दोनों उसी बैकएंड और उसी खिलाड़ी समूह की खिड़कियाँ हैं। शीशा अलग, सच्चाई वही।
क्लाइंट पर भरोसा करने वाले खेलों में धोखा क्यों होता है?
क्योंकि आपके प्रतिद्वंद्वी का डिवाइस आपके प्रतिद्वंद्वी का है। उस पर जो कुछ चलता है, वह बदला जा सकता है। पैच किया हुआ क्लाइंट ऐसी चालें भेज सकता है जो कभी वैध थीं ही नहीं। मेमोरी एडिटर मौके पर कोई अंक बदल सकता है, और स्क्रीन उस झूठ को ईमानदारी से दिखा देगी। इसमें कुछ भी असाधारण नहीं है। ये औज़ार मुफ्त हैं, दस्तावेज़ी हैं और स्मार्टफोन से पुराने हैं।
क्लाइंट पर भरोसा करने वाला खेल हर खिलाड़ी से यह वादा माँगता है कि वह बोनट के नीचे नहीं झाँकेगा। कुछ झाँकते हैं। इसलिए हमने क्लाइंट की राय को बेमानी बना दिया। Orion में ऐप के पास ठीक तीन काम हैं:
- बनाना: बोर्ड, गोटियाँ, क्यूब, घड़ी।
- माँगना: सर्वर से चाल खेलने को कहना, डबल देना, हार मानना।
- पाना: वह स्थिति दिखाना जिसे सर्वर असली कहता है।
पासे फेंकना, वैधता तय करना और एक भी सिक्का हिलाना उस सूची में नहीं है। नतीजा तय करने वाली कोई चीज़ किसी डिवाइस पर जन्म नहीं लेती।
जब मैं चाल चलता हूँ तो क्या होता है?
आप चलते हैं।. आपका ऐप इरादा भेजता है: यह गोटी, ये पॉइंट। आपके डिवाइस पर कुछ भी असली बोर्ड नहीं बदलता।
सर्वर उसे दोहराता है।. हमारा नियम इंजन उस चाल को सर्वर के बोर्ड और सर्वर के पासों के सामने चलाता है। वैध है तो खेल आगे बढ़ता है। नहीं है तो वह स्रोत पर ही ठुकरा दी जाती है, चाहे उसे किसी भी ऐप ने भेजा हो।
दोनों पक्षों को वही सच मिलता है।. नई स्थिति दोनों खिलाड़ियों तक जाती है। अगर आपका कनेक्शन टूटता है, तो बारी की घड़ी की दोबारा जुड़ने की मोहलत आपकी जगह बचाए रखती है, और आप बोर्ड पर वैसे लौटते हैं जैसा वह सचमुच है, वैसा नहीं जैसा आपके फोन को आखिरी बार याद था।
दाँव पर लगी रकम भी यही नियम मानती है। जब बाय-इन वाला खेल शुरू होता है, सर्वर दोनों की जमा राशि अपने पास रखता है। पॉट एक ही बहीखाते में रहता है, सर्वर पर, और खेल खत्म होने पर वहीं चुकता होता है। किसी क्लाइंट से कभी नहीं पूछा जाता कि उसे लगता है उसने कितना जीता। सिक्के और रत्न आभासी हैं, असली दुनिया में उनका कोई मूल्य नहीं और उन्हें भुनाया नहीं जा सकता, फिर भी हम उस बहीखाते को ऐसे रखते हैं जैसे उसमें कुछ कीमती हो, क्योंकि है: बोर्ड की स्थिति पर आपका भरोसा।
सर्वर को खुद धोखा देने से क्या रोकता है?
यही सही सवाल है, और ज़्यादातर खेल उम्मीद करते हैं कि आप इसे कभी न पूछें। जो सर्वर चुपचाप पासे फेंकता है, वह जिसका पक्ष ले रहा हो उसके लिए मेहरबान दाँव फेंक सकता है, और आपको कभी पता नहीं चलेगा। हर दाँव मानने लायक लगता है। पासे ऐसे ही होते हैं।
इसलिए हमने वह ताकत खुद से छीन ली। खेल शुरू होने से पहले सर्वर एक गुप्त बीज बनाता है और उसकी SHA-256 प्रतिबद्धता प्रकाशित करता है। फिर हर दाँव उसी बीज से HMAC-SHA256 के ज़रिए निकाला जाता है, एक-एक करके, क्रम से। खेल खत्म होने पर सर्वर बीज उजागर कर देता है। कोई भी जाँच सकता है कि बीज पहली फेंक से पहले दी गई प्रतिबद्धता से मेल खाता है और खेल का हर दाँव उसी से निकलता है। क्रिप्टोग्राफ़िक अर्थ में आपके पासे तब तय हो चुके थे जब दोनों खिलाड़ियों में से किसी ने गोटी छुई भी नहीं थी। हम बारहवाँ दाँव उस वादे को तोड़े बिना नहीं मोड़ सकते जो हमने शून्यवें दाँव पर छापा था।
इसमें से किसी बात के लिए आपको हमारी बात मानने की ज़रूरत नहीं। orion.arthea.ai/verify की जाँच पूरी कड़ी आपके ब्राउज़र में, Web Crypto से, आपकी मशीन पर, खेल के सार्वजनिक रिकॉर्ड से दोबारा गिनती है। कोई खाता नहीं, कोई इंस्टॉल नहीं। orion.arthea.ai/go का दरवाज़ा App Store और Google Play के लिंक लिए हुए है और हमेशा दिखाता है कि इस वक्त क्या उपलब्ध है।