2011-01-12 12 views
8

के लिए प्लेट के रूप में रेल पर रूबी चुनना मेरे पास कुछ (मुझे लगता है) Travian के समान ऑनलाइन रणनीति गेम के लिए वास्तव में बहुत अच्छे विचार हैं। ऐसी कुछ सामग्री है जिसे मैंने अभी तक नहीं समझा है और कुछ अन्य चुनौतियां जिन्हें मैं अभी तक नहीं जानता हूं।ब्राउज़र आधारित ऑनलाइन गेम

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

मुझे रुबी और रेल दोनों रेल पर रूबी पसंद है। मैं निश्चित रूप से इसमें कोई विशेषज्ञ नहीं हूं लेकिन मुझे इसके साथ काम करना अच्छा लगता है। मैंने पहले पाइथन + डीजेगो के साथ और PHP के साथ भी काम किया है (जिसे मैं पसंद नहीं करता हूं)

आदर्श रूप से गेम के पास 7000 खिलाड़ी प्रति सर्वर होंगे, संभवतः प्रति सेकेंड संसाधित होने के लिए बहुत सारे डेटा । क्या आरओआर अभी भी व्यवहार्य मंच होगा?

मुझे खेद है कि यह सवाल अस्पष्ट है, मुझे लगता है कि मैं एक "आरओआर ठीक है, उस पर जाओ!" उत्तर का प्रकार जो भी आप जोड़ना चाहते हैं वह ठीक है।

धन्यवाद!

+6

मुझे लगता है कि स्केलेबिलिटी के बारे में चिंता करने से पहले आपको 7000 लोगों को अपना गेम खेलने का प्रयास करना चाहिए। – elmt

+0

बेशक elmt। मैंने सोचा कि "आदर्श" शब्द का अर्थ यह होगा कि मैं मान रहा था कि यह अब से एक वर्ष या पांच का एक सफल खेल होगा। ;) –

+0

@ एल्मेट मैं "बाद में स्केलबिलिटी के बारे में चिंता" के बारे में सहमत हूं, लेकिन यह अभी भी एक वैध सवाल है। – Oddmund

उत्तर

6

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

इसका अर्थ है कि

वहाँ 3 मुख्य बातें जब आप एक वेब एप्लिकेशन स्केलिंग रहे हैं के बारे में चिंता करने की कर रहे हैं; स्मृति, निष्पादन गति, और उस क्रम में io (एचडी और नेटवर्क)।

स्मृति के लिए, चीजें बहुत बेहतर होती हैं तो वे होती थीं। फ़्यूज़न पैसेंजर अपने कर्मचारियों को फोर्क करने के लिए लिखने पर प्रतिलिपि का उपयोग करता है, इसलिए किसी भी टुकड़े पर सभी श्रमिकों के बीच रेल वातावरण साझा किया जाएगा, जो कि काफी महत्वपूर्ण है। यदि आप 1.8.7 का उपयोग कर रहे हैं, तो रूबी "अंधेरे समय" की तुलना में स्मृति का प्रबंधन करने के तरीके में भी बड़े पैमाने पर सुधार हुए हैं, तो आप रूबी एंटरप्राइज़ संस्करण बनाने वाले पैच का उपयोग करना चाहते हैं (अंतर रात और दिन की तरह है) । 1.9.एक्स रनटाइम का कुल पुनः लिखना था, इसलिए यदि आप इसका उपयोग कर रहे हैं तो मेमोरी के मुद्दे रूबी को पहले से ही संबोधित किया गया था।

निष्पादन गति के लिए, 1.8.7 आम तौर पर "पर्याप्त तेज़" होता है (कम से कम कचरा संग्रहण सेटिंग्स को ट्यून करने के बाद)। 1.9.2 वास्तव में पाइथन के समान गति के आसपास है, जो इसे व्याख्या की गई भाषाओं के तेज़ पक्ष पर रखता है। यह बिंदु आपके आवेदन की प्रकृति पर पूरी तरह से कितना महत्वपूर्ण है।

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

