[{"data":1,"prerenderedAt":581},["ShallowReactive",2],{"project-27301879":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":48,"post_text":50,"what":51,"said":80,"maker_in_thread":236,"shape":243,"grid":246,"attempts":543,"same_week":544,"maker_shows":43,"maker_hidden":573,"reader_version":574,"card":575},"27301879","Joust","Multiplayer Deathmatch Joust","title","Show HN: I Built Multiplayer Deathmatch Joust","https:\u002F\u002Fjoust.life\u002F","joust.life","jasonkester",1622116216,2021,257,103,144,2533,6,"legend","games","multiplayer arcade remake","web_app",[24,25,26,27,28],"joust","multiplayer game","browser game","arcade remake","deathmatch","debated",0.009,{"positive":32,"neutral":33,"mixed":34,"critical":32},19,17,7,62,{"docs":37,"execution":39,"design":42,"performance":45,"idea":47},{"positive":38,"critical":38},0,{"positive":40,"critical":41},3,4,{"positive":43,"critical":44},2,9,{"positive":38,"critical":46},5,{"positive":40,"critical":38},[40,41,38,46,40,38,49,38,40,40,49,49,49,38,46,46,49,40,38,40,40,40,43,40,49,49,46,41,38,40,49,43,46,40,40,49,46,46,46,49],1,null,{"problem":50,"audience":50,"pricing":50,"motivation":52,"time_to_build":50,"stack":59,"openness":77,"stage":78,"team_size":79},{"value":53,"source":54,"evidence":55},"Code dates to a 1998 two-player Joust game; revived it and added Socket.io multiplayer","maker",[56],{"id":57,"by":11,"text":58},"27301885","Most of this code dates back to 1998, when I built a little 2 player Joust game to push the bounds of what you could do with Div (and at the time Layer) tags in the latest…",[60,66,70],{"value":61,"source":54,"evidence":62},"Vanilla JavaScript, HTML and CSS",[63],{"id":64,"by":11,"text":65},"27324192","It's just vanilla javascript, html and css. Pull up dev tools and notice this in the css: ``` img { image-rendering: pixelated; } ``` Lop that off (or uncheck it in dev tools)…",{"value":67,"source":54,"evidence":68},"Socket.io",[69],{"id":57,"by":11,"text":58},{"value":71,"source":72,"evidence":73},"Web Audio API","inferred",[74],{"id":75,"by":11,"text":76},"27324090","You know I've been playing this for a week now, and until reading your comment it had never occurred to me to put a volumeNode in the middle of the webaudio path. I just thought…","unknown","launched","solo",{"praise":81,"objections":109,"requests":166,"questions":196,"alternatives":211},[82,102],{"value":83,"source":84,"evidence":85},"Fun, nostalgic and faithful to the original's movement feel","commenter",[86,90,94,98],{"id":87,"by":88,"text":89},"27314859","interblag","I just joined for a quick session - just wanted to say that this is really fun and very well done (especially for someone who has played Joust before). Thanks for sharing!",{"id":91,"by":92,"text":93},"27317147","rjsw","I played Joust a lot as a kid, the character movement looks a really good reproduction of the original to me.",{"id":95,"by":96,"text":97},"27321373","RobertRoberts","Thank you, that was an awesome bit of 5 minutes of nostalgia. I know it must have taken you hours to build, and I could only get a few minutes to play, but it was worth your…",{"id":99,"by":100,"text":101},"27314803","hhh","This is magnificent.",{"value":103,"source":84,"evidence":104},"Good sound design",[105],{"id":106,"by":107,"text":108},"27314789","hungryforcodes","Love the sounds!",[110,125,136,151],{"value":111,"source":84,"evidence":112},"Server errors and crashes under load",[113,117,121],{"id":114,"by":115,"text":116},"27315175","c17r","All I get, no matter how many times I reload is, Error -- We encountered an error when trying to load your application and your page could not be served. Check the logs for your…",{"id":118,"by":119,"text":120},"27315169","codingminds","Tried to toggle sound, now it's down. > We encountered an error when trying to load your application and your page could not be served. Check the logs for your application in the…",{"id":122,"by":123,"text":124},"27317171","cacois","Neat! It's definitely crashed right now. I think we hurt it.",{"value":126,"source":84,"evidence":127},"Loud volume warnings",[128,132],{"id":129,"by":130,"text":131},"27315424","TheDudeMan","Holy volume warnings. My dog left the room.",{"id":133,"by":134,"text":135},"27319902","skrowl","I listen to my music with my speakers set to 40%. I had to change them to 6% to comfortably play this game.",{"value":137,"source":84,"evidence":138},"Mobile controls obscured or unclear",[139,143,147],{"id":140,"by":141,"text":142},"27314780","10000truths","On Safari using an iPhone XR, the left and right movement buttons are obscured by the bottom navigation bar.",{"id":144,"by":145,"text":146},"27322254","supercheetah","On mobile, it's not obvious how to do anything other that fly up by tapping the screen.",{"id":148,"by":149,"text":150},"27318781","airhead969","So neat! Where are the left\u002Fright controls on iPad?",{"value":152,"source":84,"evidence":153},"Lag and jitter with many players",[154,158,162],{"id":155,"by":156,"text":157},"27321459","yoz","This is superb, addicting as hell, and now I have to force myself to stop because I have real work to do. The game gets increasingly jittery as it gets busier. It might be worth…",{"id":159,"by":160,"text":161},"27316829","poopsmithe","Unplayable for me. My character's movements are very rough and they're jittering all over the place.",{"id":163,"by":164,"text":165},"27316140","tresvert","How do I win in this game? You should include some instructions so that newcomers can enjoy the game instead of being confused. Also, I have a fast connection, yet I experience…",[167,175,182,189],{"value":168,"source":84,"evidence":169},"Add instructions or a how-to-win guide",[170,174],{"id":171,"by":172,"text":173},"27314524","onion2k","I have no idea what's going on. I can't tell if that's intentional or if it's broken.",{"id":163,"by":164,"text":165},{"value":176,"source":84,"evidence":177},"Add chat feature",[178],{"id":179,"by":180,"text":181},"27315019","xwdv","Why not implement some kind of chat feature as well? Maybe push enter to type something and it will appear above your head.",{"value":183,"source":84,"evidence":184},"Add match statistics or scoreboard",[185],{"id":186,"by":187,"text":188},"27314650","episode0x01","Thats awesome. Would love to see match statistics",{"value":190,"source":84,"evidence":191},"Reduce network traffic by sending inputs instead of full state",[192],{"id":193,"by":194,"text":195},"27317603","Scaevolus","If you can figure out a way to only send inputs for each player instead of their full state, it should significantly reduce network traffic and lag for each player-- right now…",[197,204],{"value":198,"source":84,"evidence":199},"How does gravity and jumping work",[200],{"id":201,"by":202,"text":203},"27317308","sombremesa","Great work on the 'feel' of the movement. Would love to know how the gravity\u002Fjumping works. I'm a little disappointed the sound effects of the feet are missing - that was one of…",{"value":205,"source":84,"evidence":206},"Is it at risk of copyright issues",[207],{"id":208,"by":209,"text":210},"27315091","atlantageek","I have a joust-esque game as well but never released it because of fear with copyrighted graphics. Is that a risk with something like this?",[212,223,229],{"value":213,"source":84,"evidence":214},"Killer Queen",[215,219],{"id":216,"by":217,"text":218},"27318663","sleepybrett","See also: Killer Queen (and Killer Queen Black)",{"id":220,"by":221,"text":222},"27323536","phibz","Reminds me of good times playing Killer Queen in Chicago.",{"value":224,"source":84,"evidence":225},"Original Joust arcade and Atari 400 cartridge",[226],{"id":227,"by":92,"text":228},"27319604","Atari 400 (cartridge).",{"value":230,"source":84,"evidence":231},"Robotron 2600 port",[232],{"id":233,"by":234,"text":235},"27320153","kgwxd","Robotron got a fantastic port for the 2600 recently [0] (WIP). It supports twin-stick mode but that's pretty unusable on original Atari controllers without a special rig. Genesis…",{"comments":44,"answered":38,"key":237},[238,239,240],{"id":57,"text":58},{"id":64,"text":65},{"id":241,"text":242},"27324168","Yeah, 700b for 20 players, and normally at least somebody does something every tick, so that will go out 30 times per second. It still only works out to 24kbps, so you might not…",{"commenters":244,"max_depth":34,"maker_replies":44,"first_comment_mins":49,"lifespan_hours":245},77,162,[247,249,253,255,259,262,266,268,270,273,274,276,279,281,284,286,290,292,294,297,299,301,304,306,309,311,313,316,317,320,321,324,326,327,330,332,335,338,341,344,346,348,350,352,356,360,363,366,369,372,376,380,383,385,387,389,394,396,397,400,401,405,407,410,413,415,418,420,424,428,432,436,440,444,447,449,453,457,459,463,465,469,473,477,480,484,488,490,492,496,497,501,505,507,511,515,518,520,524,528,532,535,540],[57,38,38,248,11,49],"maker\u002Fneutral\u002Fidea",[250,38,40,251,252,38],"27314514","project\u002Fneutral\u002Fdocs","Majestic121",[87,38,46,254,88,38],"project\u002Fpositive\u002Fexecution",[256,38,40,257,258,38],"27316375","project\u002Fneutral\u002Fdesign","stuaxo",[260,38,40,261,194,38],"27317442","project\u002Fneutral\u002Fexecution",[263,38,38,264,265,38],"27321992","commenter\u002Fneutral\u002Fdesign","aidenn0",[64,38,38,267,11,49],"maker\u002Fneutral\u002Fdesign",[91,38,46,269,92,38],"project\u002Fpositive\u002Fdesign",[271,38,38,272,149,38],"27318847","commenter\u002Fneutral\u002Fnone",[227,38,38,272,92,38],[193,38,40,275,194,38],"project\u002Fneutral\u002Fperformance",[277,38,38,278,149,38],"27318833","commenter\u002Fneutral\u002Fperformance",[280,38,38,278,234,38],"27319951",[282,38,38,278,283,38],"27321545","sib301",[285,38,38,278,149,38],"27322500",[287,38,49,288,289,38],"27322260","project\u002Fcritical\u002Fperformance","rtkwe",[291,38,38,278,194,38],"27322788",[293,38,38,278,289,38],"27326691",[295,38,38,278,296,38],"27334862","armatav",[298,38,38,278,289,38],"27359114",[241,38,38,300,11,49],"maker\u002Fneutral\u002Fperformance",[302,38,38,303,149,38],"27318826","other\u002Fneutral\u002Fnone",[155,38,40,305,156,38],"project\u002Fmixed\u002Fperformance",[307,38,40,275,308,38],"27321792","westoncb",[310,38,38,267,11,49],"27324180",[129,49,49,312,130,38],"project\u002Fcritical\u002Fdesign",[314,49,38,264,315,38],"27319537","neogodless",[133,49,49,312,134,38],[318,49,49,312,319,38],"27322893","matheusmoreira",[75,49,38,267,11,49],[322,43,49,312,323,38],"27314691","fouc",[325,43,38,264,234,38],"27320010",[171,40,40,257,172,38],[328,40,38,303,329,38],"27314537","DudeInBasement",[331,40,38,303,149,38],"27318966",[333,40,38,303,334,38],"27323087","theonething",[336,40,46,269,337,38],"27314564","qsort",[339,41,40,257,340,38],"27314759","tummulfingur",[342,46,40,305,343,38],"27314603","tjansen",[345,46,38,303,149,38],"27318952",[95,18,46,347,96,38],"project\u002Fpositive\u002Fidea",[114,34,49,349,115,38],"project\u002Fcritical\u002Fexecution",[351,34,38,300,11,49],"27324124",[353,354,40,257,355,38],"27316607",8,"sowbug",[357,44,40,358,359,38],"27317079","project\u002Fmixed\u002Fexecution","skytreader",[361,44,38,362,11,49],"27324133","maker\u002Fneutral\u002Fexecution",[216,364,38,365,217,38],10,"other\u002Fneutral\u002Fidea",[367,364,38,303,368,38],"27318824","fnord77",[370,364,38,303,371,38],"27319134","bredren",[373,374,40,305,375,38],"27316492",11,"bryonb",[377,378,38,303,379,38],"27315853",12,"thdespou",[201,381,40,382,202,38],13,"project\u002Fmixed\u002Fdesign",[384,381,38,267,11,49],"27324105",[386,381,40,257,202,38],"27325578",[118,388,49,349,119,38],14,[390,391,46,392,393,38],"27314511",15,"project\u002Fpositive\u002Fnone","paisible",[122,395,49,288,123,38],16,[148,33,40,257,149,38],[179,398,40,399,180,38],18,"project\u002Fneutral\u002Fidea",[159,32,49,288,160,38],[402,403,46,347,404,38],"27315723",20,"dugmartin",[140,406,49,312,141,38],21,[408,406,38,272,409,38],"27316101","unixhero",[411,406,38,272,412,38],"27316453","edoceo",[414,406,38,303,409,38],"27316823",[416,406,49,312,417,38],"27317266","andai",[419,406,38,267,11,49],"27324139",[421,422,46,254,423,38],"27320622",22,"quadcore",[425,426,40,358,427,38],"27318279",23,"turtlebits",[429,430,49,349,431,38],"27317386",24,"cpeterso",[433,434,46,347,435,38],"27316118",25,"alexjplant",[437,438,46,392,439,38],"27319870",26,"tomcam",[441,442,38,303,443,38],"27315307",27,"boringg",[445,442,38,303,446,38],"27317052","UI_at_80x24",[448,442,38,303,149,38],"27318717",[450,451,46,392,452,38],"27327503",28,"codpiece",[454,455,49,312,456,38],"27315798",29,"spywaregorilla",[208,458,40,399,209,38],30,[460,461,49,349,462,38],"27316745",31,"dec0dedab0de",[144,464,49,312,145,38],32,[466,467,49,288,468,38],"27321219",33,"knicholes",[470,471,46,392,472,38],"27319000",34,"jayturley",[474,475,46,392,476,38],"27319417",35,"gkilmain",[220,478,40,479,221,38],36,"project\u002Fneutral\u002Fnone",[481,482,46,392,483,38],"27321750",37,"youeseh",[485,486,49,288,487,38],"27314720",38,"FranchuFranchu",[186,489,40,399,187,38],39,[491,489,40,251,340,38],"27314714",[493,494,40,399,495,38],"27319602",40,"strangus",[233,494,38,303,234,38],[498,499,38,303,500,38],"27319273",41,"iKnowKungFoo",[502,503,49,312,504,38],"27321555",42,"Narishma",[106,506,46,254,107,38],43,[508,509,46,392,510,38],"27318082",44,"taylorcooney",[512,513,46,392,514,38],"27315322",45,"suby",[516,517,38,303,417,38],"27317283",46,[99,519,46,392,100,38],47,[521,522,46,392,523,38],"27316383",48,"xntrk",[525,526,40,479,527,38],"27377552",49,"bitva77",[529,530,46,392,531,38],"27319302",50,"tomw1808",[163,533,40,534,164,38],51,"project\u002Fmixed\u002Fdocs",[536,537,49,538,539,38],"27315540",52,"project\u002Fcritical\u002Fnone","tutfbhuf",[541,537,38,272,542,38],"27317567","Jean-Rachid",[],[545,550,554,558,563,568],{"id":546,"name":547,"points":548,"category":549},"27303783","NocoDB",562,"dev_tools",{"id":551,"name":552,"points":553,"category":549},"27333772","Kalk",239,{"id":555,"name":556,"points":557,"category":20},"27365961","Yare.io",233,{"id":559,"name":560,"points":561,"category":562},"27331311","Paperd.ink",232,"hardware",{"id":564,"name":565,"points":566,"category":567},"27367948","Deepnote Viewer",217,"data",{"id":569,"name":570,"points":571,"category":572},"27316752","Ninfex",215,"web_saas",false,"v2",{"id":576,"name":5,"line":6,"ai":573,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":577,"top":18,"kw":578,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":579,"url":9,"mix":580,"praise":83,"objection":111,"sub":21},27301879,0.01,[24,25,26,27,28],"3405301033111055130333231154031253315551",[32,33,34,32],1794036607181]