The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Just intonation keyboard – play music without knowing music
This is a keyboard in just intonation. It can play the notes a piano can. The big difference from a piano is that all the notes become consonant. At least, when you want to play a dissonant chord, you are clearly opting in to it because it's clear which notes are dissonant to each other. You won't bump into a dissonant note by mistake.<p>You can play without knowing any music theory. Hit arbitrary notes with the rhythm you want, and the pitches will work. Not understanding the buttons is fine. Even rolling your elbow around your keyboard is fine.<p>If you are a musician and press the wrong key while playing a song, it will still fit. It will sound like you made an intelligent, conscious choice to play another note, even though you know in your heart it was an accident. Beginner jazz musicians rejoice.<p>It's not an AI making choices for you; it's just a very elegant interface. What makes this possible is several new discoveries in psychoacoustics about how harmony works. While a piano lays out notes in pitch space, this keyboard is able to lay out notes in consonance space. When you play random notes, they tend to be "close together" on the physical keyboard. Distance on the keyboard maps well to distance in consonance space, so those random notes are close together in consonance space and sound good together.<p>According to Miles Davis, a "wrong" note becomes correct in the right context. If you try to play a wrong note, the purple buttons you press will automatically land you in the right context, even if you don't know what that context is yourself. So you can stumble your way through an improv and the keyboard will offer the right notes without needing you to think about it.<p>Harmonic consonance of chords can be read directly off the numbers in the keyboard, which implies that these numbers are a good language to think about music with. It doesn't take years of training, just reading the rules. The key harmony insight that you can do on this keyboard, and not on a piano, is to add frequencies linearly (like 400 Hz + 300 Hz). The reason this matters is that linear combinations of frequencies are a major factor of harmony, in lattice tones. So to see how dissonant or consonant a chord is, you want to check how distant it is from a sum or arithmetic progression. On a piano, to do the same, you'd have to memorize fractional approximations of 2^(N/12), then add and subtract these fractions, which is very difficult. For example, how far is 6/5 + 4/3 from 5/2? Hard to say! But if denominators are cleared, it's easy to compare 36 40 45: they're off by 1 from an arithmetic progression. This also applies to overlapping notes, not just chords. Having all the keys accessible on a piano is very convenient, but this translation layer of 2^(N/12) approximation + fractional arithmetic makes it hard to see harmony beyond the pairwise ratios.<p>The subset of playable songs is different from a piano, which means that songs in your existing piano repertoire will snip off some notes. Hardware for thumb keys would fix this, so you could play your existing piano songs in full, plus other songs a piano can't play. I don't have such hardware so I haven't implemented this. The other way is to have two keyboards and a partner.<p>The remaining issue is that there is no sheet music in just intonation. Unfortunately, I have had no success in finding piano sheet music in a common, interpretable format. So while I do have a converter from 12 equal temperament to just intonation, there are no input files to use it with...
Show HN: Just intonation keyboard – play music without knowing music
This is a keyboard in just intonation. It can play the notes a piano can. The big difference from a piano is that all the notes become consonant. At least, when you want to play a dissonant chord, you are clearly opting in to it because it's clear which notes are dissonant to each other. You won't bump into a dissonant note by mistake.<p>You can play without knowing any music theory. Hit arbitrary notes with the rhythm you want, and the pitches will work. Not understanding the buttons is fine. Even rolling your elbow around your keyboard is fine.<p>If you are a musician and press the wrong key while playing a song, it will still fit. It will sound like you made an intelligent, conscious choice to play another note, even though you know in your heart it was an accident. Beginner jazz musicians rejoice.<p>It's not an AI making choices for you; it's just a very elegant interface. What makes this possible is several new discoveries in psychoacoustics about how harmony works. While a piano lays out notes in pitch space, this keyboard is able to lay out notes in consonance space. When you play random notes, they tend to be "close together" on the physical keyboard. Distance on the keyboard maps well to distance in consonance space, so those random notes are close together in consonance space and sound good together.<p>According to Miles Davis, a "wrong" note becomes correct in the right context. If you try to play a wrong note, the purple buttons you press will automatically land you in the right context, even if you don't know what that context is yourself. So you can stumble your way through an improv and the keyboard will offer the right notes without needing you to think about it.<p>Harmonic consonance of chords can be read directly off the numbers in the keyboard, which implies that these numbers are a good language to think about music with. It doesn't take years of training, just reading the rules. The key harmony insight that you can do on this keyboard, and not on a piano, is to add frequencies linearly (like 400 Hz + 300 Hz). The reason this matters is that linear combinations of frequencies are a major factor of harmony, in lattice tones. So to see how dissonant or consonant a chord is, you want to check how distant it is from a sum or arithmetic progression. On a piano, to do the same, you'd have to memorize fractional approximations of 2^(N/12), then add and subtract these fractions, which is very difficult. For example, how far is 6/5 + 4/3 from 5/2? Hard to say! But if denominators are cleared, it's easy to compare 36 40 45: they're off by 1 from an arithmetic progression. This also applies to overlapping notes, not just chords. Having all the keys accessible on a piano is very convenient, but this translation layer of 2^(N/12) approximation + fractional arithmetic makes it hard to see harmony beyond the pairwise ratios.<p>The subset of playable songs is different from a piano, which means that songs in your existing piano repertoire will snip off some notes. Hardware for thumb keys would fix this, so you could play your existing piano songs in full, plus other songs a piano can't play. I don't have such hardware so I haven't implemented this. The other way is to have two keyboards and a partner.<p>The remaining issue is that there is no sheet music in just intonation. Unfortunately, I have had no success in finding piano sheet music in a common, interpretable format. So while I do have a converter from 12 equal temperament to just intonation, there are no input files to use it with...
Show HN: Find simple open source bounties to solve and get paid
Show HN: Superfunctions – AI prompt templates as an API
Hi HN,<p><a href="https://superfunctions.com" rel="nofollow noreferrer">https://superfunctions.com</a><p>I'm working on a web app that allows Ai prompts to function as an API. I want to make it easier for developers to use Ai. I've found it painful to monitor, cache, and iterate on prompts. superfunctions.com is designed to be the simplest building block to create Ai powered apps and scripts.<p>Simplest example I can think of:
You want an api to convert human-named colors to hex
You can write a prompt like: "convert {{query.color}} to color, only output hex for css" and then you can call your prompt with <a href="https://superfn.com/fn/color-to-hex?color=blue" rel="nofollow noreferrer">https://superfn.com/fn/color-to-hex?color=blue</a>
and the response will contain: #0000FF<p>Watch a short video intro:
<a href="https://www.youtube.com/watch?v=KdO1TBUbRuA">https://www.youtube.com/watch?v=KdO1TBUbRuA</a><p>Login without needing an account:
<a href="https://superfunctions.com/login/anon" rel="nofollow noreferrer">https://superfunctions.com/login/anon</a><p>I'm still sorting out a few bugs, but it's usable in it's current state.<p>This is my first solo project, so I'm very open to feedback and suggestions.<p>-Trent
Show HN: Superfunctions – AI prompt templates as an API
Hi HN,<p><a href="https://superfunctions.com" rel="nofollow noreferrer">https://superfunctions.com</a><p>I'm working on a web app that allows Ai prompts to function as an API. I want to make it easier for developers to use Ai. I've found it painful to monitor, cache, and iterate on prompts. superfunctions.com is designed to be the simplest building block to create Ai powered apps and scripts.<p>Simplest example I can think of:
You want an api to convert human-named colors to hex
You can write a prompt like: "convert {{query.color}} to color, only output hex for css" and then you can call your prompt with <a href="https://superfn.com/fn/color-to-hex?color=blue" rel="nofollow noreferrer">https://superfn.com/fn/color-to-hex?color=blue</a>
and the response will contain: #0000FF<p>Watch a short video intro:
<a href="https://www.youtube.com/watch?v=KdO1TBUbRuA">https://www.youtube.com/watch?v=KdO1TBUbRuA</a><p>Login without needing an account:
<a href="https://superfunctions.com/login/anon" rel="nofollow noreferrer">https://superfunctions.com/login/anon</a><p>I'm still sorting out a few bugs, but it's usable in it's current state.<p>This is my first solo project, so I'm very open to feedback and suggestions.<p>-Trent
Show HN: Fake Hacker News – See what HN has to say before you post
Hi HN!<p>I’ve been lurking for a while, but out of fear of being steamrolled by HN readers or maybe just natural introversion, I’ve always been too scared to post or comment. Which is why<p>1. this is my first real Hacker News submission<p>2. my friend Michael and I built "Fake" Hacker News, a place to post and see what AI-generated HN comments might say.<p>Here’s a video of me using fakeHN to test this very submission:
<a href="https://www.loom.com/share/4b9f4f9d7c77489a86baeb92ec55a1ed?sid=a74043f6-8a6e-4a68-bcda-330ab9d7eafe" rel="nofollow noreferrer">https://www.loom.com/share/4b9f4f9d7c77489a86baeb92ec55a1ed?...</a><p>And an example of one of our generated posts:
<a href="https://www.fakehn.com/submission?id=tnYPX00BX827jWFPFkVJ" rel="nofollow noreferrer">https://www.fakehn.com/submission?id=tnYPX00BX827jWFPFkVJ</a><p>To try it, submit a title and text, and depending on traffic and the powers that be, after ~5 seconds, you’ll see some Fake HN comments and replies.<p>We don’t support url submissions yet, but we’re happy to build it if the community wants it!<p>Other features to knock out: deeply nested replies, streamed comments, and higher-fidelity comments mapping to real readers, since the generations now are still pretty shallow. Instead of the quick and dirty system in place now, we think it’d be really cool to see how more nuanced AI agents with the opinions and biases of real individual HN readers might respond.<p>I’d love to see what fakeHN posts you’ve tried and hear any feedback, whether you feel like it’s more of a nifty toy or could eventually solve real problems. If nothing else, it’s been funny to try random posts and see the results. :)<p>- Justin and Michael
Show HN: Fake Hacker News – See what HN has to say before you post
Hi HN!<p>I’ve been lurking for a while, but out of fear of being steamrolled by HN readers or maybe just natural introversion, I’ve always been too scared to post or comment. Which is why<p>1. this is my first real Hacker News submission<p>2. my friend Michael and I built "Fake" Hacker News, a place to post and see what AI-generated HN comments might say.<p>Here’s a video of me using fakeHN to test this very submission:
<a href="https://www.loom.com/share/4b9f4f9d7c77489a86baeb92ec55a1ed?sid=a74043f6-8a6e-4a68-bcda-330ab9d7eafe" rel="nofollow noreferrer">https://www.loom.com/share/4b9f4f9d7c77489a86baeb92ec55a1ed?...</a><p>And an example of one of our generated posts:
<a href="https://www.fakehn.com/submission?id=tnYPX00BX827jWFPFkVJ" rel="nofollow noreferrer">https://www.fakehn.com/submission?id=tnYPX00BX827jWFPFkVJ</a><p>To try it, submit a title and text, and depending on traffic and the powers that be, after ~5 seconds, you’ll see some Fake HN comments and replies.<p>We don’t support url submissions yet, but we’re happy to build it if the community wants it!<p>Other features to knock out: deeply nested replies, streamed comments, and higher-fidelity comments mapping to real readers, since the generations now are still pretty shallow. Instead of the quick and dirty system in place now, we think it’d be really cool to see how more nuanced AI agents with the opinions and biases of real individual HN readers might respond.<p>I’d love to see what fakeHN posts you’ve tried and hear any feedback, whether you feel like it’s more of a nifty toy or could eventually solve real problems. If nothing else, it’s been funny to try random posts and see the results. :)<p>- Justin and Michael
Show HN: A simple, open-source Notion-like avatar generator
Show HN: A simple, open-source Notion-like avatar generator
Show HN: A simple, open-source Notion-like avatar generator
Show HN: Rivet – Open-source game server management with Nomad and Rust
Hey HN!<p>Rivet is an OSS game server management tool that enables game developers to easily deploy their dedicated servers without any infra experience.<p>We 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.<p>My 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](<a href="http://Krunker.io" rel="nofollow noreferrer">http://Krunker.io</a>) (acq by FRVR) & other popular multiplayer web games. After wasting months rebuilding dedicated server infrastructure + DDoS/bot mitigation over and over, we started building Rivet as a side project.<p>Some interesting tidbits:<p>- ~99% Rust and a smidgeon of Lua.<p>- Bolt [2] – Cluster dev & management toolchain for super configurable self-hosted Rivet clusters. It’s way over-engineered.<p>- The entire repo is usable as a library. Our EE repo uses OSS as a submodule.<p>- Traefik used as an edge proxy for low-latency UDP, TCP+TLS, & WSS traffic.<p>- Apache Traffic Server is under-appreciated as a large file cache. Used as an edge Docker pull-through cache to improve cold starts & as a CDN cache to lower our S3 bill.<p>- ClickHouse used for analytics & game server logs. It’s so simple, I have nothing more to say.<p>- Serving Docker images with Apache TS is simpler & cheaper than running a Docker pull-through cache.<p>- Nebula has been rock solid & easy to operate as our overlay network.<p>- We use Redis Lua scripts for complex, atomic, in-memory operations.<p>- Obviously, we love Nix.<p>- We keep a rough SBOM [3].<p>- Licensed under Apache 2.0 (OSI-approved). We seriously want people to run & tinker with Rivet themselves. We get a lot of questions about this: [4] [5]<p>Some HN-flavored FAQ:<p>> Why not build on top of Agones or Kubernetes?<p>Nomad is simpler & more flexible than Agones/Kubernetes out of the box, which let us get up and running faster. For example, Nomad natively supports multiple task drivers, edge workloads, and runs as a standalone binary.<p>> [Fly.io](<a href="http://Fly.io">http://Fly.io</a>) migrated off of Nomad, how will you scale?<p>Nomad can support 2M containers [6]. Some quick math: avg 8 players per lobby * 2M lobbies * 8 regional clusters = ~128M CCU. That’s well above PUBG’s 3.2m CCU peak.<p>Roblox’s game servers also run on top of Nomad [7]. We’re in good company.<p>> Are you affected by the recent Nomad BSL relicensing [8]?<p>Maybe, see [9].<p>> How do you compare to $X?<p>Our core goal is to get developers up and running as fast as possible. We provide extra services like our matchmaker [10], CDN [11], and KV [12] to make shipping a fully-fledged multiplayer game require only a couple of lines of code.<p>No other project provides a comparably accessible, OSS, and comprehensive game server manager.<p>> Do you handle networking logic?<p>No. We work with existing tools like FishNet, Mirror, NGO, Unreal & Godot replication, and anything else you can run in Docker.<p>> Is anyone actually using this?<p>Yes, we’ve been running in closed beta since Jan ‘22 and currently support millions of MAU across many titles.<p>[1]: <a href="https://github.com/rivet-gg/microgravity.io">https://github.com/rivet-gg/microgravity.io</a><p>[2]: <a href="https://github.com/rivet-gg/rivet/tree/main/docs/libraries/bolt">https://github.com/rivet-gg/rivet/tree/main/docs/libraries/b...</a><p>[3]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/infrastructure/SBOM.md">https://github.com/rivet-gg/rivet/blob/main/docs/infrastruct...</a><p>[4]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/LICENSING.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[5]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/WHY_OPEN_SOURCE.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[6]: <a href="https://www.hashicorp.com/c2m" rel="nofollow noreferrer">https://www.hashicorp.com/c2m</a><p>[7]: <a href="https://www.hashicorp.com/case-studies/roblox" rel="nofollow noreferrer">https://www.hashicorp.com/case-studies/roblox</a><p>[8]: <a href="https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license" rel="nofollow noreferrer">https://www.hashicorp.com/blog/hashicorp-adopts-business-sou...</a><p>[9]: <a href="https://news.ycombinator.com/item?id=37084825">https://news.ycombinator.com/item?id=37084825</a><p>[10]: <a href="https://rivet.gg/docs/matchmaker">https://rivet.gg/docs/matchmaker</a><p>[11]: <a href="https://rivet.gg/docs/cdn">https://rivet.gg/docs/cdn</a><p>[12]: <a href="https://rivet.gg/docs/kv">https://rivet.gg/docs/kv</a>
Show HN: Rivet – Open-source game server management with Nomad and Rust
Hey HN!<p>Rivet is an OSS game server management tool that enables game developers to easily deploy their dedicated servers without any infra experience.<p>We 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.<p>My 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](<a href="http://Krunker.io" rel="nofollow noreferrer">http://Krunker.io</a>) (acq by FRVR) & other popular multiplayer web games. After wasting months rebuilding dedicated server infrastructure + DDoS/bot mitigation over and over, we started building Rivet as a side project.<p>Some interesting tidbits:<p>- ~99% Rust and a smidgeon of Lua.<p>- Bolt [2] – Cluster dev & management toolchain for super configurable self-hosted Rivet clusters. It’s way over-engineered.<p>- The entire repo is usable as a library. Our EE repo uses OSS as a submodule.<p>- Traefik used as an edge proxy for low-latency UDP, TCP+TLS, & WSS traffic.<p>- Apache Traffic Server is under-appreciated as a large file cache. Used as an edge Docker pull-through cache to improve cold starts & as a CDN cache to lower our S3 bill.<p>- ClickHouse used for analytics & game server logs. It’s so simple, I have nothing more to say.<p>- Serving Docker images with Apache TS is simpler & cheaper than running a Docker pull-through cache.<p>- Nebula has been rock solid & easy to operate as our overlay network.<p>- We use Redis Lua scripts for complex, atomic, in-memory operations.<p>- Obviously, we love Nix.<p>- We keep a rough SBOM [3].<p>- Licensed under Apache 2.0 (OSI-approved). We seriously want people to run & tinker with Rivet themselves. We get a lot of questions about this: [4] [5]<p>Some HN-flavored FAQ:<p>> Why not build on top of Agones or Kubernetes?<p>Nomad is simpler & more flexible than Agones/Kubernetes out of the box, which let us get up and running faster. For example, Nomad natively supports multiple task drivers, edge workloads, and runs as a standalone binary.<p>> [Fly.io](<a href="http://Fly.io">http://Fly.io</a>) migrated off of Nomad, how will you scale?<p>Nomad can support 2M containers [6]. Some quick math: avg 8 players per lobby * 2M lobbies * 8 regional clusters = ~128M CCU. That’s well above PUBG’s 3.2m CCU peak.<p>Roblox’s game servers also run on top of Nomad [7]. We’re in good company.<p>> Are you affected by the recent Nomad BSL relicensing [8]?<p>Maybe, see [9].<p>> How do you compare to $X?<p>Our core goal is to get developers up and running as fast as possible. We provide extra services like our matchmaker [10], CDN [11], and KV [12] to make shipping a fully-fledged multiplayer game require only a couple of lines of code.<p>No other project provides a comparably accessible, OSS, and comprehensive game server manager.<p>> Do you handle networking logic?<p>No. We work with existing tools like FishNet, Mirror, NGO, Unreal & Godot replication, and anything else you can run in Docker.<p>> Is anyone actually using this?<p>Yes, we’ve been running in closed beta since Jan ‘22 and currently support millions of MAU across many titles.<p>[1]: <a href="https://github.com/rivet-gg/microgravity.io">https://github.com/rivet-gg/microgravity.io</a><p>[2]: <a href="https://github.com/rivet-gg/rivet/tree/main/docs/libraries/bolt">https://github.com/rivet-gg/rivet/tree/main/docs/libraries/b...</a><p>[3]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/infrastructure/SBOM.md">https://github.com/rivet-gg/rivet/blob/main/docs/infrastruct...</a><p>[4]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/LICENSING.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[5]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/WHY_OPEN_SOURCE.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[6]: <a href="https://www.hashicorp.com/c2m" rel="nofollow noreferrer">https://www.hashicorp.com/c2m</a><p>[7]: <a href="https://www.hashicorp.com/case-studies/roblox" rel="nofollow noreferrer">https://www.hashicorp.com/case-studies/roblox</a><p>[8]: <a href="https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license" rel="nofollow noreferrer">https://www.hashicorp.com/blog/hashicorp-adopts-business-sou...</a><p>[9]: <a href="https://news.ycombinator.com/item?id=37084825">https://news.ycombinator.com/item?id=37084825</a><p>[10]: <a href="https://rivet.gg/docs/matchmaker">https://rivet.gg/docs/matchmaker</a><p>[11]: <a href="https://rivet.gg/docs/cdn">https://rivet.gg/docs/cdn</a><p>[12]: <a href="https://rivet.gg/docs/kv">https://rivet.gg/docs/kv</a>
Show HN: Rivet – Open-source game server management with Nomad and Rust
Hey HN!<p>Rivet is an OSS game server management tool that enables game developers to easily deploy their dedicated servers without any infra experience.<p>We 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.<p>My 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](<a href="http://Krunker.io" rel="nofollow noreferrer">http://Krunker.io</a>) (acq by FRVR) & other popular multiplayer web games. After wasting months rebuilding dedicated server infrastructure + DDoS/bot mitigation over and over, we started building Rivet as a side project.<p>Some interesting tidbits:<p>- ~99% Rust and a smidgeon of Lua.<p>- Bolt [2] – Cluster dev & management toolchain for super configurable self-hosted Rivet clusters. It’s way over-engineered.<p>- The entire repo is usable as a library. Our EE repo uses OSS as a submodule.<p>- Traefik used as an edge proxy for low-latency UDP, TCP+TLS, & WSS traffic.<p>- Apache Traffic Server is under-appreciated as a large file cache. Used as an edge Docker pull-through cache to improve cold starts & as a CDN cache to lower our S3 bill.<p>- ClickHouse used for analytics & game server logs. It’s so simple, I have nothing more to say.<p>- Serving Docker images with Apache TS is simpler & cheaper than running a Docker pull-through cache.<p>- Nebula has been rock solid & easy to operate as our overlay network.<p>- We use Redis Lua scripts for complex, atomic, in-memory operations.<p>- Obviously, we love Nix.<p>- We keep a rough SBOM [3].<p>- Licensed under Apache 2.0 (OSI-approved). We seriously want people to run & tinker with Rivet themselves. We get a lot of questions about this: [4] [5]<p>Some HN-flavored FAQ:<p>> Why not build on top of Agones or Kubernetes?<p>Nomad is simpler & more flexible than Agones/Kubernetes out of the box, which let us get up and running faster. For example, Nomad natively supports multiple task drivers, edge workloads, and runs as a standalone binary.<p>> [Fly.io](<a href="http://Fly.io">http://Fly.io</a>) migrated off of Nomad, how will you scale?<p>Nomad can support 2M containers [6]. Some quick math: avg 8 players per lobby * 2M lobbies * 8 regional clusters = ~128M CCU. That’s well above PUBG’s 3.2m CCU peak.<p>Roblox’s game servers also run on top of Nomad [7]. We’re in good company.<p>> Are you affected by the recent Nomad BSL relicensing [8]?<p>Maybe, see [9].<p>> How do you compare to $X?<p>Our core goal is to get developers up and running as fast as possible. We provide extra services like our matchmaker [10], CDN [11], and KV [12] to make shipping a fully-fledged multiplayer game require only a couple of lines of code.<p>No other project provides a comparably accessible, OSS, and comprehensive game server manager.<p>> Do you handle networking logic?<p>No. We work with existing tools like FishNet, Mirror, NGO, Unreal & Godot replication, and anything else you can run in Docker.<p>> Is anyone actually using this?<p>Yes, we’ve been running in closed beta since Jan ‘22 and currently support millions of MAU across many titles.<p>[1]: <a href="https://github.com/rivet-gg/microgravity.io">https://github.com/rivet-gg/microgravity.io</a><p>[2]: <a href="https://github.com/rivet-gg/rivet/tree/main/docs/libraries/bolt">https://github.com/rivet-gg/rivet/tree/main/docs/libraries/b...</a><p>[3]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/infrastructure/SBOM.md">https://github.com/rivet-gg/rivet/blob/main/docs/infrastruct...</a><p>[4]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/LICENSING.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[5]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/WHY_OPEN_SOURCE.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[6]: <a href="https://www.hashicorp.com/c2m" rel="nofollow noreferrer">https://www.hashicorp.com/c2m</a><p>[7]: <a href="https://www.hashicorp.com/case-studies/roblox" rel="nofollow noreferrer">https://www.hashicorp.com/case-studies/roblox</a><p>[8]: <a href="https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license" rel="nofollow noreferrer">https://www.hashicorp.com/blog/hashicorp-adopts-business-sou...</a><p>[9]: <a href="https://news.ycombinator.com/item?id=37084825">https://news.ycombinator.com/item?id=37084825</a><p>[10]: <a href="https://rivet.gg/docs/matchmaker">https://rivet.gg/docs/matchmaker</a><p>[11]: <a href="https://rivet.gg/docs/cdn">https://rivet.gg/docs/cdn</a><p>[12]: <a href="https://rivet.gg/docs/kv">https://rivet.gg/docs/kv</a>
Show HN: Rivet – Open-source game server management with Nomad and Rust
Hey HN!<p>Rivet is an OSS game server management tool that enables game developers to easily deploy their dedicated servers without any infra experience.<p>We 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.<p>My 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](<a href="http://Krunker.io" rel="nofollow noreferrer">http://Krunker.io</a>) (acq by FRVR) & other popular multiplayer web games. After wasting months rebuilding dedicated server infrastructure + DDoS/bot mitigation over and over, we started building Rivet as a side project.<p>Some interesting tidbits:<p>- ~99% Rust and a smidgeon of Lua.<p>- Bolt [2] – Cluster dev & management toolchain for super configurable self-hosted Rivet clusters. It’s way over-engineered.<p>- The entire repo is usable as a library. Our EE repo uses OSS as a submodule.<p>- Traefik used as an edge proxy for low-latency UDP, TCP+TLS, & WSS traffic.<p>- Apache Traffic Server is under-appreciated as a large file cache. Used as an edge Docker pull-through cache to improve cold starts & as a CDN cache to lower our S3 bill.<p>- ClickHouse used for analytics & game server logs. It’s so simple, I have nothing more to say.<p>- Serving Docker images with Apache TS is simpler & cheaper than running a Docker pull-through cache.<p>- Nebula has been rock solid & easy to operate as our overlay network.<p>- We use Redis Lua scripts for complex, atomic, in-memory operations.<p>- Obviously, we love Nix.<p>- We keep a rough SBOM [3].<p>- Licensed under Apache 2.0 (OSI-approved). We seriously want people to run & tinker with Rivet themselves. We get a lot of questions about this: [4] [5]<p>Some HN-flavored FAQ:<p>> Why not build on top of Agones or Kubernetes?<p>Nomad is simpler & more flexible than Agones/Kubernetes out of the box, which let us get up and running faster. For example, Nomad natively supports multiple task drivers, edge workloads, and runs as a standalone binary.<p>> [Fly.io](<a href="http://Fly.io">http://Fly.io</a>) migrated off of Nomad, how will you scale?<p>Nomad can support 2M containers [6]. Some quick math: avg 8 players per lobby * 2M lobbies * 8 regional clusters = ~128M CCU. That’s well above PUBG’s 3.2m CCU peak.<p>Roblox’s game servers also run on top of Nomad [7]. We’re in good company.<p>> Are you affected by the recent Nomad BSL relicensing [8]?<p>Maybe, see [9].<p>> How do you compare to $X?<p>Our core goal is to get developers up and running as fast as possible. We provide extra services like our matchmaker [10], CDN [11], and KV [12] to make shipping a fully-fledged multiplayer game require only a couple of lines of code.<p>No other project provides a comparably accessible, OSS, and comprehensive game server manager.<p>> Do you handle networking logic?<p>No. We work with existing tools like FishNet, Mirror, NGO, Unreal & Godot replication, and anything else you can run in Docker.<p>> Is anyone actually using this?<p>Yes, we’ve been running in closed beta since Jan ‘22 and currently support millions of MAU across many titles.<p>[1]: <a href="https://github.com/rivet-gg/microgravity.io">https://github.com/rivet-gg/microgravity.io</a><p>[2]: <a href="https://github.com/rivet-gg/rivet/tree/main/docs/libraries/bolt">https://github.com/rivet-gg/rivet/tree/main/docs/libraries/b...</a><p>[3]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/infrastructure/SBOM.md">https://github.com/rivet-gg/rivet/blob/main/docs/infrastruct...</a><p>[4]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/LICENSING.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[5]: <a href="https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/WHY_OPEN_SOURCE.md">https://github.com/rivet-gg/rivet/blob/main/docs/philosophy/...</a><p>[6]: <a href="https://www.hashicorp.com/c2m" rel="nofollow noreferrer">https://www.hashicorp.com/c2m</a><p>[7]: <a href="https://www.hashicorp.com/case-studies/roblox" rel="nofollow noreferrer">https://www.hashicorp.com/case-studies/roblox</a><p>[8]: <a href="https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license" rel="nofollow noreferrer">https://www.hashicorp.com/blog/hashicorp-adopts-business-sou...</a><p>[9]: <a href="https://news.ycombinator.com/item?id=37084825">https://news.ycombinator.com/item?id=37084825</a><p>[10]: <a href="https://rivet.gg/docs/matchmaker">https://rivet.gg/docs/matchmaker</a><p>[11]: <a href="https://rivet.gg/docs/cdn">https://rivet.gg/docs/cdn</a><p>[12]: <a href="https://rivet.gg/docs/kv">https://rivet.gg/docs/kv</a>
Show HN: Aviation navigation log on $20 receipt printer
Show HN: Aviation navigation log on $20 receipt printer
Show HN: Aviation navigation log on $20 receipt printer
Show HN: Aviation navigation log on $20 receipt printer
Show HN: ChatGPT: craft the right question, unlock the best answer
Show HN: Textify – Replace gibberish in AI-generated images