- Mario Kart 8 में build का प्रदर्शन driver, body, tire और glider के combination के अनुसार बदलता है, इसलिए इतने सारे विकल्पों में सबसे अच्छा build चुनना मुश्किल होता है
- सिर्फ speed देखें तो Bowser या Wario अच्छे लग सकते हैं, लेकिन असली race selection speed और acceleration को साथ देखकर की जाने वाली multi-objective optimization के ज्यादा करीब है
- Koopa जैसे विकल्प, जो समान acceleration पर अधिक धीमे हों या समान speed पर जिनका acceleration कम हो, dominated choices के रूप में हटाए जा सकते हैं
- बचे हुए विकल्प Pareto front बनाते हैं, लेकिन उनमें से क्या सबसे अच्छा है यह play style और stats weighting पर निर्भर करता है
- जब preference स्पष्ट न हो, तो Pareto front एक ही सही जवाब देने के बजाय साफ तौर पर कमजोर combinations को हटाकर प्रयोग की सीमा कम कर देता है
Mario Kart 8 build को Pareto front से छोटा करना
- Mario Kart 8 का build driver, body, tire, glider इन चार तत्वों से बनता है, और हर तत्व में speed और acceleration जैसे performance stats होते हैं
- हर तत्व में दर्जनों विकल्प हैं, और कुछ केवल style का फर्क हैं जिनके stats एक जैसे हैं, लेकिन duplicates हटाने के बाद भी हजारों combinations बचते हैं
- अगर केवल एक stat देखें तो चयन आसान हो जाता है
- उदाहरण के लिए, अगर drivers को सिर्फ speed के आधार पर rank करें, तो Bowser या Wario स्वाभाविक विकल्प लगते हैं
- लेकिन speed और acceleration को साथ देखें तो हर विकल्प के अपने फायदे-नुकसान होते हैं, और केवल simple ranking से सबसे अच्छा विकल्प तय करना कठिन हो जाता है
- अगर कोई विकल्प, दूसरे विकल्प की तुलना में, सभी महत्वपूर्ण stats में समान या बदतर हो, तो वह dominated choice बन जाता है
- उदाहरण में Koopa, Cat Peach की तुलना में समान acceleration पर कम speed देता है, और Toadette की तुलना में समान speed पर उसका acceleration कम है
- ऐसे विकल्पों को जीतने के लक्ष्य के लिए उम्मीदवारों की सूची से हटाया जा सकता है
- जो efficient विकल्प dominated नहीं होते, वे मिलकर Pareto front या Pareto frontier बनाते हैं
- Pareto efficiency, वस्तुनिष्ठ रूप से कमजोर विकल्पों को हटाने का एक मानदंड है, लेकिन frontier पर मौजूद सभी विकल्प एक जैसे अच्छे नहीं होते
- अगर आपको संतुलित speed और acceleration चाहिए, तो frontier के extremes पर मौजूद drivers से बचना चाह सकते हैं
- अंतिम चयन play style, skill, और आप किन stats को ज्यादा महत्व देते हैं, इस पर निर्भर करेगा
Mario Kart के बाहर भी बार-बार दिखने वाले trade-offs
- इसी तरह की trade-off संरचना गेम के बाहर भी अक्सर दिखाई देती है
- सस्ता और स्वादिष्ट भोजन
- अधिक वेतन वाली, आसान और संतोषजनक नौकरी
- कम जोखिम और अधिक रिटर्न वाला portfolio
- लचीला, मजबूत और बनाना आसान material
- efficiency बनाए रखने वाला fair taxation
- तेज़ और cost-efficient high-quality LLM
- अगर आपको हर dimension को दिए जाने वाले सही weight, यानी utility function, का पता हो, तो कई dimensions को एक value में जोड़कर इसे single-objective optimization में बदला जा सकता है
- जब utility function ज्ञात न हो या अनिश्चित हो, तब Pareto front साफ तौर पर inefficient विकल्पों को हटाने में उपयोगी होता है
- Pareto front शुरुआत से ही एकमात्र सबसे अच्छा विकल्प नहीं बताता; बचे हुए efficient विकल्पों को आपको खुद आज़माकर अपने लिए उपयुक्त विकल्प चुनना होता है
सरल मान्यताएँ और data sources
- इसमें असली in-game calculations से अलग कुछ सरल मान्यताएँ शामिल हैं
- stats को game के derived stats में बदला जाता है, और उनका base stats से संबंध हमेशा linear नहीं होता
- driver को छोड़कर equipment में 4 speed stats और 4 handling stats होते हैं, लेकिन लेख में इन्हें simple average कर दिया गया है
- utility function का ठोस रूप छिपा हुआ है, जबकि असली चयन में यह बड़ी भूमिका निभा सकता है
- data के लिए Mario Kart 8 Deluxe in-game statistics और Mario Kart and the Pareto Frontier का संदर्भ लिया गया है
1 टिप्पणियां
Hacker News की राय
यह विज़ुअलाइज़ेशन/लेख आजकल के game design में मेरी निजी नापसंद वाली choice for the sake of choice समस्या को अच्छी तरह दिखाता है
लगता है designers “7 लाख से ज़्यादा builds!” जैसे वाक्यों को जरूरत से ज्यादा महत्व देने के जाल में फंस जाते हैं। वे इस combinatorial explosion का बोझ player पर डाल देते हैं, और अगर ये choices core game experience को खास मजबूत नहीं करतीं, तो यह बस समय बर्बाद करवाना है। खासकर तब, जब skilled player choice space के ज्यादातर हिस्से को सुरक्षित रूप से हटा सकता है; और इंटरनेट है ही, तो कोई न कोई calculation कर ही लेगा। समझ नहीं आता कि competitive element को convex optimization problem के पीछे क्यों छिपाया जाता है, और इसे मज़े के लिए मानना मुश्किल है
FPS में loadout configuration भी इसी trend का उदाहरण है। एक gun में भी optic, barrel, underbarrel attachment, magazine, ammunition जैसी trade-offs जुड़ जाती हैं, और उससे पहले ही class/weapon चुनना पड़ता है। अगर FPS का core tactical positioning और aiming है, तो ये options playtime थोड़ा और खींचने वाली cheap trick लगती हैं। Halo और Battlefield जैसी franchises भी इस जाल में फंसकर अपनी reputation खराब कर चुकी हैं
Counter-Strike की round economy जैसी core play में जुड़ने वाली choices अब भी संभव हैं। अगर player को दी जाने वाली सारी choices सिर्फ menu के अंदर ही होती हैं, तो इसे warning sign मानना चाहिए। game design industry को statistics/combinatorics की तुलना में play और narrative को ज्यादा महत्व देना चाहिए
सबसे जरूरी बात है कि दूसरों पर खेलने का तरीका न थोपें। जब तक साफ तौर पर पूछा न जाए, “X सबसे अच्छा है, इसलिए वही चुनना चाहिए” न कहें; हर किसी को अपने तरीके से खेलने दें
आम तौर पर मैं सहमत हूं कि यह तरीका cheap trick है और बहुत आम हो गया है। फिर भी content unlocks की तरह player को “कुछ करने को” देने में इसका अर्थ है। यह experience में “मैं अभी भी यह game क्यों खेल रहा हूं” वाला एहसास जोड़ता है
हम सब जानते हैं कि साथ खेलते समय ऐसा कोई व्यक्ति होता है जो सबका मज़ा चूस लेता है। game seller के नजरिए से यह सिर्फ बुरा ही नहीं, बेवकूफाना design भी है
हालांकि overwhelming choices की वजह से experts और build creators की एक परत बनती है, जिस पर सामान्य players निर्भर कर सकते हैं। अच्छा होगा अगर game खुद इन्हें explore करने के लिए और tools दे, जैसे in-game build guide system
party में भी अलग-अलग characters की attributes game को ज्यादा dynamic बनाती हैं और आखिरकार ज्यादा मजेदार करती हैं। समस्या तब है जब कोई पूरे पिछले हफ्ते सारे numbers Excel में डालकर आता है और जानता है कि सबको optimally कैसे हराना है। लेकिन line कहां खींचें? क्या यह किसी track की पूरे हफ्ते practice करने से ज्यादा unfair है?
हमें यह स्वीकार करना होगा कि game हमेशा fair नहीं हो सकता। sports भी ऐसे ही हैं। अगर आप tournament experience वाले व्यक्ति के साथ tennis खेलें, तो casual player pro को बहुत खराब racket देने पर भी एक ball ठीक से hit नहीं कर पाएगा
casual और pro को समान शर्तों पर compete करा सकने वाला balance बनाना बहुत मुश्किल है, और गलत दिशा में जाने पर game को सिर्फ dice roll पर निर्भर बेहद simple चीज़ बना सकता है। कम से कम यह साफ दिखाना चाहिए कि यह Excel game है या reflex game, तभी यह थोड़ा ज्यादा fair होगा
मैं हमेशा जानता था कि लाल छोटे tires सबसे अच्छे हैं। अफसोस, यह analysis मेरे लिए सबसे जरूरी style और Zelda के प्रति प्रेम को miss कर रहा है। इसलिए निजी तौर पर मुझे इसे पूरी तरह ignore करना होगा
fairness बनाए रखने के लिए मैं Koopa ही चुनता रहूंगा :)
सचमुच impressive presentation थी। Pareto efficiency/Pareto frontier के बारे में पहले से जानता था, लेकिन अब लगता है कभी नहीं भूलूंगा, और हर बार Mario Kart और बेचारे dominated Koopa की याद आएगी
इसे target बनाकर design करना संभव नहीं, और यह अक्सर बनावटी और चिढ़ाने वाला लगता है। मगर कभी-कभी, इस बार की तरह, इतना शानदार होता है कि मन करता है, “ठीक है, मेरी scroll ले लो”
design के बारे में मैं असहमत हूं। मेरे लिए यह presentation जानकारी ढूंढने के लिए video देखने जैसा था—बहुत धीमा और लगातार frustrating। उस लिहाज से original notebook format कहीं बेहतर था
हर section के अंदर का layout सुंदर है, लेकिन animations और scroll-responsive layout static charts के समूह की तुलना में पढ़ने में मुश्किल थे
content शानदार था और characters व karts के differences कैसे सामने आते हैं, यह देखना दिलचस्प था
असल में यह समझ को आसान या बेहतर नहीं बनाता, बस design के लिए over-designed जैसा लगता है
अच्छा लेख है। नतीजे में निकला Pareto frontier अच्छी तरह दिखाता है कि game design कितना मुश्किल है। संभावित combinations लाखों में हो सकते हैं, लेकिन असली competitive माहौल में इस्तेमाल होने वाले combinations बेहद कम ही होते हैं
निश्चित रूप से हर combination की competitive उपयोगिता और game में जोड़े गए मज़े के बीच balance में भी कोई meta Pareto frontier होगा
पर्याप्त रूप से complex game में हर build को किसी खास cost function को optimize करने वाला माना जा सकता है, इसलिए उसे Pareto frontier पर समझा जा सकता है
“कम risk और high return वाला portfolio? [...] बेशक, अगर आपको exact weights पहले से पता हों” कहा गया था, लेकिन इस case में problem structure की वजह से यह 1-dimensional optimization तक घट जाता है
portfolio selection में optimize की जाने वाली चीज़ किसी single investment का return नहीं, बल्कि पूरी ज़िंदगी में investment returns हैं। compounding की वजह से यह risk और return का function बन जाता है। इसलिए बिना किसी trade-off के optimal allocation पाया जा सकता है: https://two-wrongs.com/the-misunderstood-kelly-criterion.htm...
Kelly criterion bankruptcy risk वाले काफी profitable bets को रोकता है। क्योंकि wealth 0 हो जाए तो future compounding opportunities खो जाती हैं। लेकिन अगर आप युवा हैं और portfolio आपकी income की तुलना में छोटा है, तो यह ज़रूरत से ज़्यादा conservative है
लेख में भी future salary के discounted sum को current wealth का हिस्सा बताकर इसका संकेत दिया गया है। यह सही बात है, और अगर आप युवा हैं तो कई orders of magnitude के अंतर से सबसे अहम variable भी है। दिलचस्प है कि लेखक इसे समझते हुए भी इसकी परवाह नहीं करते लगते
इसे design tool की तरह इस्तेमाल करने के बारे में सोचकर उत्साह होता है। ऐसे games design करने में यह useful लगता है जिनमें मज़ेदार और viable builds का Pareto frontier ज़्यादा चौड़ा हो
title से जितना लगा था, उससे कहीं ज़्यादा दिलचस्प लेख था। अच्छी तरह बनाया गया
सचमुच शानदार analysis और visualization है। हालांकि Mario Kart 8 + 200cc में एक दिलचस्प variable है। ज़्यादातर players एक certain level से ऊपर speed नहीं चाहते, क्योंकि वह इतनी तेज़ होती है कि control करना मुश्किल हो जाता है
इसलिए absolute speed stat को maximize करने के बजाय, आप शायद अपने लिए सही optimal speed stat से difference minimize करना चाहें
अक्सर top speed कम हो लेकिन slow down करने की ज़रूरत न पड़े, तो वह बेहतर होता है
acceleration इसलिए important है क्योंकि जब आप hit होते हैं या crash करते हैं—और यह “अगर” नहीं बल्कि “कब” का मामला है—तो आपको जल्दी catch up करना पड़ता है
अब तक देखे visualizations में सच में सबसे impressive है। लेखक ने इसे किस tool से बनाया होगा?
Svelte में काफी अच्छा built-in scroll animation support है: https://svelte.dev/repl/051cd352ce284d15b55c91c8b30fa32f?ver...