3 पॉइंट द्वारा GN⁺ 2025-05-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 2010 के indie game VVVVVV का source code सार्वजनिक कर दिया गया है; game Terry Cavanagh ने बनाया था और music Magnus Pålsson ने दिया था
  • desktop version का source code repository के desktop_version folder में है
  • VVVVVV अब भी commercially sold है, लेकिन personal use के लिए builds को स्वतंत्र रूप से compile किया जा सकता है
  • compiled version को distribute करने के लिए repository की LICENSE.md देखनी होगी
  • VVVVVV updates से जुड़ी चर्चा मुख्य रूप से unofficial VVVVVV Discord के vvvvvv-code channel में होती है

सार्वजनिक किया गया source code

  • यह repository Terry Cavanagh के 2010 indie game VVVVVV का source code रखती है
  • source code सार्वजनिक करने की घोषणा Terry के blog notice में देखी जा सकती है: announcement
  • desktop version का source code desktop_version folder में है

उपयोग और distribution की शर्तें

  • VVVVVV अब भी thelettervsixtim.es पर commercially purchased किया जा सकता है
  • personal use के लिए game को खुद compile किया जा सकता है
  • compiled game version distribute करने के लिए LICENSE.md देखनी होगी

updates पर चर्चा का channel

  • VVVVVV updates पर चर्चा मुख्य रूप से unofficial VVVVVV discord पर होती है
  • संबंधित channel vvvvvv-code है

