क्या मुझे खेल मुद्रा की अलग-अलग इकाइयों को एक अद्वितीय आईडी प्रदान करनी चाहिए?


22

मैं वर्तमान में एक MMORPG बना रहा हूं।

फिलहाल, मैं खेल के मुद्रा भाग पर काम कर रहा हूं, लेकिन मैं उलझन में हूं कि क्या मुझे उत्पन्न मुद्रा की प्रत्येक इकाई के लिए एक अद्वितीय सीरियल नंबर असाइन करना चाहिए।

मैं आभासी मुद्रा के किसी भी दुरुपयोग का पता लगाने के लिए इस प्रणाली का उपयोग करने की उम्मीद कर रहा हूं, लेकिन क्या यह एक सामान्य अभ्यास है और यदि नहीं, तो क्या यह परिचालन और / या प्रदर्शन के दृष्टिकोण पर एक अच्छा विचार होगा?


8
आपके खेल में कितनी बार ऐसा होगा कि एक खिलाड़ी एक मिलियन ज़ोर्ममिड्स को दूसरे में स्थानांतरित करता है? जब ऐसा होता है, तो क्या आपको अपने डेटाबेस में एक लाख संस्थाओं को अपडेट करना होगा?
फिलिप

1
यह वास्तव में एक दिलचस्प विचार है। बिटकॉइन कुछ ऐसा करता है, मुद्रा की मनमानी मात्रा के लिए। कोई समाधान / संभावना हो सकती है।
ashes999

4
@ ashes999 बिटकॉइन स्टैकएक्सचेंज के लोग कहते हैं कि बिटकॉइन खाते की शेष राशि का भी पता लगाता है न कि मुद्रा की व्यक्तिगत इकाइयों का।
फिलीपींस

1
पैसा पूरी तरह से है, तो प्रतिमोच्य फिर एक zorkmid किसी भी अन्य की तरह है।
जो

1
सच नहीं जो। शुद्ध सोने की बुलियन पूरी तरह से फंफूदी है, लेकिन अक्सर गबन को रोकने के लिए धारावाहिक है।
कार्ल स्मिथ

जवाबों:


26

यह समझ में आने की संभावना नहीं है।

जब मुझे प्लेयर A से 100 Zorkmids और प्लेयर B से 100 Zorkmids मिलते हैं, तो मेरे पास 200 Zorkmids हैं।

जब मैं प्लेयर Z को 50 Zorkmids का भुगतान करता हूं, तो क्या C उन्हें उन Zorkmids से मिलेगा जो मुझे A मिला है या जिन्हें मुझे B से मिला है? क्या मेरा इस पर नियंत्रण है? क्या इससे भी फर्क पड़ता है? एक जोर्कमिड एक जोर्कमिड है।

यह निश्चित रूप से वास्तविक दुनिया के बैंकों और एकाउंटेंट के लिए मायने नहीं रखता है जो सभी खातों के लेनदेन के इतिहास का पता लगाते हैं, न कि मुद्रा की व्यक्तिगत इकाइयों के लेनदेन इतिहास का। इस तरह से दुरुपयोग की पहचान करना अभी भी संभव है।

यह कहा जा रहा है, मैं एक ऐसे खेल की कल्पना कर सकता हूं, जो व्यक्तिगत सिक्कों को इन्वेंट्री आइटम के रूप में मानता है, इसलिए जब आप किसी के साथ व्यापार करते हैं, तो आपको यह सुनिश्चित करना होगा कि आपके पास अतिरिक्त परिवर्तन है। यह कुछ दिलचस्प विशेषताओं की अनुमति देगा, जैसे सिक्के को चिह्नित करना, मुग्ध करना या नकली करना। उस मामले में यह अलग-अलग प्रत्येक सिक्के का पता लगाने के लिए समझ में आता है। लेकिन मैं किसी भी खेल के बारे में नहीं सोच सकता जो वास्तव में ऐसा करता है।


