मैंने एक dice physics simulation app बनाई है.
(apps.apple.com)नमस्ते। मैंने अपना पहला व्यक्तिगत app Dicey लॉन्च किया है। यह iOS के लिए एक physics-based dice app है।
मैं अपनी बेटी के साथ board game खेलने वाला था, लेकिन हमारे पास dice नहीं थे, इसलिए मैंने एक digital dice app ढूंढी। लेकिन सच में हिलाकर फेंकने वाली app मिली ही नहीं। ज़्यादातर apps में button दबाने पर नंबर आता था और उस पर सिर्फ rolling animation चढ़ी होती थी, यानी RNG वाला तरीका। कुछ apps shake detect भी करती थीं, लेकिन उन्हें सिर्फ इतना पता चलता था कि "हिलाया गया", दिशा की जानकारी नहीं होती थी। यह अजीब लगा, तो सोचा क्यों न मैं खुद ही बना लूँ।
कुछ समय बाद मैं parental leave पर गया। लगा कि सिर्फ बच्चे की देखभाल ही न करूँ, और कोई दूसरा idea भी नहीं था, तो मैंने यही बनाने का फैसला किया।
मुझे Unity physics की ज़्यादा समझ नहीं थी, इसलिए काफ़ी समय तक भटकता रहा। Friction बढ़ाता तो dice का एक कोना फ़र्श से चिपक जाता, और चिपकने से बचाता तो वह roll करने के बजाय सिर्फ फिसलता रहता — इस dilemma की वजह से मैंने friction value 5 से 120 तक बढ़ाकर देखी, contact point की संख्या से friction को correct किया, कोना छूने पर random torque देकर उसे गिराने की कोशिश की, और न जाने क्या-क्या किया। बाद में पता चला कि physics settings में बस कुछ options बदल देने से समस्या हल हो जाती थी। ^^;
मैं Fold6 इस्तेमाल करता हूँ, लेकिन Galaxy vibration पहले से बेहतर होने के बावजूद छोटा और साफ़ impact feel नहीं दे पा रहा था। मुझे पता था कि iPhone haptics अच्छे होते हैं, इसलिए मैंने एक used iPhone 14 और MacBook Air खरीदकर iOS पर port किया और चलाकर देखा, तो फ़र्क तुरंत महसूस हुआ। इसलिए development के बीच में ही मैंने iOS को main platform बना लिया।
इसी दौरान एक दिन मैंने App Store में dice खोजा, तो पता चला कि "Shake 'em Dice" नाम की app पहले से मौजूद है। हिलाकर roll करना और dice जोड़ने का तरीका भी मेरे app से काफ़ी मिलता-जुलता था। उस समय लगा कि अब तो गया काम। लेकिन मैं इसमें पहले ही बहुत समय लगा चुका था, और मुझे लगा कि haptics मेरे app में बेहतर हैं, इसलिए मैं आगे बढ़ता रहा। Apple ने भी पहली submission यह कहकर reject कर दी कि यह "मौजूदा app से बहुत ज़्यादा मिलती-जुलती है" (4.3a)। इसलिए जो "cup बदलना" feature मैं मूल रूप से paid रखने वाला था, उसे differentiation के लिए पहले ही ले आया, और एक ऐसा cup mode बनाया जिसमें दीवार से टकराने पर dice की आवाज़ नहीं बल्कि musical instrument की आवाज़ आती है।
मैंने cup को octagon में बदलकर हर दीवार पर दो-रे-मी map किया। Dice को किसी दीवार से टकराओ तो वही सुर बजता है। Slingshot की तरह खींचकर छोड़ो तो मनचाही दीवार पर निशाना लगाकर melody बजाई जा सकती है, हिलाओ तो कई सुर एक साथ झरने की तरह निकलते हैं, और auto-play में सुनो तो वह music box जैसा महसूस होता है। अंदर से यह MIDI file parse करके score की तरह इस्तेमाल करता है, और note velocity तक reflect करके दीवार से टकराने की ताकत (= volume) पर लागू की है। तकनीकी रूप से users को अपना MIDI डालकर मनचाहा गीत बजाने देना भी मुश्किल नहीं है, लेकिन पता नहीं सच में कोई ऐसा चाहेगा या नहीं।
यहीं से मेरी उलझन शुरू होती है।
एक सवाल यह है कि क्या music cup वाली दिशा सही है। इसे और गहराई तक ले जाने की गुंजाइश है (impact strength के हिसाब से अलग timbre record करना, instrument जोड़ना, TRPG के लिए dice sum calculation rules वगैरह)। लेकिन मूल सवाल यही है कि क्या सच में कोई dice से music बजाना चाहता भी है। Mobile dice खुद ही असली dice का विकल्प हैं, इसलिए शायद इसकी demand भी बहुत बड़ी नहीं है। मैंने इसे अपने मन से, अपने आनंद के लिए बनाया है, इसलिए भरोसा नहीं हो रहा। फिर भी जब मैं MIDI auto-play को यूँ ही देखता रहता हूँ, तो audio-visual तौर पर काफ़ी soothing लगता है — लेकिन शायद यह सिर्फ इसलिए कि मुझे उससे लगाव है; हो सकता है इसका आनंद लेने वाला सिर्फ मैं ही हूँ। ^^;
दूसरी उलझन इससे भी ज़्यादा बुनियादी है। बाकी लोग SaaS या developer tools जैसी कमाई करने वाली चीज़ें बनाते हैं, और मैं इतना समय लगाकर बस वही बनाता रहा जो मुझे अकेले मज़ेदार लगा। यह न बहुत flashy है, न बहुत cool, और इसका content भी simple है। मान लिया कि मैंने इसका promotion नहीं किया, लेकिन जब download करने वाले ही नहीं हैं — तो सोचता हूँ कि क्या मुझे कोई और ज़्यादा marketable topic ढूँढना चाहिए।
Revenue model अभी पूरी तरह free है: न ads, न in-app purchase। मुझे basic features के लिए पैसे लेना पसंद नहीं है। बाद में शायद premium cup designs या कुछ unusual dice को in-app purchase के रूप में रखूँ, लेकिन यह सही दिशा है या नहीं, इसे लेकर भी पक्का नहीं हूँ।
यह पहला project है जिसे मैंने शुरुआत से अंत तक पूरा किया है, इसलिए इसे बहुत बेहतरीन बनाने से ज़्यादा मेरा लक्ष्य था कि कम-से-कम इसे पूरा तो करूँ। आप इसे इस्तेमाल करके ईमानदार प्रतिक्रिया दें, तो वह मेरे लिए सच में बहुत मददगार होगा।
2 टिप्पणियां
साइज़... 420MB है, अगर एक 0 कम होता तो और अच्छा लगता।
सही कहा। मैं इसे लगातार टालता रहा क्योंकि यह कोई functional issue नहीं था, लेकिन लगता है कि अब capacity optimization करनी पड़ेगी। आपकी राय के लिए धन्यवाद।