[{"data":1,"prerenderedAt":514},["ShallowReactive",2],{"project-41252731":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":5,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":47,"post_text":49,"what":50,"said":80,"maker_in_thread":215,"shape":227,"grid":231,"attempts":476,"same_week":477,"maker_shows":42,"maker_hidden":506,"reader_version":507,"card":508},"41252731","polyfight.io","An online 2D MMO game, written in Rust and JavaScript","title","Show HN: An online 2D MMO game, written in Rust and JavaScript","https:\u002F\u002Fpolyfight.io\u002F","altanis",1723690096,2024,171,89,471,3515,14,"notable","games","multiplayer browser game","web_app",[23,24,25,26,27],"browser game","multiplayer tank game","diep.io clone","rust game server","elo rankings","roasted",-0.351,{"positive":31,"neutral":32,"mixed":31,"critical":33},6,5,22,39,{"performance":36,"execution":39,"design":41,"idea":44,"privacy":45,"docs":46},{"positive":37,"critical":38},0,3,{"positive":37,"critical":40},10,{"positive":42,"critical":43},1,4,{"positive":42,"critical":38},{"positive":37,"critical":37},{"positive":37,"critical":42},[38,38,37,37,37,37,37,37,42,42,42,37,37,42,42,42,38,38,38,38,38,42,32,38,32,38,32,38,42,38,42,48,42,42,42,42,42,42,42,38],2,"I made a game (https:\u002F\u002Fpolyfight.io\u002F) which revolves around a player (a tank) leveling up and upgrading by killing shapes and other tanks (partially inspired by https:\u002F\u002Fdiep.io). It has a bunch of features, a vast number of tanks, an inbuilt chatting system, clans to make teams with your friends, a colour scheme maker, controllable sandboxes which can be public or private, a last man standing gamemode, and an inbuilt 1v1 system with its own ELO rankings and a global leaderboard. The game has a few players right now, and I'd hope to spread the joy players have with this game to people here, as ",{"problem":51,"audience":51,"pricing":51,"motivation":51,"time_to_build":51,"stack":52,"openness":78,"stage":79,"team_size":78},null,[53,62,66,70,74],{"value":54,"source":55,"evidence":56},"Rust","maker",[57,59],{"id":58},"post",{"id":60,"by":10,"text":61},"41255656","I used Axum for the websocket server, MySQL for the database, and the glicko2 crate for elo management. Those are the only 3 that come to mind, I didn't use any libraries\u002Fengines…",{"value":63,"source":55,"evidence":64},"JavaScript",[65],{"id":58},{"value":67,"source":55,"evidence":68},"Axum",[69],{"id":60,"by":10,"text":61},{"value":71,"source":55,"evidence":72},"MySQL",[73],{"id":60,"by":10,"text":61},{"value":75,"source":55,"evidence":76},"glicko2 crate",[77],{"id":60,"by":10,"text":61},"unknown","launched",{"praise":81,"objections":94,"requests":157,"questions":180,"alternatives":195},[82],{"value":83,"source":84,"evidence":85},"Fun gameplay loop of grinding shapes and avoiding stronger players","commenter",[86,90],{"id":87,"by":88,"text":89},"41257729","butlike","This is really fun! I like the gameplay loop of grinding the shapes for exp and avoiding the higher-level players. Some things I'd like to see: - Dying and losing exp (and…",{"id":91,"by":92,"text":93},"41254097","nkrisc","Looks fun, but not an MMO in any common use of the term I’ve ever seen. In modern gaming especially a lobby system is antithetical to the concept of an MMO.",[95,118,130,141,152],{"value":96,"source":84,"evidence":97},"Players die instantly or get teleported off screen, frequent bugs",[98,102,106,110,114],{"id":99,"by":100,"text":101},"41252936","nightpool","Seems like I got killed by a glitch that teleported me off screen and then marked me as \"killed by Unknown\"",{"id":103,"by":104,"text":105},"41253048","cthalupa","Something similar for me as well. Played for about 10 minutes and had it happen a few times - I'd be in a fight or killing some shapes, then it would rocket me across the screen…",{"id":107,"by":108,"text":109},"41253705","feverzsj","How can I play the game, if I just get killed within seconds?",{"id":111,"by":112,"text":113},"41254690","tiborsaas","It's unplayable at the moment. I can't control my shape and I'm instantly killed in a few seconds. M1, Chrome latest.",{"id":115,"by":116,"text":117},"41253352","knowitnone","buggy as hell. die for no reason",{"value":119,"source":55,"evidence":120},"Server performance degradation causes lag and desync",[121,124,127],{"id":122,"by":10,"text":123},"41255420","Hey sorry, overnight there was performance degradation which made the server run very slow (~100MSPT). I restarted the server for a temporary fix and will fix it sometime today.",{"id":125,"by":10,"text":126},"41255549","Yeah, I didn't actually expect this many people to play. I've ran benches locally of 100 bots playing together, and the game server ran at a decent 5-7 MSPT. I didn't run the…",{"id":128,"by":10,"text":129},"41258376","Yeah that \"desync\" is because the server mspt (shown next to your latency) was likely very high. It's because of a memory leak, I'll investigate when I get a chance. I'll look…",{"value":131,"source":84,"evidence":132},"Login says already connected, fingerprint bug",[133,137],{"id":134,"by":135,"text":136},"41253001","halware","Nothing happens. I click play, it says already connected. I wait, nothing happens. I join a lobby, it puts me in the same scenario.",{"id":138,"by":139,"text":140},"41253287","jaaron","Looks impressive. Like some others, I'm getting the bug that says \"You are already connected\" when I try to play. That said, this is still good work, especially considering your…",{"value":142,"source":84,"evidence":143},"Too similar to diep.io",[144,148],{"id":145,"by":146,"text":147},"41252980","brigadier132","It's a really cool technical achievement but if I were you I'd put in a lot of effort to distinguish yourself from diep.io because at first glance they are identical.",{"id":149,"by":150,"text":151},"41253315","saretup","Partially inspired? That’s literally a diep.io clone. Not that that’s necessarily bad, sometimes it’s easier to clone an existing game you like when learning a new game…",{"value":153,"source":84,"evidence":154},"Not really an MMO",[155,156],{"id":138,"by":139,"text":140},{"id":91,"by":92,"text":93},[158,162,166,173],{"value":159,"source":84,"evidence":160},"Lower level-loss penalty on death",[161],{"id":87,"by":88,"text":89},{"value":163,"source":84,"evidence":164},"Noob flag for low-level players",[165],{"id":87,"by":88,"text":89},{"value":167,"source":84,"evidence":168},"Client-side prediction",[169],{"id":170,"by":171,"text":172},"41253615","qingdao99","I think you should implement client-side prediction, it feels very laggy. https:\u002F\u002Fdeveloper.valvesoftware.com\u002Fwiki\u002FPrediction",{"value":174,"source":84,"evidence":175},"Close button on info box",[176],{"id":177,"by":178,"text":179},"41252966","nhggfu","add a X button to close that huge black info box took me a while to realize i had to press ESC",[181,188],{"value":182,"source":84,"evidence":183},"Why does it require a Google account",[184],{"id":185,"by":186,"text":187},"41253587","cuu508","Why does it ask to select a Google account?",{"value":189,"source":84,"evidence":190},"Offline access",[191],{"id":192,"by":193,"text":194},"41257507","sirjaz","Any plans for offline access",[196,201,208],{"value":197,"source":84,"evidence":198},"diep.io",[199,200],{"id":145,"by":146,"text":147},{"id":149,"by":150,"text":151},{"value":202,"source":84,"evidence":203},"agar.io",[204],{"id":205,"by":206,"text":207},"41252974","cshimmin","Very cool, reminiscent of agar.io :)",{"value":209,"source":84,"evidence":210},"Realm of the Mad God",[211],{"id":212,"by":213,"text":214},"41258238","MrFoof","Simple and fun. In my very first game I got to Rank 6 with 24K points. However, there's some cases where the client and server get out of sync (despite only supposed 10-20ms…",{"comments":216,"answered":32,"key":217},30,[218,221,224],{"id":219,"text":220},"41255388","Hey, thanks! You're right, I should've probably labeled it as a multi-player game, not an MMO. The connection issue you faced was because of a (probably) faulty clientside…",{"id":222,"text":223},"41257581","WebRTC is complicated; there are many more edge cases compared to websockets. Off the top of my head, I know I'd need to run a TURN server for people behind symmetrical NAT or…",{"id":225,"text":226},"41255448","I like the idea of UDP, but protocols like WebTransport aren't 100% supported and are still relatively new compared to websockets. But you're right, using UDP would be a less…",{"commenters":228,"max_depth":32,"maker_replies":216,"first_comment_mins":229,"lifespan_hours":230},52,51,126,[232,234,236,240,244,248,251,253,256,258,260,263,266,269,273,276,279,282,285,286,288,289,293,295,298,301,303,305,308,310,312,313,316,318,319,322,324,328,330,333,336,339,342,345,350,351,354,358,363,366,368,372,375,377,382,384,389,393,394,398,400,403,405,408,410,412,414,416,421,425,429,431,433,437,439,443,445,449,451,453,455,457,459,463,465,467,469,472,473],[138,37,38,233,139,37],"project\u002Fmixed\u002Fnone",[219,37,37,235,10,42],"maker\u002Fneutral\u002Fexecution",[237,42,38,238,239,37],"41253300","project\u002Fneutral\u002Fperformance","10000truths",[241,42,37,242,243,37],"41253401","other\u002Fneutral\u002Fnone","modeless",[245,42,37,246,247,37],"41253484","other\u002Fpositive\u002Fnone","iAmAPencilYo",[249,42,37,242,250,37],"41253545","kaliqt",[252,42,37,242,243,37],"41253551",[254,42,37,246,255,37],"41254167","tillcarlos",[257,42,37,242,243,37],"41254203",[222,42,37,259,10,42],"project\u002Fneutral\u002Fexecution",[261,42,37,262,243,37],"41258006","commenter\u002Fneutral\u002Fnone",[264,42,37,242,265,37],"41264923","NathanFlurry",[267,42,37,246,268,37],"41267740","tracker1",[270,42,37,271,272,37],"41254019","other\u002Fneutral\u002Fperformance","Kiro",[274,42,37,271,275,37],"41259723","Chabsff",[277,42,37,242,278,37],"41298024","ErikBjare",[280,42,37,271,281,37],"41259780","aatd86",[283,42,37,262,284,37],"41254477","diath",[225,42,37,259,10,42],[99,48,42,287,100,37],"project\u002Fcritical\u002Fexecution",[103,48,42,287,104,37],[290,48,38,291,292,37],"41253326","project\u002Fmixed\u002Fexecution","david_shi",[122,48,37,294,10,42],"maker\u002Fneutral\u002Fperformance",[296,38,42,287,297,37],"41254095","tetris11",[299,38,37,246,300,37],"41254377","cnity",[302,38,37,246,297,37],"41254405",[304,38,37,294,10,42],"41255480",[306,38,37,242,307,37],"41258530","torgoguys",[170,43,42,309,171,37],"project\u002Fcritical\u002Fperformance",[311,43,37,294,10,42],"41255504",[107,32,42,287,108,37],[314,32,42,309,315,37],"41254308","Etherlord87",[317,32,37,294,10,42],"41255491",[111,31,42,287,112,37],[320,31,42,287,321,37],"41255250","GrumpyNl",[323,31,37,294,10,42],"41255357",[325,326,38,291,327,37],"41258307",7,"aylmao",[329,326,37,294,10,42],"41258353",[87,331,38,332,88,37],8,"project\u002Fmixed\u002Fdesign",[334,331,37,335,10,42],"41257996","maker\u002Fneutral\u002Fdesign",[91,337,38,338,92,37],9,"project\u002Fmixed\u002Fidea",[340,337,37,341,10,42],"41255551","maker\u002Fneutral\u002Fidea",[343,40,37,242,344,37],"41260102","sytzez",[346,347,38,348,349,37],"41253075",11,"maker\u002Fneutral\u002Fnone","echelon",[60,347,37,235,10,42],[352,347,38,353,307,37],"41258651","project\u002Fneutral\u002Fidea",[355,356,37,357,10,42],"41257535",12,"maker\u002Fneutral\u002Fdocs",[359,360,42,361,362,37],"41258019",13,"project\u002Fcritical\u002Fdesign","jncfhnb",[364,360,37,365,10,42],"41258226","commenter\u002Fneutral\u002Fdesign",[367,360,37,365,362,37],"41258335",[369,17,32,370,371,37],"41276417","project\u002Fpositive\u002Fdesign","six_sides",[185,373,38,374,186,37],15,"project\u002Fneutral\u002Fprivacy",[376,373,37,374,10,42],"41255576",[378,379,32,380,381,37],"41260574",16,"project\u002Fpositive\u002Fnone","littlekey",[383,379,37,348,10,42],"41261681",[385,386,42,387,388,37],"41256732",17,"project\u002Fcritical\u002Fnone","93po",[390,391,32,380,392,37],"41254721",18,"joeyagreco",[125,391,37,294,10,42],[395,396,32,380,397,37],"41262331",19,"stoobs",[399,396,37,348,10,42],"41262423",[205,401,32,402,206,37],20,"project\u002Fpositive\u002Fidea",[177,404,42,361,178,37],21,[406,404,37,407,10,42],"41255642","project\u002Fneutral\u002Fdesign",[409,404,42,361,178,37],"41258611",[411,33,37,259,10,42],"41268505",[192,413,38,353,193,37],23,[415,413,37,353,10,42],"41257546",[417,418,42,419,420,37],"41272484",24,"project\u002Fcritical\u002Fidea","bulbosaur123",[422,423,42,361,424,37],"41259157",25,"lowbloodsugar",[426,427,32,380,428,37],"41252943",26,"pdsouza",[145,430,42,419,146,37],27,[432,430,37,353,10,42],"41255671",[434,435,42,287,436,37],"41254363",28,"PUSH_AX",[438,435,37,238,10,42],"41255658",[440,441,42,287,442,37],"41253954",29,"throwaway_4638",[444,441,37,238,10,42],"41255677",[446,216,42,447,448,37],"41254158","project\u002Fcritical\u002Fdocs","dsfasfd",[450,216,37,238,10,42],"41255672",[149,452,42,419,150,37],31,[454,452,37,353,10,42],"41255737",[134,456,42,287,135,37],32,[458,456,37,259,10,42],"41255759",[460,461,42,309,462,37],"41254695",33,"supermatt",[464,461,37,238,10,42],"41255691",[115,466,42,287,116,37],34,[468,466,37,238,10,42],"41255754",[212,470,38,471,213,37],35,"project\u002Fmixed\u002Fperformance",[128,470,37,238,10,42],[474,470,37,475,213,37],"41260261","commenter\u002Fneutral\u002Fperformance",[],[478,483,488,493,498,501],{"id":479,"name":480,"points":481,"category":482},"41284703","PgQueuer",376,"languages",{"id":484,"name":485,"points":486,"category":487},"41254740","sqlean-time",274,"data",{"id":489,"name":490,"points":491,"category":492},"41291700","Srcbook",267,"dev_tools",{"id":494,"name":495,"points":496,"category":497},"41307815","Handwriter.ttf",191,"creative",{"id":499,"name":500,"points":13,"category":497},"41271014","Blender shortcuts",{"id":502,"name":503,"points":504,"category":505},"41311489","Permify 1.0",154,"infrastructure",false,"v2",{"id":509,"name":5,"line":6,"ai":506,"cat":19,"year":12,"points":13,"comments":14,"rec":28,"s":510,"top":17,"kw":511,"maker":10,"domain":5,"tier":18,"attempts":37,"strip":512,"url":9,"mix":513,"praise":83,"objection":96,"sub":20},41252731,-0.35,[23,24,25,26,27],"3300000011100111333331535353131211111113",[31,32,31,33],1793991097979]