सोशल नेटवर्क पर गेम के लॉन्च का इतिहास


वसंत 2013 के अंत की ओर, मैंने Google Play पर एक खराब शुरुआत की कहानी का वर्णन किया। आईओएस अड़चन के साथ, हमने गेम को वीके और ओके में फेंकने का फैसला किया। लेख में मैं सामाजिक नेटवर्क के तहत एप्लिकेशन लॉन्च करने की सुविधाओं को साझा करना चाहता हूं, और मैं रिलीज से पहले और बाद में आने वाली समस्याओं के बारे में बात करूंगा।

वेब प्लेयर संस्करण की विशेषताएं



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

हमें खेल के लिए एक पाद की भी जरूरत थी। इसमें आमतौर पर उपयोगी जानकारी, मित्रों को आमंत्रित करने के लिए एक बटन और एक समूह के लिए एक लिंक होता है। मैंने Unity3d के साथ मूर्ख नहीं बनाने का फैसला किया और इसे सीधे HTML में बनाया:


सर्वर साइड तैयारी


वेब संस्करण में, करियर, रेटिंग और भुगतान के विश्वसनीय संरक्षण के बारे में सवाल उठता है। इसके बिना, आवेदन अवर होगा। मैंने परिचित PHP + MYSQL बंडल की ओर देखा, जिसे मैं पहले से ही थोड़ा जानता था। प्रकाशक ने इस निर्णय पर नकारात्मक प्रतिक्रिया व्यक्त की (पोस्टग्रेक्यूएल पर स्विच करने की सलाह दी), लेकिन मैंने नहीं सुना और इसे अपने तरीके से किया, क्योंकि यह मेरे लिए आसान था।

DB संरचना, सभी आवश्यक डेटा यहां संग्रहीत हैं



मुख्य सर्वर। Php फ़ाइल ~ 300 लाइनों में सामने आई, यह निम्नलिखित विशेषताओं का वर्णन करती है:

खिलाड़ी इस फ़ाइल में POST के माध्यम से डेटा भेजता है और हम इसे डेटाबेस में लिखते हैं। बहुत सुरक्षित नहीं है, लेकिन कुछ सरल जांच हैं जैसे कि md5 के माध्यम से हस्ताक्षर करना जो स्कूली बच्चों के खिलाफ रक्षा करते हैं।

जवाब कुछ इस तरह से आता है:
{"id":"4","name":"Nolex","lvl":"7","coins":"9034","stamina":"40000","kill_zombies":"6952"} 

यह JSON है, Unity3d के लिए मैं आपको JsonFx.Json लाइब्रेरी का उपयोग करने की सलाह देता हूं।

रेटिंग खेल का एक महत्वपूर्ण तत्व है, मैं लगातार देखता हूं कि खिलाड़ी आपस में कैसे प्रतिस्पर्धा करते हैं, इसलिए मैं रेटिंग.फपी स्क्रिप्ट का उल्लेख करूंगा। इसमें 8 डेटाबेस प्रश्न थे, जिनमें से 4 बाद में मुझे परेशान करने लगे।

 SET @rownum:=0; SELECT r2.`rank`, r2.`name`, r2.`points` FROM (SELECT @rownum:=@rownum+1 as rank, `salto` as `points`, `name`, `id` FROM `players` as `r1` WHERE `sn` = '1' ORDER BY `salto` DESC) as `r2` WHERE `id` = '999' 

यह चयनित श्रेणी में वर्तमान खिलाड़ी की स्थिति निर्धारित करने के लिए समस्याग्रस्त प्रश्नों में से एक है। जब कुछ खिलाड़ी थे, तो यह तुरंत पारित हो गया, लेकिन बाद में अधिक खिलाड़ी थे, सब कुछ धीमा होने लगा और मैंने इस विकल्प को हटा दिया। अब, यदि खिलाड़ी TOP 100 में नहीं आया है, तो नीचे से हम बस उसकी जगह "> 100" और उसके बगल में अर्जित अंकों को प्रदर्शित करते हैं। मैं एक अलग समाधान के साथ नहीं आ सका।

बाद में, रिलीज के बाद, खेल के लिए एक और व्यवस्थापक दिखाई दिया , जहां मैंने नवीनतम डेटा का सारांश, सभी सामाजिक नेटवर्क के लिए एक सांख्यिकी अनुभाग और डेटाबेस में लॉगिंग के साथ अलर्ट भेजने का कार्यान्वयन किया।

संतुलन


