[{"data":1,"prerenderedAt":328},["ShallowReactive",2],{"project-36469297":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":34,"aspects":35,"strip":42,"post_text":45,"what":46,"said":74,"maker_in_thread":160,"shape":171,"grid":176,"attempts":290,"same_week":291,"maker_shows":33,"maker_hidden":320,"reader_version":321,"card":322},"36469297","Hypersomnia","Open-source shooter which made it to AC: Valhalla and Skydio drones","title","Show HN: Open-source shooter which made it to AC: Valhalla and Skydio drones","https:\u002F\u002Fgithub.com\u002FTeamHypersomnia\u002FHypersomnia","github.com","geneotech",1687707282,2023,270,45,178,3109,6,"legend","games","multiplayer shooter","game",[21,24,25,26,27],"open source game","c++ game","deterministic networking","texture atlas packer","mixed",0.206,{"positive":31,"neutral":32,"mixed":33,"critical":33},9,7,2,20,{"execution":36,"idea":38,"design":40,"docs":41},{"positive":33,"critical":37},0,{"positive":39,"critical":37},1,{"positive":33,"critical":37},{"positive":37,"critical":39},[43,37,37,37,37,37,37,37,37,37,44,37,37,37,43,37,44,44,39,43,37,43,37,37,44,37,43,37,44,43,43,44,44,43,37,44,44,37,43,39],3,5,"So just for fun, I wrote a complete multiplayer game in pure C++. I even wrote my own texture atlas packer, which is now used by Assassin's Creed, 2 scientific publications as well as a drone manufacturing company - each of these basically mentions the name of my game. There is even a claim that Unity patented some of the ECS ideas that originate from this project. See https:\u002F\u002Fgithub.com\u002FTeamHypersomnia\u002FHypersomnia#tech-highlights for details.\n\nBy the way the game is pretty darn good. 10 people connected yesterday to test a new map:\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CHLPzZqANlM\n\nIt took me well ",{"problem":47,"audience":47,"pricing":47,"motivation":48,"time_to_build":54,"stack":58,"openness":71,"stage":72,"team_size":73},null,{"value":49,"source":50,"evidence":51},"Built just for fun","maker",[52],{"id":53},"post",{"value":55,"source":50,"evidence":56},"Well over 10 years of hand coding",[57],{"id":53},[59,63],{"value":60,"source":50,"evidence":61},"C++",[62],{"id":53},{"value":64,"source":65,"evidence":66},"GCC","commenter",[67],{"id":68,"by":69,"text":70},"36483874","baq","That's exactly what it's doing, though - deterministic floats, down to having exact same gcc version for all supported OSes. (Well, used to, haven't checked in a while.)","open_source","launched","unknown",{"praise":75,"objections":102,"requests":118,"questions":130,"alternatives":139},[76,91],{"value":77,"source":65,"evidence":78},"Impressive achievement and inspiring project",[79,83,87],{"id":80,"by":81,"text":82},"36477867","teruakohatu","Incredible achievement. The games looks great. To the author: What else have you been working on commercially to support the project? Do you plan to release it in steam? How does…",{"id":84,"by":85,"text":86},"36473227","harel","I just love these posts and projects and am very grateful that they are provided open sourced. I'd love to do something like that one day when I have the time (i.e., when I…",{"id":88,"by":89,"text":90},"36474067","juancn","Heck! I just realized I've been following some of your posts over the years without intending to. Specially about ECS and networking. It's nice to see it so advanced. Congrats!",{"value":92,"source":65,"evidence":93},"Deterministic networking and physics rebuild are clever",[94,98],{"id":95,"by":96,"text":97},"36473978","numlocked","Rebuilding the physics state on client connect is a cool solution to synchronization!",{"id":99,"by":100,"text":101},"36476880","virtue3","I'm not quite sure they are guaranteed to be deterministic across architectures either. I think rounding up\u002Fdown can vary across architectures. Mixing arm\u002Famd\u002Fintel here should…",[103,114],{"value":104,"source":65,"evidence":105},"Post title is hard to parse and misleading",[106,110],{"id":107,"by":108,"text":109},"36476757","andybak","This looks fascinating but - by god, was your post title hard to parse!",{"id":111,"by":112,"text":113},"36476968","teamonkey","Same here. I still find it a bit misleading too. The game didn’t make it to AC:Valhalla, a texture-packing library that was made during its creation did[1] (not wanting to…",{"value":115,"source":65,"evidence":116},"Unity ECS claim overstated",[117],{"id":111,"by":112,"text":113},[119,126],{"value":120,"source":65,"evidence":121},"Fix macOS mouse offset bug in menus",[122],{"id":123,"by":124,"text":125},"36479509","annix","Firstly, this looks absolutely unreal, things like this make me really appreciate how little I actually know about CS. Secondly, I've caught a big ol' bug for you on MacOS. When…",{"value":127,"source":65,"evidence":128},"Release on Steam",[129],{"id":80,"by":81,"text":82},[131],{"value":132,"source":65,"evidence":133},"Is floating point determinism possible across compilers and architectures",[134,138],{"id":135,"by":136,"text":137},"36475095","schemescape","I didn’t realize that getting 100% deterministic behavior for floats would require using the same compiler, even when using the same math functions. Is floating point arithmetic…",{"id":99,"by":100,"text":101},[140,146,153],{"value":141,"source":65,"evidence":142},"Spring RTS",[143],{"id":144,"by":69,"text":145},"36476935","> Networking is based on cross-platform simulation determinism. Springrts[0] has been doing all that has been described here for the same reasons in late 2000s and I guess…",{"value":147,"source":65,"evidence":148},"Infantry Online",[149],{"id":150,"by":151,"text":152},"36475911","theogravity","The gameplay reminds me of this this old top down multilayer shooter from the early 2000s called Infantry Online https:\u002F\u002Fwww.freeinfantry.com\u002F…",{"value":154,"source":65,"evidence":155},"ARC \u002F Armor Critical",[156],{"id":157,"by":158,"text":159},"36476453","barryp123","This looks rad! Reminds me of ARC (Attack Retrieve Capture) back in the late 90s -- now on life support as Armor Critical https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttack_Retrieve_Capture…",{"comments":32,"answered":33,"key":161},[162,165,168],{"id":163,"text":164},"36477080","Hey there, a little clarification - I don't claim that I came up with ECS itself, only a particular implementation of it that is very memory efficient, and Unity's patent…",{"id":166,"text":167},"36477848","Thank you! The approach you describe is indeed the \"final form\" of a brutally data-oriented ECS, but my method is a bit simpler - e.g. if the game has: struct player {…",{"id":169,"text":170},"36478051","Indeed, such a rigid struct-based \"ECS\" is basically how most non-ECS games do it, but using components to compose game objects, if you say put them into std::tuple, makes it…",{"commenters":172,"max_depth":173,"maker_replies":32,"first_comment_mins":174,"lifespan_hours":175},29,8,406,47,[177,179,183,186,188,191,193,196,199,202,205,208,210,213,216,218,220,224,227,231,232,234,236,238,242,244,248,249,252,254,256,258,260,263,265,267,270,271,273,276,278,279,281,282,287],[135,37,43,178,136,37],"project\u002Fneutral\u002Fexecution",[180,37,37,181,182,37],"36475315","commenter\u002Fneutral\u002Fnone","vlovich123",[184,37,37,181,185,37],"36476345","kevingadd",[187,37,37,181,182,37],"36493472",[189,37,37,181,190,37],"36478301","nwallin",[192,37,37,181,182,37],"36493460",[194,37,37,181,195,37],"36478477","rrobukef",[197,37,37,181,198,37],"36475781","ColFrancis",[200,37,37,181,201,37],"36478566","dundarious",[203,37,37,181,204,37],"36479795","zokier",[206,37,37,181,207,37],"36480386","cornstalks",[99,37,44,209,100,37],"project\u002Fpositive\u002Fexecution",[211,37,37,181,212,37],"36477460","eliasmacpherson",[214,37,37,181,215,37],"36478222","chpatrick",[217,37,37,181,204,37],"36479521",[144,39,43,219,69,37],"project\u002Fneutral\u002Fidea",[221,39,37,222,223,37],"36479714","other\u002Fneutral\u002Fnone","DiabloD3",[225,39,37,222,226,37],"36479839","Pannoniae",[228,39,44,229,230,37],"36480471","project\u002Fpositive\u002Fidea","jevogel",[68,39,44,209,69,37],[107,33,39,233,108,37],"project\u002Fcritical\u002Fnone",[111,33,43,235,112,37],"project\u002Fmixed\u002Fidea",[163,33,37,237,11,39],"maker\u002Fneutral\u002Fidea",[239,33,43,240,241,37],"36477641","project\u002Fneutral\u002Fdesign","lionkor",[166,33,37,243,11,39],"maker\u002Fneutral\u002Fdesign",[245,33,37,246,247,37],"36477982","commenter\u002Fneutral\u002Fdesign","meheleventyone",[169,33,37,243,11,39],[250,33,44,251,247,37],"36478661","project\u002Fpositive\u002Fdesign",[253,33,37,246,223,37],"36479741",[255,33,43,240,241,37],"36482420",[257,33,37,246,247,37],"36477922",[84,43,44,259,85,37],"project\u002Fpositive\u002Fnone",[157,261,43,262,158,37],4,"project\u002Fneutral\u002Fnone",[80,44,43,264,81,37],"maker\u002Fneutral\u002Fnone",[266,44,37,264,11,39],"36487500",[268,44,44,269,81,37],"36487530","maker\u002Fpositive\u002Fnone",[95,18,44,251,96,37],[123,32,43,272,124,37],"project\u002Fmixed\u002Fexecution",[274,32,37,275,11,39],"36481144","maker\u002Fneutral\u002Fexecution",[277,32,44,269,124,37],"36483376",[88,173,44,269,89,37],[280,173,37,243,11,39],"36474343",[150,31,43,262,151,37],[283,284,39,285,286,37],"36479106",10,"project\u002Fcritical\u002Fdocs","stephenpassero",[288,284,37,289,11,39],"36479146","maker\u002Fneutral\u002Fdocs",[],[292,297,302,306,311,315],{"id":293,"name":294,"points":295,"category":296},"36480687","Mofi",708,"creative",{"id":298,"name":299,"points":300,"category":301},"36470297","OpenResume",656,"productivity",{"id":303,"name":304,"points":305,"category":301},"36446045","Vrite Editor",460,{"id":307,"name":308,"points":309,"category":310},"36505859","background removal",395,"ai",{"id":312,"name":313,"points":314,"category":310},"36472854","WinGPT",382,{"id":316,"name":317,"points":318,"category":319},"36447871","React Graph Gallery",297,"dev_tools",false,"v2",{"id":323,"name":5,"line":6,"ai":320,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":324,"top":18,"kw":325,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":326,"url":9,"mix":327,"praise":77,"objection":104,"sub":21},36469297,0.21,[21,24,25,26,27],"3000000000500030551303005030533553055031",[31,32,33,33],1794036637401]