[{"data":1,"prerenderedAt":287},["ShallowReactive",2],{"project-35879278":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":43,"what":44,"said":68,"maker_in_thread":169,"shape":179,"grid":181,"attempts":244,"same_week":249,"maker_shows":31,"maker_hidden":279,"reader_version":280,"card":281},"35879278","Wordbots","Card game where players write their own cards that get parsed into code","title","Show HN: Card game where players write their own cards that get parsed into code","https:\u002F\u002Fapp.wordbots.io\u002F","app.wordbots.io","alnis",1683660660,2023,114,26,561,3109,19,"notable","games","online card game","web_app",[24,25,26,21,27],"card game","natural language","javascript parser","user generated cards","mixed",0.164,{"positive":31,"neutral":32,"mixed":33,"critical":34},6,5,2,3,16,{"design":37,"idea":39,"execution":40},{"positive":38,"critical":38},0,{"positive":34,"critical":38},{"positive":41,"critical":34},1,[34,38,32,32,34,34,38,34,38,38,38,38,41,38,38,41,38,32,38,34,32,32,41,38,32,34,34],"Wordbots is a long-running side project I've been working on on-and-off for the past ~7 years that I finally feel comfortable enough with to share with the HN community.\n\nIt's an online tactical card game (inspired by games like Hearthstone and Magic: the Gathering), where players write their own cards in natural language, that gets parsed down to JavaScript. The English-to-JavaScript translation is handled by a semantic parser operating on a hand-crafted CCG grammar – kind of an “old-school” approach in this age of LLMs but one that performs quite well on the very constrained language of Word",{"problem":45,"audience":45,"pricing":45,"motivation":46,"time_to_build":52,"stack":56,"openness":65,"stage":66,"team_size":67},null,{"value":47,"source":48,"evidence":49},"Long-running side project shared with the HN community","maker",[50],{"id":51},"post",{"value":53,"source":48,"evidence":54},"About 7 years, on and off",[55],{"id":51},[57,61],{"value":58,"source":48,"evidence":59},"JavaScript",[60],{"id":51},{"value":62,"source":48,"evidence":63},"Semantic parser on a hand-crafted CCG grammar",[64],{"id":51},"open_source","launched","unknown",{"praise":69,"objections":96,"requests":119,"questions":143,"alternatives":153},[70,89],{"value":71,"source":72,"evidence":73},"Clever parser approach and fun user-created cards","commenter",[74,77,81,85],{"id":75,"by":11,"text":76},"35879796","You can definitely make an Action card with the text \"You win the game\" :-) Wordbots doesn't have a built-in mechanism to enforce cards being at a \"fair\" power level. We…",{"id":78,"by":79,"text":80},"35880909","digging","That's clever and elegant, well done. I'm really interested, especially since it turns out to be more than just a ChatGPT front-end.",{"id":82,"by":83,"text":84},"35880801","whynotkeithberg","Incredibly cool! It's not normally my type of game but I am going to try this out for sure.",{"id":86,"by":87,"text":88},"35879369","htaler","I love the idea, and I'm going to try it out!",{"value":90,"source":72,"evidence":91},"Well balanced in single-player with built-in cards",[92],{"id":93,"by":94,"text":95},"35881053","zomglings","I like the game itself - it feels well balanced when you are playing single-player mode with built-in cards only. But creating your own cards is an INCREDIBLY frustrating…",[97,104,112],{"value":98,"source":72,"evidence":99},"Card-writing parser is very restrictive and frustrating",[100,101],{"id":93,"by":94,"text":95},{"id":102,"by":79,"text":103},"35881198","On the point of card creation, I also found it to be frustrating. Not as much as you did, but for example I couldn't get a card to say \"Destroy this robot unless it moved this…",{"value":105,"source":72,"evidence":106},"Balance of user-created cards is unsolved",[107,108],{"id":93,"by":94,"text":95},{"id":109,"by":110,"text":111},"35879677","lcnPylGDnU4H9OF","I don't like competing so my first thought was to make a card which says, \"You win the game.\" Is that possible, ostensibly with great cost, or is there some restriction on the…",{"value":113,"source":72,"evidence":114},"Slow initial load time and missing license files",[115],{"id":116,"by":117,"text":118},"35879553","mdaniel","That looks neat, thanks for sharing. Speaking of sharing, it seems your repos are missing a license file (and the source files themselves don't have a licensing block that would…",[120,132,139],{"value":121,"source":72,"evidence":122},"Integrate an LLM to turn freeform text into card rules",[123,124,128],{"id":93,"by":94,"text":95},{"id":125,"by":126,"text":127},"35881517","williamcotton","Maybe integrate with an LLM (such as GPT4) to accept card descriptions? Use the LLM to turn English into the subset understood by sumbot and it slowly teaches the player the…",{"id":129,"by":130,"text":131},"35883480","habitue","This is really cool, and actually I think LLMs would be a great fit: they can generate your constrained language from more freeform language input by the user. Might make it…",{"value":133,"source":72,"evidence":134},"Restrict rare or uncommon cards in set decks",[135],{"id":136,"by":137,"text":138},"35940821","Tourniquet","Hi, My son has taken a shine to this after I sent him the link (he's up to 100 cards now...). Online, drafting, and the most important bit - user created content (he'd have been…",{"value":140,"source":72,"evidence":141},"Hash game state to detect desyncs",[142],{"id":136,"by":137,"text":138},[144,149],{"value":145,"source":72,"evidence":146},"How are custom cards balanced?",[147,148],{"id":109,"by":110,"text":111},{"id":93,"by":94,"text":95},{"value":150,"source":72,"evidence":151},"Can MTG cards be ported over?",[152],{"id":116,"by":117,"text":118},[154,161,165],{"value":155,"source":72,"evidence":156},"Magic: The Gathering",[157,158],{"id":116,"by":117,"text":118},{"id":159,"by":11,"text":160},"35879717","Regarding M:TG vocabulary, Wordbots's syntax is a little bit different but a lot of the same effects are possible. For example, M:TG's Flametongue Kavu's \"When Flametongue Kavu…",{"value":162,"source":72,"evidence":163},"Hearthstone",[164],{"id":159,"by":11,"text":160},{"value":166,"source":72,"evidence":167},"Faeria",[168],{"id":159,"by":11,"text":160},{"comments":170,"answered":31,"key":171},8,[172,173,176],{"id":75,"text":76},{"id":174,"text":175},"35953809","Thank you so much for the feedback! Unfortunately I screwed up the Discord link in the post – it's http:\u002F\u002Fdiscord.wordbots.io\u002F , not https:\u002F\u002F – but it was too late to modify the…",{"id":177,"text":178},"35879689","Oops, lack of licenses was my bad - good catch! Just added LICENSEs to clarify that both the game (https:\u002F\u002Fgithub.com\u002Fwordbots\u002Fwordbots-core) and the parser…",{"commenters":35,"max_depth":32,"maker_replies":170,"first_comment_mins":31,"lifespan_hours":180},145,[182,184,185,187,191,195,197,199,200,202,203,207,209,212,216,218,219,221,224,226,227,229,230,233,235,236,241],[109,38,34,183,110,38],"project\u002Fneutral\u002Fdesign",[75,38,38,183,11,41],[78,38,32,186,79,38],"project\u002Fpositive\u002Fidea",[188,38,32,189,190,38],"35881575","maker\u002Fpositive\u002Fnone","jstarfish",[192,38,34,193,194,38],"35896711","project\u002Fneutral\u002Fidea","stonegray",[136,41,34,196,137,38],"project\u002Fmixed\u002Fexecution",[174,41,38,198,11,41],"project\u002Fneutral\u002Fexecution",[116,33,34,196,117,38],[177,33,38,201,11,41],"project\u002Fneutral\u002Fdocs",[159,33,38,193,11,41],[204,33,38,205,206,38],"35902450","other\u002Fneutral\u002Fnone","_raoulcousins",[208,34,38,205,117,38],"35883384",[93,210,41,211,94,38],4,"project\u002Fcritical\u002Fexecution",[213,210,38,214,215,38],"35881169","commenter\u002Fneutral\u002Fdocs","WastingMyTime89",[217,210,38,198,11,41],"35881186",[102,210,41,211,79,38],[220,210,38,198,11,41],"35881281",[222,210,32,223,79,38],"35882106","project\u002Fpositive\u002Fexecution",[225,210,38,198,11,41],"35893304",[125,210,34,193,126,38],[82,32,32,228,83,38],"project\u002Fpositive\u002Fnone",[86,31,32,186,87,38],[231,232,41,211,79,38],"35882172",7,[234,232,38,198,11,41],"35882284",[129,170,32,186,130,38],[237,238,34,239,240,38],"35881227",9,"project\u002Fneutral\u002Fnone","MisterTea",[242,238,34,239,243,38],"35881493","jamilton",[245,248],{"id":246,"t":247,"points":232,"comments":41},"35765274",1682879433,{"id":4,"t":12,"points":14,"comments":15},[250,255,259,264,269,274],{"id":251,"name":252,"points":253,"category":254},"35826540","Grasp",266,"web_saas",{"id":256,"name":257,"points":258,"category":20},"35861209","SineRider",181,{"id":260,"name":261,"points":262,"category":263},"35831177","The HN Recap",177,"productivity",{"id":265,"name":266,"points":267,"category":268},"35821748","GPT-JSON",174,"ai",{"id":270,"name":271,"points":272,"category":273},"35864661","Cptn.io",139,"infrastructure",{"id":275,"name":276,"points":277,"category":278},"35881963","Fir",127,"dev_tools",false,"v2",{"id":282,"name":5,"line":6,"ai":279,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":283,"top":18,"kw":284,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":285,"url":9,"mix":286,"praise":71,"objection":98,"sub":21},35879278,0.16,[24,25,26,21,27],"305533030000100105035510533",[31,32,33,34],1793991065449]