5
मुझे बस एक ऐसा खेल याद आया जो वास्तव में प्रत्येक व्यक्ति के सिक्के का पता लगाता है, लेकिन यह ऑनलाइन गेम नहीं है: बौना किले । लेकिन बस उन चीजों में से बहुत से जैसे यह अनुकरण करता है, यह वास्तव में इसकी पूर्ण गेमप्ले क्षमता का उपयोग नहीं करता है।
फिलिप

4
मुझे यह नोट करना है कि मेरा असली £ 10 नोट उस HC40415464पर लिखा है, इसलिए स्पष्ट रूप से एक अद्वितीय आईडी और वास्तविक विश्व शासन के लिए कुछ लाभ हैं
रिचर्ड टिंगल

2
@RichardTingle, असली नोटों में लेनदेन को ट्रैक करने की कम से कम संभावना और जालसाजी को और अधिक कठिन बनाने की अनुमति देने के लिए सीरियल नंबर हैं (यदि आप प्रत्येक नोट पर एक ही नंबर प्रिंट करते हैं, तो कोई नोटिस कर सकता है)। लेकिन एक खेल में सभी मुद्रा लेनदेन एक केंद्रीय प्राधिकरण द्वारा ट्रैक किए जाते हैं और जालसाजी संभव नहीं है।
cjm

मैं एक ऐसे खेल के विचार से प्यार करता हूं जो वास्तव में सिक्कों के प्रतिकार के लिए अनुमति देता है। वहाँ सिर्फ मंत्र और वस्तुओं के लिए एक पूरा बाजार होगा जो उन्हें पता लगा सकता है, और निश्चित रूप से "पता लगाने योग्य नहीं" फोर्जियों का एक पूरा बाजार! इसके अलावा, "व्हॉट्स ज़र्क" वेबसाइट होने की संभावना है ...
टिम होल्ट

3
यह 'सही' उत्तर गलत है। वास्तविक विश्व बैंक पैसे की व्यक्तिगत इकाइयों को ट्रैक करने के लिए बहुत खर्च करते हैं।
कार्ल स्मिथ

6

नहीं, आपको नहीं करना चाहिए।

जब आपको ऐसी प्रणालियों का निर्माण करना चाहिए जो आपको मुद्रा लेनदेन को ट्रैक करने की अनुमति दे सकती हैं (विशेषकर यदि वह मुद्रा वास्तविक-मुद्रा अवरोधक है), तो आपको उस मुद्रा की प्रत्येक व्यक्तिगत इकाई को ट्रैक करने की आवश्यकता नहीं है । आप जिस चीज़ पर नज़र रखने में रुचि रखते हैं, वह विशेष रूप से बड़े संस्करणों में धन का कुल संचलन है (जैसा कि यह संभावित बाहरी / असमान वास्तविक-पैसे के लेनदेन का एक संकेतक हो सकता है)। मुद्रा की अलग-अलग इकाइयों पर नज़र रखने से इसमें मदद नहीं मिलती है (वास्तव में इससे चोट लग सकती है), और केवल आपको बहुत सी आईडी बनाने और अपने डेटाबेस में जानकारी के अपेक्षाकृत बड़े पैमाने पर स्टोर करने के लिए संबंधित डेटा के रखरखाव की आवश्यकता होती है।

इस विचार के लिए कुछ मूल्य हैं कि असली-पैसे के लिए आपत्तिजनक मुद्राएं (यानी, आप वास्तविक दुनिया के पैसे से खरीदें जो खेल सामग्री खरीदने के लिए उपयोग की जाती हैं, जैसे कि गिल्ड वॉर्स 2 में रत्न )। विशेष रूप से, यह इच्छा अर्थव्यवस्था में "मुक्त" बनाम उन लोगों के बीच मुद्रा की इकाइयों के बीच अंतर करने के लिए उत्पन्न हो सकती है, जिन्हें वास्तविक वास्तविक दुनिया के लेनदेन के माध्यम से पेश किया गया था। आम तौर पर आप बाद में राजस्व को अंततः पहचान सकते हैं, इसलिए उन्हें अलग रखना महत्वपूर्ण है।

