फ़ोन अपने ही लूप कैसे गिनता है
Looping को न कैमरा चाहिए, न रेफ़री: फ़ोन अपना थ्रो खुद मापता है। फ़ोन के हाथ से छूटने और स्कोर दिखने के बीच क्या होता है, वह यहाँ है।
दो सेंसर, जो हर फ़ोन में होते हैं
एक्सेलेरोमीटर उन बलों को मापता है जो फ़ोन महसूस करता है। मेज़ पर रखा हो तो वह गुरुत्वाकर्षण का खिंचाव पढ़ता है, करीब 9.8 मी/से²। जायरोस्कोप मापता है कि फ़ोन अपने तीनों अक्षों में से हर एक के इर्द-गिर्द कितनी तेज़ घूम रहा है, डिग्री प्रति सेकंड में।
दोनों को फ़ोन में स्क्रीन घुमाने, कदम गिनने और फ़ोटो स्थिर रखने के लिए लगाया गया था। Looping इन्हें ब्राउज़र के ज़रिए पढ़ता है, हर सेकंड दर्जनों बार।
उड़ान पहचानना
जिस पल फ़ोन हाथ से छूटता है, उसे धकेलने वाला कुछ नहीं बचता। वह मुक्त गिरावट में होता है, ऊपर जाते हुए भी और नीचे आते हुए भी, और एक्सेलेरोमीटर लगभग कुछ नहीं पढ़ता। अचानक आई यही खामोशी उड़ान की पहचान है। वह एक तीखे धक्के के साथ खत्म होती है, जब कोई हाथ या गद्दा फ़ोन को रोक लेता है।
घूमता फ़ोन तस्वीर को धुँधला कर देता है: उसका एक्सेलेरोमीटर ठीक बीच में नहीं लगा होता, इसलिए घुमाव खुद उस पर दबाव डालता है। इसीलिए गेम सीधा-सादा शून्य नहीं ढूँढता। वह जाँचता है कि एक्सेलेरोमीटर जो पढ़ रहा है, वह ठीक वही है जो जायरोस्कोप के मापे घुमाव से समझ में आता है। हाथ में हिलाया गया या मेज़ पर घुमाया गया फ़ोन यह परीक्षा पास नहीं करता।
गिने जाने के लिए उड़ान कम से कम 0.3 सेकंड की होनी चाहिए: करीब ग्यारह सेंटीमीटर ऊपर, इतना कि थ्रो और हाथ के झटके में फ़र्क किया जा सके।
चक्कर गिनना
उड़ान के दौरान जायरोस्कोप हर सेकंड कई बार घूमने की गति बताता है। हर रीडिंग को उतने समय से गुणा करो जितने समय की वह है, सब जोड़ दो, और तुम्हें वह कुल कोण मिल जाता है जितना फ़ोन घूमा, अक्ष चाहे जो हो: सिरे के बल (फ़्लिप), अपनी लंबाई के इर्द-गिर्द (रोल), या सपाट रहकर लट्टू की तरह (सपाट घुमाव)।
एक लूप 360° का होता है। स्क्रीन पर दिखने वाली संख्या पूरे चक्करों की गिनती है, और चक्कर अपने 80% से गिना जाने लगता है। जो लोग थ्रो देखते हैं, उन्हें मुक्त उड़ान के घुमाव से करीब पाँचवाँ हिस्सा चक्कर ज़्यादा दिखता है, क्योंकि फ़ोन छूटते समय हाथ में ही घूमने लगता है और पकड़ते समय भी घूम रहा होता है। लीडरबोर्ड तो कुल कोण से तय होता है, एक-एक डिग्री तक।
ऊँचाई कहाँ से आती है
गेम छत नहीं देखता: वह उड़ान का समय नापता है। जो चीज़ ऊपर उछाली जाए और उसी ऊँचाई पर पकड़ी जाए, वह हवा में अपना आधा समय चढ़ने में और आधा उतरने में बिताती है, और इसी से ऊँचाई निकलती है: हवा में 0.5 सेकंड यानी करीब 30 सेमी, 0.75 सेकंड यानी करीब 70 सेमी, एक सेकंड यानी करीब 1.2 मीटर।
यह एक अनुमान है। फ़ोन को जहाँ से उछाला था उससे नीचे पकड़ो, तो आँकड़ा तुम्हारी थोड़ी चापलूसी कर देता है।
जब सेंसर साथ नहीं दे पाता
हर जायरोस्कोप की एक सीमा होती है: घूमने की वह गति जिसके आगे वह एक ही संख्या दोहराता रहता है। हमने कुछ Android फ़ोन पर करीब 1,150 °/से, कुछ पर 2,300 °/से और एक नए iPhone पर 4,000 °/से मापा, यानी एक सेकंड में ग्यारह चक्कर।
जब कोई थ्रो सीमा पार कर जाता है, तो गेम छूटे हुए चक्कर गढ़ता नहीं। वह उतना न्यूनतम रखता है जितना उसने सचमुच मापा और यह नतीजे में बता देता है, या जब किसी बात की गारंटी नहीं दे सकता तो थ्रो अस्वीकार कर देता है। स्कोर सच से कम हो सकता है; ज़्यादा कभी नहीं।
स्कोर सर्वर के पास क्यों रहता है
तुम्हारा फ़ोन थ्रो दर्ज करता है; फ़ैसला नहीं सुनाता। कच्ची रीडिंग गेम के सर्वर पर जाती हैं, जो सबके लिए एक जैसे नियमों से स्कोर गिनता है और जाँचता है कि रीडिंग सचमुच की मुक्त उड़ान बयान करती हैं। एक रिकॉर्डिंग सिर्फ़ एक बार गिनी जा सकती है।
इसी से लीडरबोर्ड भरोसेमंद बनता है: कोई संख्या नहीं भेज सकता, सिर्फ़ थ्रो भेज सकता है। नेटवर्क न हो तो थ्रो फ़ोन पर रखा जाता है (बारह तक, सात दिनों के लिए) और कनेक्शन लौटने पर गिन लिया जाता है।
गेम क्या पढ़ता है, और क्या नहीं
Looping मोशन सेंसर पढ़ता है और कुछ नहीं: न कैमरा, न माइक्रोफ़ोन, न लोकेशन। क्या दर्ज होता है और कितने समय के लिए, यह कानूनी सूचना में लिखा है।
Looping खेलेंऔर पढ़ो
English Français Español Português Deutsch Italiano Nederlands Polski Türkçe Русский Українська العربية हिन्दी বাংলা Bahasa Indonesia Tiếng Việt ไทย 日本語 한국어 中文