DVD लोगो को कोने में रखना (2023)
(eieio.games)- बचपन में हर किसी ने जिस “DVD लोगो के स्क्रीन के कोने को बिल्कुल छूने के पल” का इंतज़ार किया था, उसे 45 सेकंड के PICO-8 arcade game में बदलने वाला प्रोजेक्ट
- एक ही मज़ाक पर केंद्रित छोटे scope की वजह से, पिछले काम ReShape की तुलना में UI complexity और बनाने का बोझ कम हुआ और PICO-8 सीखने के लिए यह अच्छा प्रयोग बना
- PICO-8 एक काफी constraints वाला fantasy console है, जिसमें collision handling और particles तक खुद संभालने पड़ते हैं; इसलिए छोटे games में भी एक consistent feel आ जाता है
- built-in code editor की असुविधा को VS Code के
pico8-lsextension औरinclude code.pbsetup से bypass किया गया, लेकिन language reference search अब भी कमी के रूप में रह गई - simple mechanics में भी अगर मज़बूत theme हो, तो उन्हें समझाना और share करना आसान हो जाता है, और PICO-8 की constraints छोटे result को सीधे release करना आसान बनाती हैं
45 सेकंड का DVD लोगो game
- “Put the DVD Logo in the Corner” एक छोटा arcade action game है, जिसमें DVD लोगो को स्क्रीन के कोने से छुआना होता है
- इसे PICO-8 में बनाया गया, और development period 27 जून 2023 से 30 जून 2023 तक, यानी 4 दिन था
- play time लगभग 45 सेकंड है, और इसे लंबा करने का कोई इरादा नहीं था; यह मज़ाक और बचपन की इच्छा के इर्द-गिर्द बनाया गया
- game itch पर publish किया गया, और code GitHub पर देखा जा सकता है
- दोस्तों से high scores मिलना मज़ेदार अनुभव था, और लिखते समय दोस्त का highest score 21 points था, जबकि developer का score 26 points था
PICO-8 में बनाया पहला game
- PICO-8 एक fantasy console है, जो ऐसे console के emulator जैसा है जो असल में मौजूद नहीं है
- इसमें 1980s consoles की नकल करने वाली graphics, sound, code size और processing speed limits हैं
- console के अंदर sprites, music, sound effects बनाए जा सकते हैं और code लिखा जा सकता है
- modern game engines की तुलना में इसके tools simple और primitive हैं
- collision handling को pixel level पर खुद संभालना पड़ता है
- particle effects भी सीधे स्क्रीन पर pixels draw करके implement करने पड़ते हैं
- यह simplicity और constraints PICO-8 games को अपेक्षाकृत consistent feel देते हैं, और constraints creativity पैदा करते हैं—इस बात को सकारात्मक रूप से स्वीकार करने में मदद करते हैं
- सबसे जाने-माने PICO-8 games में से एक Celeste का original version है, जो game jam में बना था
- PICO-8 version Celeste को official game के अंदर easter egg के रूप में खेला जा सकता है
PICO-8 development tools का अनुभव
- PICO-8 में sprite editor, sound effect editor, music editor और code editor शामिल हैं
- sprite editor में Aseprite की याद आई, लेकिन PICO-8 के अंदर ही sprites edit कर पाना अच्छा लगा
- sound effect editor शुरुआत में बहुत intuitive नहीं लगा, लेकिन Gruber video देखने के बाद जल्दी आदत हो गई
- music editor keyboard playing के आदी developer के लिए बहुत सुविधाजनक नहीं था, लेकिन अपेक्षाकृत intuitive था
- code editor सबसे असुविधाजनक हिस्सा था
- editor की width बढ़ाने पर भी line length नहीं बढ़ती, सिर्फ font बड़ा हो जाता है
- PICO-8 developers ने एक खास console feel का इरादा रखा था और उस उद्देश्य के लिए यह ठीक था, लेकिन उनके लिए इसे सहना मुश्किल था
VS Code से bypass किया गया coding flow
- built-in code editor की जगह VS Code इस्तेमाल करने के लिए pico8-ls extension install किया गया
- यह extension syntax highlighting और API reference देता है
- main PICO-8 file में सिर्फ
include code.pbडाला गया, और actual codecode.pbमें लिखा गया - इस setup की ज़रूरत इसलिए है क्योंकि PICO-8 code और sprite/music data को एक ही file में save करता है
- उसी file को VS Code और PICO-8 में एक साथ edit नहीं करना था
- कुल मिलाकर इस workflow से संतुष्टि रही, लेकिन PICO-8 language reference को आसानी से search करने का तरीका कमज़ोर था
- PICO-8 manual में सिर्फ function names पर search करने जैसी limited search करना मुश्किल था
constraints छोटे game release करना आसान बनाते हैं
- development के दौरान कई expansion ideas आए
- समय बढ़ाने वाले tokens collect करना
- TV या DVD logo upgrades
- logo को रोकने वाले enemies
- Vampire Survivors clone जैसी दिशा
- माना गया कि अगर इसे Godot में बनाया होता, तो शायद ऐसे impulses को ज़्यादा आज़माया जाता
- PICO-8 simple है, इसलिए मौजूदा हालत वाले बेहद छोटे game को itch पर upload करना स्वाभाविक लगा
- PICO-8 की simplicity simple output निकालने की अनुमति जैसी काम करती है
theme game को समझाना आसान बनाती है
- game player के रूप में अक्सर story या theme को skip करके mechanics पर focus किया गया था
- बचपन में cutscenes skip किए, और Path of Exile सैकड़ों घंटे खेला लेकिन उसकी कहानी समझा नहीं सकते, ऐसा कहा
- इसके उलट पसंदीदा game Outer Wilds में story और mechanics दोनों अहम थे
- game बनाते समय भी कभी सोचा था कि theme इतनी अहम नहीं है
- ReShape TD और click, click, trick में mechanics थे, लेकिन यह समझाना मुश्किल था कि वे किस बारे में हैं
- “Put the DVD Logo in the Corner” बिल्कुल उलटा था
- mechanic सिर्फ “एक छोटे rectangle को बड़े rectangle के corner से छुआना” है
- mechanic अपने आप में रोमांचक नहीं है, लेकिन theme की वजह से इसे लोगों को समझाना सबसे मज़ेदार रहा
- आगे game बनाते समय इस बात को याद रखने का इरादा है
अगला काम
- इस game और PICO-8 पर काम करना अच्छा लगा, और और भी छोटे arcade-feel वाले games बनाना चाहते हैं
- इसके बाद OpenSearch specification का इस्तेमाल करके Firefox address bar के अंदर चलने वाली कोई चीज़ बनाने का idea experiment कर रहे थे
- 5 जुलाई 2024 के update में बताया गया कि OpenSearch का उपयोग करके Firefox address bar में Wordle चलाया गया
1 टिप्पणियां
Hacker News टिप्पणियाँ
Recurse Center के बारे में पढ़कर हैरानी हुई। यह प्रोग्रामरों के लिए किसी artist residency जैसी जगह लगती है
मैं खुद एक कलाकार के रूप में residency में रह चुका हूँ, और इससे नए दृष्टिकोण खुलने में बहुत मदद मिली थी। काश science के क्षेत्र में भी लोगों को ज़्यादा ऐसे मौके मिलें जो समझदारी के हिसाब से बेकार लगें, यानी non-commercial और non-competitive काम करने के। इससे समाज को फ़ायदा हो सकता है, या कम-से-कम उस व्यक्ति को तो ज़रूर होगा जिसे किस्मत से ऐसा मौका मिला हो
https://www.recurse.com/
admit हो जाने के बाद भी सही समय आने तक टाल सकते हैं, और यह मुफ़्त है। इसकी कमाई job placement से होती है, लेकिन मैंने apply करते समय साफ़ बताया था कि मैं नौकरी नहीं ढूँढ़ रहा था
Recurse ने मेरे लिए सबसे बड़ा काम यह किया कि इसने मुझे मेरी रुचि से फिर से जोड़ा। जब मैं पहली बार वहाँ गया था, तब मैं score और हल्की-सी theme वाले सामान्य Flash-style games बना रहा था, लेकिन वहाँ जाकर मैं कहीं ज़्यादा अजीब दिशाओं में निकल गया। मेरे शुरुआती projects में से एक था OpenSearch spec का दुरुपयोग करके Firefox address bar में चलने वाला Wordle बनाना
https://eieio.games/nonsense/implementing-wordle-in-the-fire...
ऐसी चीज़ें बनाने के लिए वह एकदम सही जगह थी। लोग हौसला बढ़ाते थे, support करते थे, और दिलचस्पी दिखाते थे, इसलिए मुझे एहसास हुआ कि जिस तरह का काम मैं सच में करना चाहता था उसमें भी लोगों की रुचि हो सकती है। मेरा ख्याल है कि RC में 12 हफ़्तों के दौरान मैंने 8 games रिलीज़ किए, और अगर RC न होता तो शायद मैं आज जो तरह का काम करता हूँ, उसकी शुरुआत ही नहीं कर पाता। सिर्फ games में नहीं, कई technical fields में लोगों को ऐसा अनुभव होता होगा। यह कुछ वैसा है जैसे अपनी रुचियों के लिए product-market fit ढूँढ़ना
RC ने मुझे वैसे ही काम करने वाले लोगों से भी जोड़ा। community बड़ी, दोस्ताना और अच्छे अर्थ में अजीब है। यह उन लोगों के लिए किसी writers' workshop जैसा है जो programming करना चाहते हैं और बेहतर programmer बनना चाहते हैं
यह सब कहने से लग सकता है कि मैं RC की बहुत marketing कर रहा हूँ, और सच कहूँ तो कर भी रहा हूँ, लेकिन इसके लिए मुझे पैसे नहीं मिलते; मैं बस एक आभारी alumnus हूँ। मैं यह अभी भी RC space में बैठकर लिख रहा हूँ, और कभी-कभी batch participants से बात करने या काम करने के लिए यहाँ चला आता हूँ
आज भी मैं ठीक-ठीक नहीं बता पाता कि वह मुझे valuable क्यों नहीं लगा
शायद वजह जगह रही हो। New York City महँगा है, और मेरे पास unpaid leave लेने लायक savings तो थीं, लेकिन बहुत-सी चीज़ें बेहिसाब महँगी लगती थीं। New Yorkers के unfriendly होने की reputation ने भी दूरी बढ़ा दी। मैंने दूसरों की बहुत तारीफ़ सुनी थी, लेकिन जैसे कुछ visitors को लगता है कि शहर उन्हें पूरी तरह welcome नहीं करता, वैसे ही मुझे Recurse Center का माहौल अपने लिए सही नहीं लगा
फिर भी एक अच्छी बात यह थी कि कुछ residents और alumni tech industry में काफ़ी प्रसिद्ध हो गए हैं। space में यूँ ही मिल जाने पर भी गहरी बातचीत शुरू हो सकती है। मेरे दौरान मैं Robert Lefkowitz और Filippo Valsorda जैसे लोगों से मिल पाया, और वह काफ़ी शानदार अनुभव था
https://www.recurse.com/residents
https://www.linkedin.com/in/r0ml
https://filippo.io
School for Poetic Computation New York City और online में चलने वाला एक experimental school है, जो art, code, hardware और critical theory के पार सीखने को support करता है। यह सीखने और सीखी हुई चीज़ों पर वापस सोचने की जगह है
https://youtu.be/QOtuX0jL85Y?si=Kwo8OZSYOVzoI-Uh
यह The Office का ज़रूरी reference है
सच कहूँ तो मुझे यह भी समझ नहीं आता कि बिल्कुल सही तरह से कोना hit करना संभव कैसे है
कुछ सेकंड के लिए मुझे लगा कि शायद मैं ही अजीब हो गया हूँ
मैं developer हूँ। इसे front page पर देखना एक मज़ेदार surprise था। अच्छा लगा कि लोग इससे connect कर रहे हैं, और PICO-8 को भी एक बार ज़रूर आज़माना चाहिए
अगर कोई सवाल हो तो मैं जवाब दे सकता हूँ। उसके बाद से मैंने कोई PICO-8 game पूरा नहीं किया है और मेरा काम और भी अजीब हो गया है, लेकिन मुझे PICO-8 की याद आती है और मैं Playdate और Picotron ideas के साथ छेड़छाड़ कर रहा हूँ
https://news.ycombinator.com/item?id=40800869
ऐसी चीज़ें देखकर PICO-8 और भी पसंद आने लगता है। Macromedia Flash MX में ActionScript पहली बार खोजने के बाद से यह सबसे मज़ेदार coding environments में से एक है जिसे मैंने इस्तेमाल किया है
काश code, sound और graphics पर high-resolution modern editors में काम किया जा सके, लेकिन resolution, CPU performance और API जैसी पाबंदियाँ वैसी ही बनी रहें
DVD logo के शायद ही कभी screen के corner तक पहुँचने से पैदा होने वाले मनोवैज्ञानिक और सामाजिक दर्द पर यह कहानी भी उल्लेख के लायक है: https://www.youtube.com/watch?v=_ws0QtAiiXQ
अगर आप सिर्फ screensaver देखना चाहते हैं, तो मैंने पहले एक बनाया था
https://stanchak.github.io/dvd/
यह Playdate पर सच में बहुत मज़ेदार लगेगा। छोटे crank से समय आगे बढ़ाया जा सकता है, और सही rhythm बनाए रखने पर bonus points भी दिए जा सकते हैं
अभी-अभी बनाया है इसलिए काफ़ी basic है, लेकिन चाहें तो fork कर सकते हैं
https://github.com/uguu-org/playdate-dvd
Pam का दावा है कि उसने meeting room में अकेले रहते हुए DVD logo को corner तक पहुँचते देखा था। लगता है कि वह खुद सच में इस बात पर यक़ीन करती है
game का direct launch link: https://itseieio.itch.io/dvdlogo
source code (PICO-8): https://github.com/nolenroyalty/put-the-dvd-logo-in-the-corn...
यह सच में मज़ेदार था और PICO-8 environment की explanation भी अच्छी थी। मुझे 19 points मिले, लेकिन अंत में लगता है काफ़ी luck साथ था