हालाँकि, आप उन सूचनाओं को ट्रैक कर सकते हैं, जिनकी आपको बस कुल (कुल इकाइयों में कुल इकाइयाँ, दोनों 'मुक्त' और 'मुद्रा के भुगतान') उदाहरणों के लिए संख्याएँ संग्रहीत करके मिल सकती हैं। यह सामान्य विचार के साथ-साथ चलता है कि आप इन चीजों को समग्र रूप से ट्रैक करना चाहते हैं, आम तौर पर लेन-देन स्तर और वर्तमान स्तर नहीं, क्योंकि यह दोनों उन डेटा को ट्रैक करता है जिनकी आपको वास्तव में आवश्यकता होती है और धन के बड़े हिस्से को ट्रेस करना आसान बनाता है क्योंकि वे फैलते हैं आपके पूरे सिस्टम में।


4

लेखक का ध्यान दें: यह उत्तर इस धारणा के साथ दिया गया है कि आप नेटवर्क से दूर रहते हुए ट्रेडिंग नहीं कर रहे हैं और फिर सर्वर पर वापस सिंक कर रहे हैं।

आपको विशेष रूप से मुद्राओं के व्यक्तिगत सीरियल नंबरों को ट्रैक करने की आवश्यकता नहीं है क्योंकि व्यक्तिगत खिलाड़ियों के बीच कोई भी लेनदेन आपके सर्वर के माध्यम से होना चाहिए। दूसरे शब्दों में, आपके सर्वर अकाउंट बैलेंस पर आधिकारिक स्रोत हैं। आपके सर्वर उपयोगकर्ता से यह नहीं पूछेंगे कि उसके पास कितना पैसा है। सर्वर से जुड़े क्लाइंट एक एपीआई कॉल के माध्यम से सर्वर से पूछते हैं "मेरे खिलाड़ी के पास कितना पैसा है"। यह एक धारणा है कि खिलाड़ी नेटवर्क से दूर रहते हुए ट्रेडिंग नहीं कर रहे हैं और फिर सर्वर (एस) पर वापस सिंक कर रहे हैं [हालांकि यह उपन्यास होगा, मैं इसकी सिफारिश नहीं करता हूं जब तक कि आप सिद्धांत में बहुत समय बिताना नहीं चाहेंगे। ]।

सरकारी मुद्रा के उदाहरण में, एकमात्र आधिकारिक स्रोत वह मुद्रा है जब खाते से जुड़ी नहीं होती है [एक आदमी $ 200 निकालता है, प्रत्येक बिल एक सीरियल नंबर के साथ "हस्ताक्षरित" होता है जो इसे टैग करता है ताकि अन्य यह निर्धारित कर सकें कि क्या यह वास्तविक है (यदि वे ऐसा करने के झंझट से गुजर गए)। जब बिल को बैंक में ले जाया जाता है, तो यह निर्धारित करने के तरीके होते हैं कि क्या सीरियल नंबर संचलन से बाहर चिह्नित किए गए हैं, आदि]। लेकिन, कभी-कभी मुद्रा देखे बिना खातों के बीच फंड ट्रांसफर करने वाली एकल शाखा में आपके लेनदेन कई उपयोगकर्ताओं के समान होते हैं।

चित्रण करने के लिए मुख्य कहानी सिर्फ यह है कि आपका आधिकारिक स्रोत कौन है: मैं चित्रण करने की कोशिश करूँगा: एक उपयोगकर्ता एटीएम से पैसे निकालना चाहता है। उपयोगकर्ता शाखा में नहीं जाता है और घोषणा करता है "मेरे पास $ 500 हैं, मुझ पर विश्वास करो, ये धारावाहिक हैं"। इसके बजाय वह कुंजी [खाता संख्या / कुंजी] देता है और शाखा / सर्वर अपने धन के उपयोगकर्ता को सूचित कर सकता है और उसे अपनी शेष राशि कम करते हुए मुद्रा निकालने की अनुमति दे सकता है। कोई फर्क नहीं पड़ता कि कोई उपयोगकर्ता बैंक को समझाने की कोशिश करता है "वास्तव में, मुझे $ 500 मिल गए हैं" जब तक कि आधिकारिक स्रोत (सर्वर) संतुलन की पुष्टि नहीं करता है, तब तक कुछ भी नहीं होगा।

