3 पॉइंट द्वारा GN⁺ 2023-11-01 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Javi Lopez ने GPT-4 से कोड बनवाकर और Midjourney·DALL·E 3 से ग्राफिक्स जनरेट करके Angry Birds-स्टाइल 2D physics game Angry Pumpkins बनाया
  • परिणाम वेब पर खेला जा सकता है, लेकिन मोबाइल पर काम नहीं करता, और game screen के नीचे दिए गए निर्देशों का पालन करके आप अपना level भी बना सकते हैं
  • ग्राफिक्स का अधिकांश हिस्सा AI image generation से बनाया गया, और कुछ sprites को Photoshop/Photopea में background removal और crop करके game के लिए ठीक किया गया
  • कोड matter.js और p5.js पर आधारित शुरू हुआ, फिर launch method, collision, particles, monster shapes, indirect impact detection को GPT-4 के साथ बार-बार संशोधित करते हुए बढ़ाया गया
  • पूरा कोड लगभग 600 lines का है और उन्होंने खुद कोड नहीं लिखा, लेकिन एक ही prompt से पूरा game पाने के बजाय errors समझाने और ठीक करवाने की iterative process की जरूरत पड़ी

Angry Pumpkins का परिणाम

  • Angry Pumpkins Angry Birds जैसा 2D physics game है, जिसे GPT-4, Midjourney, DALL·E 3 का उपयोग करके बनाया गया
  • खेलने योग्य game Angry Pumpkins पर देखा जा सकता है
    • फिलहाल मोबाइल पर काम नहीं करता
    • game screen के नीचे दिए गए instructions पढ़कर आप खुद level बनाकर खेलने का तरीका देख सकते हैं
  • Javi Lopez का मानना है कि केवल natural language से चीजें बनाने का नया तरीका संभव हो रहा है, और वे इसे “ऐतिहासिक क्षण” मानते हैं

ग्राफिक्स और कोड बनाने का flow

  • Image generation और sprite work

    • DALL·E 3 का उपयोग Halloween माहौल वाली home screen, “Angry Pumpkins” logo, और Play button वाले title screen बनाने में किया गया
    • Midjourney का उपयोग cemetery background, 2D terrain, pumpkin characters, green monsters, wooden boxes, bones, stones, wooden planks जैसे game objects बनाने में किया गया
    • objects को “sprite stylesheets” के रूप में बनाने के बाद Photoshop/Photopea में crop किया गया और background हटाया गया
    • छोटे detail elements को Midjourney की inpainting से पूरा किया गया
  • GPT-4 से बनाया गया game logic

    • पूरा source sketch.js पर public है
    • game code लगभग 600 lines का है, और Javi Lopez ने बताया कि उन्होंने खुद कोई code नहीं लिखा
    • शुरुआती prompt matter.js और p5.js का उपयोग करके mouse से angle और force control कर ball shoot करने, और 2D physics से stacked boxes को hit करने वाला simple game बनाने के लिए था
    • इसके बाद Angry Birds-स्टाइल mouse launch method, Uncaught ReferenceError: Constraint is not defined error fix, torch particle effects, circular monsters handling, indirect impact detection आदि को बार-बार request किया गया

single prompt से ज्यादा महत्वपूर्ण iterative fixes

  • मुख्य बात एक बार में completed game मांगना नहीं, बल्कि simple behavior base से शुरू करके लगातार expand और fix करने का flow है
  • जब भी कोई समस्या आई, error को साफ तौर पर समझाया गया और GPT-4 से उसे fix करवाया गया
  • फिलहाल GPT-4 single prompt से पूरा game generate करने के स्तर पर नहीं है, लेकिन इसमें यह उम्मीद झलकती है कि आगे चलकर सिर्फ request से AAA-level video games बनाए जा सकेंगे

