[{"data":1,"prerenderedAt":402},["ShallowReactive",2],{"project-37188659":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":46,"post_text":47,"what":48,"said":104,"maker_in_thread":236,"shape":241,"grid":245,"attempts":359,"same_week":366,"maker_shows":38,"maker_hidden":394,"reader_version":395,"card":396},"37188659","Rivet","Open-source game server management with Nomad and Rust","title","Show HN: Rivet – Open-source game server management with Nomad and Rust","https:\u002F\u002Fgithub.com\u002Frivet-gg\u002Frivet","github.com","NathanFlurry",1692452302,2023,327,44,125,3109,5,"legend","infrastructure","game server management","other",[24,25,26,27,28],"game server hosting","dedicated servers","matchmaking","nomad","multiplayer game backend","mixed",0.222,{"positive":32,"neutral":33,"mixed":34,"critical":18},10,13,0,28,{"idea":37,"design":39,"docs":42,"pricing":43,"execution":44},{"positive":38,"critical":34},6,{"positive":40,"critical":41},2,3,{"positive":34,"critical":40},{"positive":34,"critical":34},{"positive":45,"critical":34},1,[18,18,34,18,34,34,34,34,45,34,34,34,45,45,34,34,34,18,41,41,34,34,41,41,34,45,41,41,41,41,18,18,18,41,41,18,18,41,34,41],"Hey HN!\n\nRivet is an OSS game server management tool that enables game developers to easily deploy their dedicated servers without any infra experience.\n\nWe recently open-sourced Rivet after working on it for the past couple of years. I wanted to share some of my favorite things about our experience building this with the HN community.\n\nMy cofounder and I have been building multiplayer games together since middle school for fun (and not much profit [1]). In HS, I stumbled into building the entire infrastructure powering [Krunker.io](http:\u002F\u002FKrunker.io) (acq by FRVR) & other popular multiplayer ",{"problem":49,"audience":55,"pricing":59,"motivation":60,"time_to_build":59,"stack":64,"openness":101,"stage":102,"team_size":103},{"value":50,"source":51,"evidence":52},"Game developers need dedicated server infrastructure without infra experience","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Game developers",[58],{"id":54},null,{"value":61,"source":51,"evidence":62},"Founders wasted months rebuilding dedicated server infrastructure for multiplayer games",[63],{"id":54},[65,69,73,77,81,85,89,93,97],{"value":66,"source":51,"evidence":67},"Rust",[68],{"id":54},{"value":70,"source":51,"evidence":71},"Lua",[72],{"id":54},{"value":74,"source":51,"evidence":75},"Nomad",[76],{"id":54},{"value":78,"source":51,"evidence":79},"Traefik",[80],{"id":54},{"value":82,"source":51,"evidence":83},"Apache Traffic Server",[84],{"id":54},{"value":86,"source":51,"evidence":87},"ClickHouse",[88],{"id":54},{"value":90,"source":51,"evidence":91},"Redis",[92],{"id":54},{"value":94,"source":51,"evidence":95},"Nebula",[96],{"id":54},{"value":98,"source":51,"evidence":99},"Nix",[100],{"id":54},"open_source","launched","team",{"praise":105,"objections":133,"requests":155,"questions":184,"alternatives":210},[106,122],{"value":107,"source":108,"evidence":109},"Good to see open source game infrastructure and matchmaking tools","commenter",[110,114,118],{"id":111,"by":112,"text":113},"37191209","bcjordan","OK, this is awesome. As a fellow game developer who learned to navigate the complexities of matchmaking and server orchestration the hard way (and begrudgingly), seeing Rivet…",{"id":115,"by":116,"text":117},"37190736","waughpew","So glad to see open source. Bold step.",{"id":119,"by":120,"text":121},"37191569","jordo","Open sourced - nice!",{"value":123,"source":108,"evidence":124},"Nomad is a good choice versus Kubernetes",[125,129],{"id":126,"by":127,"text":128},"37193638","ForHackernews","Nice to see some more good press for Nomad. IMHO it's superior to Kubernetes for most use cases.",{"id":130,"by":131,"text":132},"37196313","heipei","Counterpoint: Providers offer k8s managed solutions because it's such a pain in the ass to run yourself. Nomad is far simpler to setup, operate and upgrade. And lastly the folks…",[134,148],{"value":135,"source":108,"evidence":136},"Nomad is under BSL relicensing and may lack future security updates",[137,141,145],{"id":138,"by":139,"text":140},"37193453","Thaxll","The fact that this solution is based on nomad is a big red flag: - no updates after December - you probably won't have the right to use nomad after that - every providers offer…",{"id":142,"by":143,"text":144},"37193015","riku_iki","so, they won't receive security updates after Dec.",{"id":146,"by":143,"text":147},"37192034","given nomad is under business license now, can Hashi come after you?",{"value":149,"source":108,"evidence":150},"Nomad lacks managed cloud offerings compared to Kubernetes",[151,152],{"id":138,"by":139,"text":140},{"id":153,"by":139,"text":154},"37228151","Meanwile no one offers Nomad managed service, so who create those clusters, who operate them, who keep security \u002F upgrade on...? You go to any cloud provider they all offer…",[156,166,177],{"value":157,"source":108,"evidence":158},"Better local development support",[159,163],{"id":160,"by":161,"text":162},"37189564","sovietmudkipz","Cool project (based on me skimming the documentation). I’m a hobbyist game dev whose been attempting a deploy of a simple multiplayer game on AWS, specifically gamelift, for…",{"id":164,"by":161,"text":165},"37193925","To be honest I do wonder if my fixation with local development is even justifiable. Looking around at projects and documentation I do get the sense that local dev is not a…",{"value":167,"source":108,"evidence":168},"Bevy or engine-agnostic Rust crate support",[169,173],{"id":170,"by":171,"text":172},"37190268","Brighthurst","Wow, this is super cool. As a hobbyist game dev, I really hope to see bevy support soonish, as it has a dedicated community and is also Rust-based. Or rather, a rust crate for…",{"id":174,"by":175,"text":176},"37192486","NKissel","We plan to at some point — being engine agnostic is one of our goals.",{"value":178,"source":108,"evidence":179},"Relayed multiplayer support like Nakama",[180],{"id":181,"by":182,"text":183},"37189913","eole666","Really cool! I'll consider it when launching my godot game. Is there any plan to support \"relayed multi-player\", with the actual game server being one of the players, and rivet…",[185,196,203],{"value":186,"source":108,"evidence":187},"Is the self-hosted version fully open source versus the hosted service features?",[188,192],{"id":189,"by":190,"text":191},"37194090","nextaccountic","When you say open source, do you mean that I can self host everything and not use your rivet.gg SaSS for anything? What are the features only available in SaSS? Do you anticipate…",{"id":193,"by":194,"text":195},"37195447","to-too-two","I’m curious about this as well. Seems similar to Nakama [1] and they’ve got some gotchas that aren’t right up front about payment. 1. https:\u002F\u002Fheroiclabs.com\u002Fnakama\u002F",{"value":197,"source":108,"evidence":198},"How does it compare to Epic Online Services?",[199],{"id":200,"by":201,"text":202},"37192490","singinwhale","I would be interested in knowing how this compares to Epic Online Services (EOS). We use EOS for connecting P2P lobbies and doing server browsing. When using unreal that service…",{"value":204,"source":108,"evidence":205},"Does one lobby equal one container, stranding resources?",[206],{"id":207,"by":208,"text":209},"37192095","opportune","Very cool, I have an abandoned web game side project and may try to run it on this! One question, am I correct in understanding you bake in the assumption that 1 lobby = 1…",[211,218,223,228,232],{"value":212,"source":108,"evidence":213},"Kubernetes \u002F Agones",[214,215],{"id":138,"by":139,"text":140},{"id":216,"by":127,"text":217},"37198899","> For the base case of I want to run a service and expose an http API it's pretty easy Are you kidding me? Before you can do anything, you need... 1. API Server 2. Scheduler 3.…",{"value":219,"source":108,"evidence":220},"AWS GameLift",[221,222],{"id":111,"by":112,"text":113},{"id":160,"by":161,"text":162},{"value":224,"source":108,"evidence":225},"Nakama",[226,227],{"id":189,"by":190,"text":191},{"id":193,"by":194,"text":195},{"value":229,"source":108,"evidence":230},"Epic Online Services",[231],{"id":200,"by":201,"text":202},{"value":233,"source":108,"evidence":234},"Google OpenMatch",[235],{"id":111,"by":112,"text":113},{"comments":45,"answered":34,"key":237},[238],{"id":239,"text":240},"37189763","Thanks for the kind words and tips! > Anyways I’d just like to voice myself as a possible target audience Local development is tricky, and we have plenty of room for improvement…",{"commenters":242,"max_depth":18,"maker_replies":45,"first_comment_mins":243,"lifespan_hours":244},34,92,158,[246,248,251,255,258,261,264,268,270,272,274,277,278,280,284,285,287,289,292,294,298,300,302,304,305,308,309,312,315,316,317,322,327,329,330,335,340,343,345,347,349,351,354,355],[111,34,18,247,112,34],"project\u002Fpositive\u002Fidea",[249,34,18,247,250,34],"37192037","devbug",[252,34,34,253,254,34],"37194417","other\u002Fneutral\u002Fnone","lazypenguin",[256,34,18,257,175,34],"37192185","maker\u002Fpositive\u002Fidea",[259,34,34,253,260,34],"37195575","doctorpangloss",[262,34,34,253,263,34],"37196625","GabeIsko",[265,34,34,266,267,34],"37199867","commenter\u002Fneutral\u002Fnone","appplication",[269,34,34,253,260,34],"37200548",[138,45,45,271,139,34],"project\u002Fcritical\u002Fdesign",[273,45,34,253,127,34],"37193657",[275,45,34,266,276,34],"37195642","wbl",[216,45,34,266,127,34],[279,45,34,266,276,34],"37200867",[281,45,45,282,283,34],"37206328","project\u002Fcritical\u002Fdocs","iakov",[153,45,45,271,139,34],[286,45,34,266,260,34],"37195461",[288,45,34,253,131,34],"37196309",[290,45,34,253,291,34],"37196497","KronisLV",[130,45,18,293,131,34],"project\u002Fpositive\u002Fdesign",[295,45,41,296,297,34],"37207598","project\u002Fneutral\u002Fnone","kawsper",[181,40,41,299,182,34],"project\u002Fneutral\u002Fidea",[160,41,41,301,161,34],"project\u002Fneutral\u002Fdocs",[239,41,34,303,11,45],"maker\u002Fneutral\u002Fdocs",[164,41,34,253,161,34],[189,306,41,307,190,34],4,"project\u002Fneutral\u002Fpricing",[193,306,41,307,194,34],[310,306,34,266,311,34],"37269700","mofirouz",[313,18,45,282,314,34],"37192694","kapilvt",[170,38,41,299,171,34],[174,38,41,299,175,34],[318,319,41,320,321,34],"37189756",7,"project\u002Fneutral\u002Fdesign","nravic",[323,324,41,325,326,34],"37197350",8,"project\u002Fneutral\u002Fexecution","lionkor",[207,328,41,320,208,34],9,[115,32,18,247,116,34],[331,332,18,333,334,34],"37197408",11,"maker\u002Fpositive\u002Fexecution","clemo_ra",[336,337,18,338,339,34],"37190453",12,"maker\u002Fpositive\u002Fnone","redgetan",[341,33,41,320,342,34],"37197743","say_it_as_it_is",[200,344,41,299,201,34],14,[126,346,18,293,127,34],15,[119,348,18,247,120,34],16,[146,350,41,296,143,34],17,[352,350,34,266,353,34],"37192930","whatsdoom",[142,350,45,271,143,34],[356,357,18,247,358,34],"37191917",18,"williamzeng0",[360,361],{"id":4,"t":12,"points":14,"comments":15},{"id":362,"t":363,"points":364,"comments":365},"42472519",1734712593,133,26,[367,372,376,380,384,389],{"id":368,"name":369,"points":370,"category":371},"37190743","flipreps",373,"creative",{"id":373,"name":374,"points":375,"category":371},"37194128","Just intonation keyboard",331,{"id":377,"name":378,"points":379,"category":371},"37188102","Avatartion",162,{"id":381,"name":382,"points":383,"category":20},"37224148","FlakeHub",154,{"id":385,"name":386,"points":387,"category":388},"37234887","Fast vector similarity",141,"data",{"id":390,"name":391,"points":392,"category":393},"37180017","Poozle",132,"ai",false,"v2",{"id":397,"name":5,"line":6,"ai":394,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":398,"top":18,"kw":399,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":400,"url":9,"mix":401,"praise":107,"objection":135,"sub":21},37188659,0.22,[24,25,26,27,28],"5505000010001100053300330133335553355303",[32,33,34,18],1794036640377]