1 टिप्पणियां

 
GN⁺ 2025-05-08
Hacker News की रायें
  • हाई स्कूल के आखिर में जब मैं परिवार के साथ London गया था, तो गेम डेवलपर बनना चाहता था, इसलिए Terry Cavanagh को ईमेल किया। हैरानी की बात है कि उन्होंने खुशी-खुशी लंच पर मिलने के लिए हां कर दी
    वे सच में बहुत अच्छे थे और उन्होंने जीवन से जुड़ी कई सलाहें भी दीं। मुझे याद है कि उन्होंने कहा था कि ज्यादातर आइडिया किसी भव्य विज़न से नहीं आते, बल्कि game mechanics से छेड़छाड़ करते हुए experiment करने से मिलते हैं। खैर, वे शानदार इंसान हैं, और खुशी है कि उन्होंने VVVVVV, जिसे वे V कहते थे, open source कर दिया

    • “ज्यादातर आइडिया mechanics से छेड़छाड़ करते हुए experiment करने से मिलते हैं” वाला हिस्सा अहम है। बहुत सारे लोग सोचते हैं कि नए आइडिया सिर्फ abstract concepts से ही आते हैं, लेकिन वे medium के साथ खुद खेलते-खेलते भी खूब पैदा हो सकते हैं
    • मैंने सीखा है कि दो बातें सच हैं: अगर पूछोगे नहीं तो इनकार भी नहीं मिलेगा, और “अपने heroes से मत मिलो” वाली बात भ्रम है
      कुछ सचमुच खराब लोगों से मिलना पड़ता है, तभी आप सच में अच्छे लोगों को सही से पहचान पाते हैं
    • यह बहुत अच्छी बात है। जानना चाहूंगा कि उस मुलाकात ने बाद में career choice पर असर डाला या नहीं, क्या आखिरकार वे game developer बने, या कम से कम कोशिश की। कोई अंत हो तो हमेशा मजेदार होता है
    • जानना चाहूंगा कि उन्होंने जो life advice दी थी, वह ठीक-ठीक क्या थी
  • सच में बहुत मजेदार गेम। मैं बहुत ज्यादा गेम खेलने वालों में नहीं हूं, लेकिन याद है कि इसे पाने के लिए मैंने Humble Bundle खरीदा था
    यह उन गिने-चुने games में से एक था जिसे मैंने आखिर तक खेला। Terry, शानदार काम और अच्छे समय के लिए धन्यवाद। साथ ही, veni vidi vici सच में गाली निकलवा देने जितना मुश्किल था और इसमें काफी समय लगा
    https://www.youtube.com/watch?v=4CtiY5D6HCs

    • bundle खरीदकर सोचा था, “जब तक बड़े और ज्यादा दिलचस्प games download हो रहे हैं, तब तक कोई हल्का-फुल्का 2D platform game खेल लेते हैं,” लेकिन आखिर में उस शाम का पूरा समय इसी में चला गया
    • यह video हर screen को मुश्किल से पार करने के बाद भी बाईं तरफ land करने वाले अनुभव को ठीक से नहीं दिखाता
    • उन्होंने माफी तो मांगी थी। क्योंकि “I’m sorry” वाली screen थी :P
    • अगर मेरी याद सही है, तो कुछ सौ कोशिशों के बाद ही इसे मुश्किल से पूरा कर पाया था। एक तरह से इसने Final Fantasy XV के Pitioss dungeon को पूरा करने का धैर्य तैयार कर दिया
      उस समय मेरा boyfriend वही था जिसने मुझे VVVVVV खरीदकर दिया था, और वह no-death all-trinket run करने की कोशिश कर रहा था। समझ नहीं आता था कि कोई game में इतना अच्छा कैसे हो सकता है। और VVVVVV soundtrack PPPPPP अब भी अक्सर सुनता/सुनती हूं। खासकर उससे जुड़े osu! stream tracks अच्छे लगते हैं
    • मैंने शुरुआती Humble Bundle खरीदे थे, और VVVVVV तब से मेरी Steam library में पड़ा हुआ था। अब इसे एक बार खेलकर देखना चाहिए
  • ये related posts हैं। सोच रहा/रही हूं और भी कुछ होगा क्या
    Is opening up your source code worth it? Terry Cavanagh thinks it was for VVVVVV - https://news.ycombinator.com/item?id=25727963 - जनवरी 2021
    Many games are held together by duct tape - https://news.ycombinator.com/item?id=22043156 - जनवरी 2020
    VVVVVV Source Code Released - https://news.ycombinator.com/item?id=22011465 - जनवरी 2020
    VVVVVV’s source code is now public, 10 year anniversary jam happening now - https://news.ycombinator.com/item?id=22011358 - जनवरी 2020
    VVVVVV 60% Off On The Mac App Store This Weekend - https://news.ycombinator.com/item?id=2347676 - मार्च 2011

  • Graphics::print_level_creator(...) की comment में लिखा है कि “by {author}” की जगह चेहरा दिखाया जाता है
    वजहें थीं कि “by” author की भाषा से अलग होने पर अटपटा लग सकता है, दूसरी भाषाओं में यह लंबा होकर मौजूदा level limit तोड़ सकता है, “by” और author name के लिए आपस में मेल न खाने वाले fonts की जरूरत पड़ सकती है, gender/name inflection जैसी grammar problems से भी बचा जा सकता है, चेहरे से दिखाना समझ में आता है, और इस फैसले से अगर कोई दुखी भी हो तो smiley face वैसे भी उसका mood ठीक कर देगा। इसका विरोध करना मुश्किल है

  • लेख में link किए गए https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-... में कहा गया था कि C++ version की कई अजीब चीजें तभी समझ आती हैं जब याद हो कि इसे पहले Flash में बनाया गया था और फिर खामियों समेत सीधे port किया गया था
    उदाहरण के लिए, i, j, k जैसे temporary variables को functions के अंदर declare न करना पड़े, इसलिए उन्हें हर class के members के रूप में declare करने की आदत थी; कहा गया कि Flash में कुछ उबाऊ वजहों से functions के अंदर declaration करना झंझट भरा था। नतीजतन ऐसे bugs बने जिन्हें trace करना मुश्किल था, और खासकर entity collision handling में कई functions वही i variable share करते थे, जिससे infinite loop भी संभव था। यह सच में खराब दिखता है, और game code के अस्त-व्यस्त होने वाली धारणा की पुष्टि करता है

    • उल्टा यह तो शानदार लगता है, और इस शक की पुष्टि करता है कि game programmers आम programmers से ज्यादा सीखते हैं
    • बाद में भूलने से पहले लिख दूं: code अस्त-व्यस्त हो सकता है फिर भी मजेदार हो सकता है। ऐसा तब होता है जब नए idea के अंदर रोचक bugs बनते और खोजे जाते हैं
      code शानदार हो सकता है लेकिन उबाऊ भी हो सकता है। जैसे अच्छी तरह लिखा गया, लेकिन implementation में फीका calculator app। code अस्त-व्यस्त और उबाऊ भी हो सकता है। जैसे खराब design वाला B2B product, जिसमें सैकड़ों exception conditions हों और हर एक में मिलते-जुलते लेकिन अलग-अलग bugs भरे हों। code शानदार और दिलचस्प भी हो सकता है। Doom जैसी चीजें
    • लोग सच में ऐसा करते हैं? अचानक JavaScript में हर member के आगे this. लगाना बहुत कम परेशान करने वाला लगने लगा
  • उसी निर्माता के Super Hexagon का भी ज़िक्र करना चाहूँगा। बेहद सरल, फिर भी सच में मज़ेदार और बहुत addictive गेम
    मुझे याद है कि कहीं पढ़ा था कि निर्माता ने इसे बनाने में लगभग सिर्फ़ एक दिन लगाया था। और VVVVVV का soundtrack PPPPPP भी शानदार है

    • अगर उसी निर्माता के गेम की बात है, तो Dicey Dungeons भी बहुत मज़ेदार है। यह deck-building roguelike जैसा है, लेकिन cards के बजाय dice इस्तेमाल करता है
      करीब छह unique characters हैं, हर character के लिए कई challenges हैं, और rules लगातार बदलते रहते हैं, जिससे आपको game को फिर से सोचना पड़ता है। इसमें humor भी खूब है, और free DLC व mod content भी है जिसे मैंने अभी तक आज़माया नहीं है
    • मुझे नहीं पता था कि Super Hexagon भी उसी developer का काम है। VVVVVV से बिल्कुल अलग तरह का गेम होने के बावजूद यह सच में मज़ेदार था
      किसी indie developer का शुरुआती सफलता के बाद पूरी तरह नए genre की ओर मुड़ना हमेशा दिलचस्प होता है, और ऐसे ही कुछ बेहतरीन नगीने निकले हैं। जैसे Fallen London -> Sunless Sea -> Cultist Simulator वाला flow
    • Super Hexagon को 10 मिनट खेलने के अलावा flow state में जाने का कोई पक्का तरीका मुझे नहीं पता
    • इस recommendation से सहमत हूँ। सीखने की प्रक्रिया सच में मज़ेदार है
      शुरुआत में यह असंभव लगता है, लेकिन दिमाग adapt कर जाता है। मानो Matrix से परे देखने जैसा एहसास हो
    • मैंने इस game पर अपनी ज़िंदगी का सचमुच बहुत सारा समय लगाया है
      इसे कई लोगों के साथ share भी किया और सबको पागल कर दिया। मुझे अब भी भरोसा है कि मेरे Steam inventory में इसकी 5–6 copies बची होंगी। बस क्या पता कब ज़रूरत पड़ जाए। V, SMB, Braid और कई दूसरे games के साथ भी यही है। कभी-कभी छोटी-सी inspiration और rough graphics ही काफ़ी होते हैं
  • एक समय था जब मैं Canada से California में अभी-अभी आया था और नौकरी की सख़्त ज़रूरत थी, तो Comcast में door-to-door sales का काम मिला
    मुझे वह काम पसंद नहीं था, इसलिए अक्सर car में बैठकर ज़िम्मेदारी से बचता और phone पर VVVVVV खेलता था। Terry की वजह से थोड़ी देर साँस लेने का मौका मिल जाता था

  • शानदार game। उस दौर के indie games की तरह code सचमुच messy है, इसलिए इसे देखना अच्छा लगता है

    • “सचमुच messy” बिल्कुल सही expression है। मेरा पसंदीदा हिस्सा 3300-line का Game::updatestate() function और विशाल switch statement है
    • इसे मूल रूप से Flash में लिखा गया था और फिर C++ में port किया गया, इसलिए messy हिस्सों में से कुछ की वजह समझ आती है। सबकी नहीं, लेकिन कुछ की
    • यह code सचमुच inspiring है। सबक यह है कि code quality को हद से ज़्यादा pedestal पर रखना हमेशा सबसे अच्छा नहीं होता
    • इस code में कोई समस्या नहीं है। इसे loop unrolling कहते हैं, और यह game performance बनाए रखता है
  • मैंने इसे Zig के लिए package कर रखा है, और सिर्फ़ zig build चलाने पर Linux, macOS, Windows पर game खेल सकते हैं
    https://github.com/allyourcodebase/VVVVVV

  • उन्होंने माना कि function के अंदर जहाँ-जहाँ इस्तेमाल हो वहाँ declare करने से बचने के लिए उन्होंने हर class में i, j, k declare कर दिए, और उम्मीद के मुताबिक इससे गंदे और मुश्किल bugs पैदा हुए
    हैरानी की बात है कि ऐसे code से उन्होंने एक अच्छा game बना लिया

    • लगभग हर game में तरह-तरह का भयानक hacky code होता है। हालांकि यह मैंने देखे हुए examples में भी काफ़ी ज़्यादा extreme है