<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Joshua Kishaba</title>
    <description>The latest articles on DEV Community by Joshua Kishaba (@joshua_kishaba_e56e927841).</description>
    <link>https://dev.to/joshua_kishaba_e56e927841</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4232939%2Fe6e11c10-f625-4127-90e7-618fc96327c1.jpg</url>
      <title>DEV Community: Joshua Kishaba</title>
      <link>https://dev.to/joshua_kishaba_e56e927841</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joshua_kishaba_e56e927841"/>
    <language>en</language>
    <item>
      <title>Everything a multiplayer browser game needs before it's fun, in one script</title>
      <dc:creator>Joshua Kishaba</dc:creator>
      <pubDate>Sun, 08 Nov 2026 01:24:17 +0000</pubDate>
      <link>https://dev.to/joshua_kishaba_e56e927841/everything-a-multiplayer-browser-game-needs-before-its-fun-in-one-script-4i8l</link>
      <guid>https://dev.to/joshua_kishaba_e56e927841/everything-a-multiplayer-browser-game-needs-before-its-fun-in-one-script-4i8l</guid>
      <description>&lt;p&gt;Every multiplayer browser game I made needed the same things before anyone could actually play it with friends: a lobby, invite links, a way to pass messages between players, reconnect handling, and some kind of identity. None of that is the game. All of it takes weeks.&lt;/p&gt;

&lt;p&gt;So I pulled all of it into a platform, &lt;a href="https://hoplobby.com" rel="noopener noreferrer"&gt;HopLobby&lt;/a&gt;, and opened it up to other developers at &lt;a href="https://developers.hoplobby.com" rel="noopener noreferrer"&gt;developers.hoplobby.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Your game runs on your own host, inside a frame on hoplobby.com. One script, &lt;code&gt;hoplobby.js&lt;/code&gt;, connects it to the page and gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who is in the lobby&lt;/strong&gt; and who is hosting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A JSON relay&lt;/strong&gt; to send messages to everyone or to one player&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A shared clock&lt;/strong&gt; so every client agrees on time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Late-join state handoff&lt;/strong&gt; so people can drop in mid-match&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Player avatars&lt;/strong&gt;, as portraits or rigged glTF models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Players get invite links and codes, accounts and cosmetics from HopLobby, so your game starts with players already in a room.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing without a server
&lt;/h2&gt;

&lt;p&gt;There is a local simulator for testing 2 to 8 players in one browser tab:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx hoplobby-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dev Mode goes a step further: it loads your localhost build into a real HopLobby lobby, so you can play it with friends before anyone reviews it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trust
&lt;/h2&gt;

&lt;p&gt;The browser host is not trusted. Anything that matters, like scores or saves, should be verified on your own server using signed player tokens. Games are reviewed before they are listed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's running on it
&lt;/h2&gt;

&lt;p&gt;The player side at &lt;a href="https://hoplobby.com" rel="noopener noreferrer"&gt;hoplobby.com&lt;/a&gt; has 16 games so far, including a kart racer for 12, a 24-player battle royale and a party board game, plus 35 classic card games.&lt;/p&gt;

&lt;p&gt;If you build browser games, the docs are at &lt;a href="https://developers.hoplobby.com" rel="noopener noreferrer"&gt;developers.hoplobby.com&lt;/a&gt;. Happy to answer questions about the relay design or host migration in the comments.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>multiplayer</category>
    </item>
  </channel>
</rss>
