Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Silkroad Online (OpenSRO)
PORTSNATIVE

Silkroad Online (OpenSRO)

NATIVE PORTACTION / ADVENTUREWEBWINDOWSALPHA

Silkroad Online (OpenSRO)

Silkroad Online

OriginWindows

TechnologyNative C/C++ port (engine reimplementation)

Available forWeb, Windows

View official project

About the project

Silkroad Online es un MMORPG gratuito lanzado el 21 de febrero de 2006 por la compañía surcoreana Joymax. El juego está basado en gran medida en la histórica Ruta de la Seda y transcurre en las civilizaciones china, islámica, egipcia y europea. A partir del 10 de julio de 2018, Silkroad R pasó a ser parte de Silkroad Online, ya que el primero, solo contaba de un servidor y el mismo carecía de actividad.

Official project information

Author's original READMEOpen on GitHub ↗

🏯 OpenSRO

Discord License: AGPL-3.0

Silkroad Online v1.150 (Legend III), rebuilt end to end as open-source software for the browser.

OpenSRO is a complete game stack, not just an emulator:

  • 🎮 A full browser client: TypeScript and WebGPU, no install and no plugin. The original interface, world, characters, effects and sound, drawn natively in the browser.
  • ⚔️ A full game server: Go, with an Agent (login, accounts, characters) and GameWorld shards (combat, skills, monsters, quests, guilds, fortresses, PK, trade).
  • 🧰 An asset pipeline: turns your own v1.150 client installation into compact browser- and server-ready game data.
  • 🛰️ Operations tooling: Nomad jobs and a release pipeline for running your own server.

Behaviour is ported from the original game, not guessed: the v1.150 client defines what exists, and server rules follow the original server's instructions. Reverse-engineering evidence (function addresses) sits right next to the code that ports it.

💬 Questions about the code? Join our Discord.


🚀 Quick start

The full walkthrough, with the exact tool versions, is docs/guides/GETTING_STARTED.md. In short:

  1. Install the tools: Go, Node.js 24, pnpm (through Corepack), Python 3.12, and a WebGPU browser (current Chrome or Edge). Nomad is a pinned download.
  2. Build the game data from your own v1.150 client:
    corepack pnpm install --frozen-lockfile
    corepack pnpm assets prepare
    corepack pnpm assets build full     # about 6 minutes on 16 cores, once
    corepack pnpm task build server-game-data
    
  3. Start the server cluster (two terminals):
    go -C apps/server run ./cmd/operations/sro-nomad dev-agent
    go -C apps/server run ./cmd/operations/sro-nomad deploy -build
    
  4. Start the client with corepack pnpm dev and open http://127.0.0.1:5180. 🎉

Only changing code, not game data? corepack pnpm check source runs the CI gates with no game data at all.


🗺️ Where things live

FolderWhat's inside
🎮 apps/client-next/The browser client: TypeScript, WebGPU, Vite
⚔️ apps/server/The Go Agent and GameWorld, Nomad jobs, operator docs
🧰 scripts/Asset pipeline, repository checks and the pnpm task runner
📚 docs/Setup, architecture, asset pipeline and design notes
🩹 patches/Dependency patches applied by pnpm

Local only and ignored: .generated/ (all generated game data), .state/ (caches and locks), .tools/ (pinned binaries such as Nomad), temp/ (scratch output) and node_modules/.

Retail game media is never committed. The asset build reads an extraction of your own client next to the checkout; see docs/architecture/ASSET_PIPELINE.md.


⌨️ Everyday commands

CommandWhat it does
pnpm devClient dev server on http://127.0.0.1:5180
pnpm assets prepareExtract your client into extracted/
pnpm assets doctorCheck the game root, extraction and build tools, with a fix for each problem
pnpm assets build fullFull asset build, outdoor world included (assets build reuses the last outdoor world)
pnpm check sourceThe CI gate; needs no game data
pnpm --filter @sro/client-next checkEvery client gate
pnpm checkEvery gate, including the asset-dependent suites
pnpm task listEvery task with its prerequisites

🤝 Contributing

New here? Start with CONTRIBUTING.md: setup, the native-first rule, how to put new ideas behind a flag, and what a good pull request looks like. Then pick an issue labelled good first issue or say hi in #🛠️contributing on Discord.

  • 🎨 Code style: id Software (Quake III Arena): file and function banners, plain data and functions, explicit lifecycles. dprint formats JavaScript/TypeScript and gofmt formats Go.
  • 🤖 AI coding agents are welcome and follow the same rules as humans: AGENTS.md.

📚 More

  • 📖 docs/README.md: the documentation index (architecture, asset pipeline, profiling, design notes)
  • 🚢 RELEASE.md: the release checklist
  • 🔒 SECURITY.md: how to report a vulnerability
  • 💬 SUPPORT.md: getting help
  • ⚖️ AGPL-3.0-or-later; origin, trademark and asset scope are in NOTICE.md
Read official guide
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Action / Adventure
Status
alpha
Original platform
Windows
Technology
Native C/C++ port (engine reimplementation)
Version
—
Updated
—

Target platforms 2

Web
Windows
View on GitHub
Advertisement