1 टिप्पणियां

 
GN⁺ 2023-11-01
Hacker News की राय
  • मैंने Angry Birds में PM के रूप में काम किया था, और यह वाकई शानदार demo है
    मूल गेम में Box2D, Lua scripting इस्तेमाल हुई थी, और जाहिर है दुश्मन और levels भी खुद बनाने पड़ते थे
    मौजूदा technology की स्थिति में इससे hit game बन जाएगा, ऐसी उम्मीद नहीं है; संभावना ज्यादा है कि आप अपनी skill से ज्यादा technology की सीमाओं में बंध जाएंगे
    फिर भी तेज़ी से idea validation, prototype और game jam के लिए यह game-changing tool है, और बच्चों के ideas के साथ खेलने के लिए Scratch के alternative के रूप में भी अच्छा लगता है

  • हाल ही में मुझे दो ऐसे frameworks के साथ एक basic REST API और CRUD frontend बनाना था जिन्हें मैं ठीक से नहीं जानता था, इसलिए मैंने ऐसा ही experiment किया और GPT-4 से सारा code generate कराया
    बहुत संभव है कि यह docs देखकर खुद लिखने से धीमा था, और जो व्यक्ति उन frameworks से परिचित हो, वह शायद बहुत जल्दी कर लेता
    जटिल हिस्सों के लिए बहुत specific और लंबे prompts चाहिए थे, पूरा app बनाने में करीब 5 घंटे लगे, और काफी समय धीमे ChatGPT output का इंतज़ार करने में गया
    अगर framework जाना-पहचाना होता तो शायद 2 घंटे के अंदर भी खत्म कर लेता
    यह verify करने में कि मैं सही तरीके से कर रहा हूं या नहीं, यह निश्चित रूप से उपयोगी था, ऐसा लगा जैसे पूछने के लिए कोई expert standby पर है
    अच्छी तरह formatted boilerplate code generate करने में भी अच्छा था, लेकिन daily development में इसे अभी से ज्यादा इस्तेमाल करूंगा, ऐसा नहीं लगता
    ज्यादातर मामलों में framework को अच्छी तरह सीखकर खुद लिखना ज्यादा तेज़ है

    • सही तरीका है या नहीं, यह check करने के लिए यह आश्चर्यजनक रूप से अच्छा था
      “{foo} platform project का अच्छा directory structure क्या है?” या “{language y} में {x} को idiomatic तरीके से कैसे करते हैं?” जैसे सवाल मैं अक्सर पूछने लगा
      कई languages के बहुत सारे projects देखने का इसका फायदा है, इसलिए कुछ सवालों में वही अपने आप में काफी अच्छा जवाब बन जाता है
    • मेरा अनुभव भी मिलता-जुलता है
      अभी भी programming समझनी पड़ती है; बस इतना है कि आप natural-language English में code type कर रहे होते हैं
    • जिस बात को अनदेखा किया जाता है, वह यह है कि ज्यादातर लोग दिन में केवल कुछ घंटों तक ही peak productivity के साथ intense coding कर सकते हैं
      अगर आप GPT-4 को 3 घंटे तक supervise करते हुए उससे code लिखवाते हैं, तो उस दिन आपके पास अभी भी “खर्च न हुए” peak coding productivity के 3 घंटे बचे हो सकते हैं
    • उत्सुकता है कि आप GPT-4 को ChatGPT Plus से इस्तेमाल करते हैं या API से
      अगर API से, तो आमतौर पर किस tool से access करते हैं, यह भी जानना चाहूंगा
    • खुद लिखने में कितना समय लगेगा, इसका अंदाज़ा लगाने के बजाय सच में time measure करना बेहतर है
      नतीजा अप्रत्याशित हो सकता है
  • “ChatGPT से 30 मिनट में iOS ऐप बना लिया!” जैसी पोस्टों की बाढ़ से यह ज़्यादा दिलचस्प है
    ऐसी पोस्टों में शायद सिर्फ़ एक साधारण Hello World बना हो, इसलिए उनका कोई बड़ा मतलब नहीं होता, लेकिन यह कम-से-कम तैयार नतीजा दिखा रहा है और सच में काफ़ी प्रभावशाली है
    हालांकि जिन बारीकियों को जानना ज़रूरी है वे हैं लगा हुआ समय, prompts की संख्या, दिशा सुधारने की ज़रूरी बारियां, और बनाने वाला व्यक्ति संबंधित तकनीक में कितना दक्ष था
    निजी तौर पर मुझे लगा है कि ChatGPT कई स्थितियों में बहुत मददगार है, लेकिन code generation उनमें से एक नहीं था

    • https://twitter.com/javilopen/status/1719363669685916095 इससे जुड़ा है
      इसमें कहा गया है कि “गेम सिर्फ़ 600 लाइनों का है और मैंने एक भी लाइन नहीं लिखी, लेकिन [गेम कोडिंग] सबसे कठिन हिस्सा था”
      यह Hello World तो नहीं है, लेकिन इसे shopping list से कहीं ज़्यादा कठिन कहना भी मुश्किल है
      फिर भी 600 लाइनों और कुछ libraries से Angry Birds बनाया जा सकता है, यही सबसे प्रभावशाली बात है
    • ChatGPT code generation से Flask, Python, HTML+JS+CSS, SQLite आधारित पूरी साइट बनाकर देखी, और यह हैरान करने वाला था
      production में चल रहा code करीब 5 हज़ार lines का है और सब काम करता है। traffic ज़्यादा नहीं है, लेकिन फिर भी यह production environment है
      सीमाओं को जानना और prompts को बेहतर लिखना, hallucination की संभावना पहचानना और risks पूछना बहुत बड़ा factor है
      यह खासकर उन technologies में सबसे अच्छा रहा जिन्हें मैं अच्छी तरह नहीं जानता। मैं Android developer हूं, लेकिन करीब 15 साल से खुद न किए गए website बनाने के काम में इसे इस्तेमाल कर रहा हूं
      सबसे शानदार हिस्सा system management और server operations में मदद था, और gunicorn errors debug करने की इसकी क्षमता अच्छी है
      project बड़ा होने और context खोने पर output code को ठीक करना पड़ता है, लेकिन बड़े projects में सबसे बड़ी बाधा context length limit है और लगता है जल्द ही यह कम हो जाएगी
      हाल ही में बनाई साइट https://cosmictrip.space/ है, जिसके code का करीब 95% ChatGPT ने लिखा, और GPT-4 से prompts बनाकर फिर DALL-E से space images बनाई गईं
      यह एक सरल साइट है, लेकिन अभी GPT+DALL-E आधारित open-ended image+text AI adventure game भी बना रहा हूं
      DALL-E 3 API आने पर 6 नवंबर से पहले release की उम्मीद है, और इस adventure game के code का भी 95% से ज़्यादा ChatGPT ने लिखा है
      code generation इतना अच्छा हो रहा है कि मैं अपने बनाए agents में GPT-4 API इस्तेमाल कर रहा हूं
      function calling से structured sub-tasks बनाता हूं, agent से वह code लिखवाता हूं, और files को context के रूप में शामिल करने या code से बातचीत करने की functionality भी जोड़ी है
      अभी public करने लायक level पर नहीं है, लेकिन GPT-4 की code generation क्षमता सच में कमाल की है; बस prompt experience चाहिए
      पहला लिखा prompt अच्छा होने की संभावना कम होती है, इसलिए उम्मीद है कि मैं जो agent बना रहा हूं वह इस हिस्से को अच्छी तरह हल करेगा
      idea यह है कि Jira/Kanban-style board में AI coder को tasks assign किए जाएं, इंसान approve/edit करे, और AI जैसे-जैसे काम verify करे वैसे tickets अपने-आप columns में move हों
    • open source Angry Birds clones बहुत हैं, इसलिए यह देखने में जितना प्रभावशाली लगता है उतना नहीं है
      ऐसा नया game program करना, जिसके लिए दर्जनों existing templates न हों, बेहतर litmus test होगा
    • एक और दिलचस्प सवाल है: “वीडियो में न दिखाए गए बाकी सभी मामलों में यह कैसे काम करता है”
    • ईमानदारी से कहूं तो इस पर भरोसा करना थोड़ा मुश्किल है
      GPT-4 ऐसे tasks में अच्छा है, लेकिन मेरे अनुभव में iterative improvement में यह अच्छा नहीं है
      बातचीत लंबी होती जाती है तो यह पुराना context खो देता है और generated code पहले के behavior से हट जाता है
      उदाहरण के लिए, “यह bug ठीक कर दो” आसानी से ऐसे solution में बदल सकता है जो किसी दूसरी functionality को तोड़ दे
      thread का code(1) final result(2) में मौजूद दिखता है, और क्योंकि यह code के बिलकुल ऊपर है, इसका मतलब हो सकता है कि ChatGPT से 600+ lines के blocks में बार-बार generate कराया गया
      यह काफ़ी संदिग्ध है
      line 500 पर define होने के बाद line 20 पर नया Slingshot बनाना, जब तक खास तौर पर ऐसा करने को न कहा जाए, बहुत असंभव-सा है
      loadImage('stone2.png'); में भी क्या इसने संयोग से सही filename और sprite size चुन लिया? क्या वह सब prompt में दिया गया था और फिर code लिखा गया? असल में इस्तेमाल किए गए prompts दिखाने चाहिए
      कहीं ज़्यादा plausible scenario यह है कि class objects को अपेक्षाकृत independently generate किया गया, फिर इंसान ने उन्हें एक बड़े file में assemble किया, पूरा input के रूप में copy किया और फिर “ऐसा function लिखो” जैसे code prompts बनाए
      जैसा दावा किया गया है, सिर्फ़ prompts से हुआ हो यह असंभव नहीं है, लेकिन likes और reputation के लिए “सारी coding इसी से कराई” वाली बात को बहुत बढ़ा-चढ़ाकर बताया गया लगता है
      कुछ code हाथ से लिखने या assemble करने के बाद उसे input में डालकर “यह भी कर दो” जैसे prompts दिए गए होने की संभावना ज़्यादा लगती है
      इसलिए output “100% generated” हो सकता है, लेकिन वह उस तरीके से नहीं जैसा लोग मान रहे हैं
      यह approach GPT-4 से existing code फिर से लिखवाती है, लेकिन अगर पूरे code में intent समझाने वाली comments स्पष्ट रूप से request या add न की जाएं, तो यह धीरे-धीरे पुरानी functionality से drift करने लगता है
      test suite न हो तो ऐसे subtle drift का पता नहीं चलता और functionality टूट जाती है
      लेखक ने ऐसा कुछ किया, इसका भी कोई ज़िक्र नहीं है
      ऊपर से, इस व्यक्ति का AI educational material बेचने का हित-संबंध(4) है, इसलिए इस क्षेत्र का expert दिखना उसके फायदे में है, और X पर सवाल पूछे जाने पर भी उसने extra details, step-by-step Git history, या असल में इस्तेमाल किए prompts नहीं दिए
      details की कमी और भरोसा करना मुश्किल नतीजे को देखते हुए, इस मामले में skeptical रहना उचित है
      CodeLlama 34B या GPT-3.5 जैसे models से इस तरह का output बनाया जा सकता है, लेकिन वर्णित तरीके से शायद नहीं
      GPT-4 से भी यह संभव है या नहीं, मुझे भरोसा नहीं है। prompts इतने ढीले लगते हैं कि वास्तविक नहीं लगते(5)
      फिर भी अगर वे और details देकर इसे rebut करें तो अच्छा होगा, और GPT-4 सच में एक अच्छा tool है
      [1] - https://nitter.net/pic/orig/media%2FF9xoI8mXgAAn7v9.jpg
      [2] - https://bestaiprompts.art/angry-pumpkins/sketch.js