मैं जावा/में था।रेल में जाने से पहले नेट, और दिन के अंत में आप बुनियादी ढांचे के लिए अधिक भुगतान करने जा रहे हैं, लेकिन विकास के समय में आप जो बचाते हैं, उससे राशि पूरी तरह से बौना हो जाएगी।

+0

यही वह उत्तर है जिसे मैं सुनना चाहता था; कुछ सामान्य राय और सुझाव। बहुत बहुत धन्यवाद! =) –

+0

"फ़्यूज़न पैसेंजर अपने कर्मचारियों को फोर्क करने के लिए लिखने पर प्रतिलिपि का उपयोग करता है, इसलिए रेल कर्मचारियों को सभी श्रमिकों के बीच दिए गए स्लिक पर साझा किया जाएगा"। लेकिन कॉपी-ऑन-राइट केवल रूबी एंटरप्राइज़ संस्करण के साथ संभव है, न कि 1.9.2 के साथ। यही है ना –

1

जैसा कि आपने स्वयं कहा था, आपके पास पहले से ही जवाब है और आप केवल शब्दों को प्रोत्साहित करने के लिए देख रहे हैं :)। मैं खुद आरओआर विशेषज्ञ नहीं हूं, लेकिन मुझे नहीं लगता कि इस मंच पर स्केलेबिलिटी अभी भी एक बड़ी समस्या है। मैं आपको आर्किटेक्चर स्पाइक (एक्सपी टर्मिनोलॉजी) करने की सलाह दूंगा। 7000 क्लाइंट्स और विधि के साथ एक टेस्ट लिखें जो आपके द्वारा बनाए जाने के इरादे से समान संचालन करेगा। उदाहरण के लिए आप फ़ाइलों को लोड कर सकते हैं, विचार प्रस्तुत कर सकते हैं या यहां तक ​​कि बस प्रतीक्षा कर सकते हैं ... बिंदु केवल उस चीज का परीक्षण करना है जिसके बारे में आप चिंतित हैं। सौभाग्य!

6

इसे रेल में बनाएं, इसे Heroku.com पर होस्ट करें - काम पूरा किया गया। लगभग अनंत स्केलिंग कि आपको इस बारे में चिंता करने की ज़रूरत नहीं है कि यह कैसे काम करता है (यह करता है) और यह बहुत अधिक तस्करी वाले फेसबुक ऐप्स होस्ट करता है, इसलिए इसे संभालने से कहीं अधिक हो सकता है।

+0

अच्छा। Heroku के बारे में नहीं पता था। –

+0

मुझे हेरोकू के बारे में पता था, लेकिन मैंने कभी भी अपने ऐप को होस्ट करने का विचार नहीं किया। पारितोषिक के लिए धन्यवाद। –

+0

एक नए डेवलपर के रूप में जिसने स्केलेबिलिटी के साथ अधिक अनुभव नहीं किया है, आपको पता चलेगा कि आपकी बाधाएं आपके कोड से आती हैं: अनावश्यक अनुरोध, जब आपको आवश्यकता नहीं होती है तो मॉडलों को लोड करना, add_index को भूलना आदि। वे हैं चीजें जिन्हें आप अधिक अनुभव प्राप्त करते हैं, वैसे ही आप प्रतिक्रिया करने के लिए सीखते हैं। एक बार आपके पास बहुत सारे उपयोगकर्ता हैं, डेटाबेस आईओ अगली बाधा है, और यह चिंता का विषय है कि आप किस फ्रेमवर्क का उपयोग कर रहे हैं। मैं हेरोोकू की भी सिफारिश करता हूं। अपने स्केलिंग को आउटसोर्स करें ताकि आप अपना समय विकास पर खर्च कर सकें। आप स्वचालित स्केलिंग भी कर सकते हैं: https://github.com/ddollar/heroku-autoscale – danneu

0

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

संबंधित मुद्दे