चीयर्स।


2

यदि आप वास्तविक दुनिया कैसे काम करती है, इसके आधार पर एक गेम सिमुलेशन को प्रोग्राम करने की कोशिश करते हैं तो आप कुछ बड़ी समस्याओं में भाग लेने जा रहे हैं जब यह आता है कि कंप्यूटर कितनी सूचनाओं को संसाधित कर सकता है।
उदाहरण के लिए निम्न पृष्ठ को लें, जो यह गणना करने का प्रयास है कि रेत के एक दाने में कितने परमाणु हैं।

http://www.thenakedscientists.com/forum/index.php?topic=6447.0

मैंने केमिस्ट्री और फिजिक्स की पढ़ाई से लेकर इस तरह की बहुत सारी समस्याओं को देखा है और इस पृष्ठ पर जो व्यक्ति आया है वह विभिन्न शिक्षकों और पाठ्यपुस्तकों के साथ आई बॉल पार्क में है। -> 78 000 000 000 000 000 000

यहां तक ​​कि अगर यह रास्ता बंद है और आप उन शून्य में से 6 को हटाते हैं, तो आपके पास अभी भी एक संख्या होगी जो औसत कंप्यूटर के लिए इंटरैक्टिव दरों पर संभालने के लिए बहुत बड़ी है। खासतौर से तब जब किसी समय में इनमें से 1000 लेनदेन हो रहे हों।

हम संभवतः एक समुद्र तट पर रेत के हर अनाज में प्रत्येक परमाणु के गति, स्थिति, वेग, तात्कालिक त्वरण, क्षेत्र शुल्क आदि की गणना और ट्रैक कर सकते हैं, अगर सिर्फ एक अनाज में 78 000 000 000 000 000 000 व्यक्तिगत घटक हैं। (या इससे भी अधिक यदि आप उप-परमाणु घटकों पर विचार करते हैं।)

मैंने एक बार एक nVidia ग्राफ़िक्स प्रोग्रामिंग दस्तावेज़ पढ़ा, जिसमें निम्न जैसा कुछ कहा गया था।
क्या करें जो सबसे अच्छा लगने का सबसे अच्छा अनुमान देता है क्योंकि कोई भी वास्तव में यह बताने में सक्षम नहीं होगा कि क्या सिमुलेशन 100% सटीक नहीं है। दक्षता को ध्यान में रखना होगा।

यह हर प्रकार के गेम सिमुलेशन के लिए लागू होता है, भले ही इसका ग्राफिक्स के साथ कोई लेना-देना न हो। आपको शायद केवल नंगे न्यूनतम करना चाहिए जो काम करने के लिए लेता है। यदि आप यहां से बाहर जाते हैं तो आप कंप्यूटर को उस जटिलता से भर देंगे, जिसे वह संभाल नहीं सकता।
आपको इस जटिलता का कोड लिखना और प्रयास करना होगा।

आप मुद्रा की प्रत्येक इकाई को अद्वितीय सीरियल नंबर दे सकते हैं लेकिन आप कंप्यूटर के सभी संसाधनों का उपयोग इस एक विस्तार से करेंगे।

शायद इसे संभालने का एक बेहतर तरीका प्रत्येक लेनदेन के लिए केवल 1 विशिष्ट पहचान देना है।

तो खिलाड़ी # 1 खिलाड़ी # 2 $ 1000000 का भुगतान करता है।
यदि आप प्रत्येक डॉलर को एक विशिष्ट पहचानकर्ता देते हैं, तो कई लोगों के कंप्यूटरों में बड़ी समस्याएं होने लगेंगी, न कि सभी नेटवर्क ट्रैफ़िक और इस कारण होने वाले अंतराल का उल्लेख करने के लिए।

या आप केवल एक मूल्य बना सकते हैं जो पूरे लेनदेन का प्रतिनिधित्व करता है।

uint transferFunds_Player1ToPlayer2 = 1000000;

यहां तक ​​कि एक 20 वर्षीय पॉकेट कैलकुलेटर कुछ इस तरह से संभाल सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.