[3] - https://nitter.net/javilopen/status/1719363669685916095#m
[4] - https://javilopen.substack.com/
[5] - “अब, monsters को circular बनाओ, और बहुत सावधान रहो: scaling और collision area के लिए rectangular वाले में पहले से मौजूद उसी technique को लागू करो, और पहले की तरह गड़बड़ मत करना।”

  • बेटे को loading spinner पर गुस्से में बार-बार टैप करते देखकर, एक खाली रविवार दोपहर मैंने और GPT ने यह गेम कोड किया
    https://spinner.franzai.com/
    मुझे लगता है कि interactive loading spinner game एक दिलचस्प UX pattern हो सकता है
    कुछ इंतज़ार करते समय भी यह feedback दे सकता है कि user की action का असर पड़ रहा है

    • loading screen के लिए यह दिलचस्प approach है, और निजी तौर पर मुझे लगा था कि ऐसे feature का इस्तेमाल कहीं ज़्यादा games में होता होगा
      बेशक AAA games में नहीं, बल्कि indie games की बात कर रहा हूँ
      मुझे साफ़ याद है कि पहले कभी इस patent के expire होने की खबर देखी थी, लेकिन ढूँढने पर पता चला कि वह “पहले” अब 8 साल पहले की बात हो चुकी है
      https://www.eff.org/deeplinks/2015/12/loading-screen-game-pa...
    • मज़ेदार बात यह है कि loading minigames पर ऐसा patent था जिसने इस तरह के development को रोक रखा था
      मेरे हिसाब से वह Namco के पास था, और Ridge Racer में दिखता है
    • finger tapping test:
      https://psycnet.apa.org/record/2014-37068-023
    • Budokai 3 (PS2) की loading screen में analog stick को तेजी से घुमाते हुए Saibamen को बढ़ते देखने की याद है
  • अब इसमें कोई शक नहीं कि AI development को बदल रहा है
    सिर्फ पिछले हफ्ते मैं 2 medium-sized services बना पाया, और वे हजारों lines के Python code थे, जबकि Python ऐसी language थी जिसे मैंने 10 साल से ज़्यादा समय से इस्तेमाल नहीं किया था
    सच में प्रभावशाली बात यह है कि आम तौर पर वह उस code से बेहतर होता है जो मैं खुद लिखता
    अगर एक बढ़िया README.md चाहिए, तो routes, CLI arguments वगैरह वाला source code दे दें, यह generate कर देता है
    tests भी चाहें तो बना देता है। developers के लिए इतना आसान समय कभी नहीं रहा
    code generation में GPT-4, GPT-3.5 को साफ़ मात देता है
    GPT-3.5 बहुत बारीक examples देने पर ठीक-ठाक copy कर लेता है, लेकिन GPT-4 में कुछ हद तक “सोचने” जैसा लगता है
    मेरे अनुभव में GPT-4 32k context काफी बार fail होता है
    उदाहरण के लिए, अगर आप 10 हजार से ज़्यादा tokens, यानी लगभग 30 हजार से ज़्यादा characters generate कर रहे हैं, तो कुछ बार फिर से कोशिश करनी पड़ सकती है
    साथ ही, non-trivial tasks के लिए ChatGPT ideal interface नहीं है
    API को सीधे इस्तेमाल करना या 32k context इस्तेमाल कर सकने वाला Azure OpenAI Chat Playground जैसा कुछ इस्तेमाल करना बेहतर है
    थोड़ा प्रचार भी कर दूँ, मैंने prompt generation के repetitive काम को automate करने वाला open source app बनाया है: https://github.com/codespin-ai/codespin-cli

  • पिछले 10 सालों में no-code tools में भारी investment हुआ है, और अब दिलचस्प बात यह है कि ChatGPT code इतना अच्छा लिखता है कि technical समझ रखने वाले लेकिन coding न करने वाले लोगों के लिए यह शायद ज़्यादा तेज़, ज़्यादा flexible और usability में भी लगभग वैसा ही होता जा रहा है
    हाल ही में मुझे Mendix में REST services consume और publish करने वाला demo app बनाना था, और details समझने में कई दिन लग गए
    वही काम अगर ChatGPT से किसी भी language में, जैसे bash में, करवाता तो शायद कुछ मिनट लगते
    deployment और version management PaaS/IaaS से बिना बहुत बड़ी technical expertise के संभल सकते हैं, खासकर enterprise no-code platform की लागत से तुलना करें तो
    यह मेरा personal bias हो सकता है, लेकिन गंभीर काम के लिए no-code platforms हमेशा ज़्यादा झंझट वाले लगे हैं, इसलिए मुझे वे कभी पसंद नहीं रहे, और मिलते-जुलते कारणों से ActiveRecord ORM भी पसंद नहीं है
    फिर भी no-code काफी जल्द outdated होता दिख रहा है
    जब बस पूछना और copy-paste करना ही है, तो drag and drop कौन करना चाहेगा?

    • conceptually यह लगभग perfect solution जैसा लगता है
      no-code आसान है लेकिन rigid है, coding flexible है लेकिन उबाऊ और error-prone है
      अगर आप जो चाहते हैं उसे शब्दों में बताकर जल्दी code पा सकें, और वह code साफ़-सुथरा हो, तो जरूरत के हिसाब से उसे adjust करने की flexibility मिल जाती है
      कुछ मामलों में, जैसे इस case में, शायद adjustment की भी जरूरत न पड़े
      आगे क्या होगा, यह देखने लायक है
    • क्या सच में बस कुछ मिनट लगते? खुद करके देखें और अनुमान नहीं बल्कि real feedback दें तो अच्छा होगा
      लगता नहीं कि इसमें बहुत समय लगेगा
  • यह statistical plagiarism laundering है, इसलिए काफी शानदार है
    निजी तौर पर मुझे लगता है कि HAL को रोकने का नाटक करते हुए आज के बड़े pickaxe sellers के लिए market moat बनाने की तुलना में laundering gold rush को रोकना कानूनी तौर पर ज़्यादा urgent priority है

  • मुझे पक्का लगता है कि ऐसे freelancers या remote workers होंगे जिन्होंने GPT-4 और AI tools का सही इस्तेमाल करके productivity 100x बढ़ा ली होगी
    यह कल्पना करना मुश्किल है कि ऐसे शानदार hacks सिर्फ vacuum में मौजूद हों
    2 साल बाद क्या संभव होगा, यह सोचें तो genie अब bottle से बाहर आ चुका है

    • 100x है तो शायद वे पहले से इतने productive नहीं थे
      अगर ChatGPT से productivity “100x” बढ़ाने के tips पता हों तो share करें
  • सच कहूँ तो ऐसे लेख हर बार देखने पर अपनी employability को लेकर मेरी चिंता और बढ़ जाती है
    कोई backup plan भी नहीं है और software engineering सीखने में बहुत ज़्यादा समय लगा दिया है, हालात अच्छे नहीं दिख रहे

    • उस हिस्से की मुझे सच में चिंता नहीं है
      जैसा दूसरों ने भी कहा है, जब आम लोग LLM को ज़रूरी working software बनाने लायक detail में product specification लिखने लगेंगे, तब programmers मुश्किल में पड़ेंगे
      लेकिन यह programming जैसा ही काफी लगता है
      मुझे लगता है हमारा काम बदलेगा। keyboard पर code type करने का समय कम होगा, और क्या बनाना है इस पर सोचने का समय बढ़ेगा
      बल्कि हम शायद और valuable हो जाएँगे, क्योंकि हम कहीं ज़्यादा काम कर पाएँगे
  • एक potential RPG game के लिए paladin की top-down animated sprite sheet पाने की कोशिश की थी, और failure process यहाँ है: https://imgur.com/a/2uJyUT3
    असल sequence में पहले top-down variations try किए थे, और आखिर में curiosity से side view डालकर देखा था

    • मैंने पहले Midjourney से TTRPG tokens बनाए थे, और सबसे अच्छा काम करने वाला तरीका aerial view लिखना था
      top down कभी सही होता था, कभी नहीं, इसलिए बहुत unstable था
      सोच रहा हूँ कि DALL-E 3 को भी इसी तरह की guidance चाहिए या नहीं