Porting Existing Game
Amazing that you're considering adapting your game for multiplayer on Rune! 🥳
We recommend you follow approach 1 below, which will take care of any boilerplate and provide a nice development experience with Rune-specific ESLint & Vite plugins. You can quickly get a minimal multiplayer version of your game working, then add more game logic step-by-step. Alternatively, you can add the SDK manually.
Approach 1: Rune Template (recommended)​
Create a new Rune game project by running:
npx rune@latest create
You now have a simple example game with game logic and client rendering files. You can then copy your game logic and rendering code into the logic.ts and client.ts files respectively. Take a look at Quick Start for an introduction to these files or Syncing Game State for a more in-depth explanation.
We recommend that you enable ESLint in your editor to detect issues while developing your game. The template code already has the necessary configuration for ESLint.
Approach 2: Manual Setup​
This approach requires you to be careful, especially if you're using TypeScript or a bundler as you will need to update your setup to export a logic.js file. If you still like to do the setup manually, here's how you do it:
- Create a file called
logic.jsthat has all game logic and callsRune.initLogic() - Create a file called
client.jsthat's responsible for rendering and callsRune.initClient() - Load the SDK before any other script in your
index.htmlalong with the two files:
<script src="https://cdn.jsdelivr.net/npm/rune-sdk@4/multiplayer-dev.js"></script>
<script src="./logic.js"></script>
<script src="./client.js"></script>
- Setup Rune's ESLint plugin to detect issues in your game logic
- Move all your game logic into
logic.jsand makeclient.jsimport all your rendering code
You can also look at the Tic Tac Toe example game to understand how to set up a game manually.
Questions?​
We're happy to help! Just write us on the Rune Discord server.