आपके स्तर का आख़िरकार कोई मतलब है
अब मेज़ की हर सीट XP कमाती है, पहला स्तर बढ़ाने में दो हफ़्ते के खेल की जगह 60 XP लगते हैं, और स्तर रैंक तथा संग्रहणीय कार्ड देते हैं।

आसान शब्दों में
XP एक ऐसा आँकड़ा था जो कुछ नहीं करता था। खेल में कुछ भी आपके स्तर पर निर्भर नहीं था, और XP सिर्फ़ बाज़ी जीतने वाले को मिलता था — यानी हर मेज़ पर लगभग दो-तिहाई लोग पूरी बाज़ी खेलते, हारते, «मैच XP +0» देखते, और उनके पास यह सोचने की कोई वजह नहीं थी कि यह संख्या उनके लिए है।
अब हर सीट कमाती है। आपका स्थान भुगतान देता है, बाज़ी ख़त्म होते समय आपके पास मौजूद एकाधिकार भुगतान देते हैं, और बिना बाहर हुए अंत तक पहुँचना भी भुगतान देता है। जीत अब भी सबसे बड़ी है — एक जीत सबसे अच्छे संभव हार के परिणाम से दोगुने से ज़्यादा है — लेकिन अच्छी हार अब शून्य नहीं है।
| आपने क्या किया | XP |
|---|---|
| बाज़ी जीती | +200 |
| दूसरा स्थान | +50 |
| तीसरा स्थान | +30 |
| चौथा स्थान और उससे नीचे | +15 |
| अंत में आपके पास हर एकाधिकार (अधिकतम 3) | +10 |
| बिना बाहर हुए अंत तक पहुँचे | +20 |
पूरी कर्व इसी के चारों ओर दोबारा बनी। पहला स्तर अब 60 XP का है, जो एक ठीक-ठाक बाज़ी में पूरा हो जाता है — हारी हुई बाज़ी में भी — जबकि पहले इसमें लगभग दस दिन का खेल लगता था। उसके बाद के स्तर एक झटके में नहीं, धीरे-धीरे महँगे होते हैं।
और अब स्तर दो चीज़ें देते हैं। आपके स्तर के साथ एक रैंक जुड़ी होती है — कुल 7, «क्वालिफ़ायर» से «मास्टर» तक — जो आपकी प्रोफ़ाइल और लीडरबोर्ड पर नाम के बग़ल में दिखती है। और कोई मील का पत्थर स्तर पार करने पर आपके संग्रह में एक संग्रहणीय संपत्ति कार्ड गिरता है: स्तर 3, 5, 7, 10, 13, 16, 20, और उसके बाद हर 5वाँ स्तर।

तकनीकी जानकारी
इस काम का दिलचस्प आधा हिस्सा प्रतियाँ हटाना था। पुराना नियम — हर 500 XP पर एक स्तर — पाँच डेटाबेस माइग्रेशन और तीन TypeScript फ़ाइलों में हाथ से लिखा था, और वे आपस में अलग हो चुके थे: टेस्ट डेटा ऐसा स्तर बो रहा था जो नियम का कोई भी संस्करण पैदा नहीं कर सकता। अब एक ही कर्व है, एक ही फ़ाइल में, और डेटाबेस में हूबहू उसकी नक़ल:
// packages/game-engine/src/progression.ts — one curve, mirrored exactly in SQL
step(L → L+1) = min(60 + 100·(L−1), 1500)
level 2 3 4 5 10 16 17+
xp 60 220 480 840 4,140 11,400 +1,500 eachगणित जान-बूझकर सिर्फ़ पूर्णांकों में है — न वर्गमूल, न दशमलव — ताकि SQL और TypeScript हर सीमा पर बिलकुल एक जैसे रहें, लगभग एक जैसे नहीं; और असली डेटाबेस पर चलने वाला एक टेस्ट दोनों की मान-दर-मान तुलना करता है। दोनों कर्व बढ़ती हुई हैं, इसलिए पुनर्गणना के समय लीडरबोर्ड पर कोई किसी से आगे नहीं निकला।
इसे बनाते समय तीन ऐसी ख़राबियाँ मिलीं जो काफ़ी समय से लाइव थीं और जिन्हें कोई टेस्ट नहीं पकड़ सका था: नतीजे की स्क्रीन का स्तर-बार आपके कुल XP की जगह मैच का इनाम पढ़ रहा था, इसलिए हर स्तर के हर खिलाड़ी को वही बार 40% पर जमा हुआ दिखता था; छोटी बाज़ी जीतना हार के रूप में दर्ज हो रहा था, इसलिए वे जीतें कभी किसी जीत-मिशन को आगे नहीं बढ़ाती थीं; और टीम मोड में जीतने वाले साथी को कुछ भी नहीं मिलता था और उसे हारा हुआ दर्ज किया जाता था, क्योंकि दो विजेताओं में से एक पंक्ति-संख्या के हिसाब से पहले स्थान पर नहीं था। तीनों ठीक हैं, और हर एक के लिए ऐसा टेस्ट है जो सुधार के बिना विफल होता है।