एंड्रॉइड पर खराब रूपांतरण और सामाजिक नेटवर्क में ऑडियंस को देखते हुए, संतुलन की समीक्षा करने का निर्णय लिया गया। हमने "ऊर्जा" का एक एनालॉग बनाया - गैसोलीन। जब यह समाप्त होता है, तो खिलाड़ी के पास एक विकल्प होता है - प्रतीक्षा करें या दान करें

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

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

कम ईंधन चेतावनी खिड़की



सामाजिक नेटवर्क एकीकरण


सबसे पहले मैंने वीके में एकीकृत किया, यह आसान था, क्योंकि यह पहली बार नहीं है। एपीआई से मुझे थोड़ी जरूरत थी:

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

खेल का शुभारंभ


प्रकाशक को स्टेटिक फ़ाइलें क्लाउड पर अपलोड की गईं (22 एमबी आकार की * .unity3d फ़ाइल और अन्य चित्रों में)। PHP + MYSQL ने अपने कमजोर सर्वर पर होस्ट किया है, जिसे हम $ 40 / महीने के लिए एक साथी के साथ किराए पर लेते हैं। यह देखते हुए कि सब कुछ क्रम में है, हमने लॉन्च करना शुरू कर दिया।

वीके में सब कुछ बहुत जल्दी हुआ, उन्होंने चेक बटन पर क्लिक किया (प्रक्रिया निशुल्क है, 10 आवाज़ें जमा के रूप में ली गई हैं)। उसी दिन, आवेदन को मंजूरी दे दी गई और यह "न्यू" ब्लॉक में गिर गया। पहले ट्रैफिक चला।


सर्वर सामान्य रूप से व्यवहार करता था, लेकिन उतना अच्छा नहीं था जितना हम चाहते थे। अनुरोध धीरे-धीरे चले गए, कभी-कभी 3 सेकंड की देरी होती थी, इसलिए मैंने अपने दोस्त के लिए कहा, जिसकी हेत्स्नर पर अच्छी टैरिफ योजना थी।
शीर्ष में खेल लगभग एक सप्ताह तक चला, हर दिन यह कम और कम होता गया। एक दिन में 5-7k इंस्टॉलेशन थे , फिर यह 2k तक गिर गया।

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

अगला, ओके में लॉन्च की योजना बनाई गई थी। रिलीज को हमें 27 तारीख को सौंपा गया था, लेकिन किसी कारण से गेम को रिलीज किया गया और 24 जुलाई को "न्यू" को हिट कर दिया गया और फिर सर्वर बड़ी संख्या में लोगों की आमद से बीमार हो गया।

MySQL डेटाबेस डाउनलोड



इस प्रकार मेरे दोस्त का सर्वर नीचे झुक गया, जिसमें उसने कहा "बहुत-बहुत धन्यवाद" (वैसे, पैसे लाने वाले सर्वर पर 1 बड़ी परियोजना थी)। ब्रेक दिखाई दिए और कभी-कभी त्रुटि "502 बैड गेटवे" को खटखटाया गया। यह स्थिति एक दिन की थी।

घटनाओं के ऐसे मोड़ की उम्मीद न करते हुए, मैंने अपने सर्वर पर गेम को वापस फेंकने का फैसला किया। यह बेवकूफ था क्योंकि वह हिलने के 20 मिनट बाद गिर गया।

उन सभी खिलाड़ियों के लिए जिन्होंने इन दिनों खेला और "लैग्स" का सामना किया मैंने 1000 सिक्के फेंके और एक समाचार पत्र बनाया। ऐसी स्थितियों में यह अच्छा अभ्यास है।

अंत में, मैं सर्वर को प्रकाशक के पास ले गया, जहां खेल आज तक पर्याप्त रूप से काम करता है। वैसे, सर्वर काफी दिलचस्प है, यह लगातार कैश किया जाता है। Sftp php फ़ाइल संपादन कुछ मिनटों के बाद ही प्रभावी हो जाता है। यह बहुत सुविधाजनक नहीं है, लेकिन यह लोड के अनुकूलन के लिए किसी प्रकार की "चाल" लगता है, और मुझे काफी सफल कहना चाहिए।

खेल में पंजीकरण का ग्राफ, यहाँ आप लगभग वीके और ओके के साथ कितना यातायात देख सकते हैं



भुगतानों के साथ समान स्थिति के बारे में, ओके में उनमें से अधिक हैं, जहां से हम यह निष्कर्ष निकाल सकते हैं कि ट्रैफिक वहां "फेटर" है।

कुछ संख्या और निष्कर्ष



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

Source: https://habr.com/ru/post/In188964/


All Articles