Портал разработчика сервера
Эта страница описывает публичную поверхность Varion для разработчиков игровых серверов: что лежит в runtime archive, где живут resources, какие API считаются developer-facing и какие internals не входят в SDK.
Runtime archive
Developer package собирается tools/package-developer-server.ps1 в dist/Varion-Server-Developer-MVP/ и упаковывается в Varion-Server-Developer-MVP.zip (рядом кладётся checksum Varion-Server-Developer-MVP.zip.sha256). Root layout:
varion-server.exe
server.toml
start-varion-server.ps1
build-info.json
README.md
host/varion-host.cjs
resources/
developer/build-info.json описывает сборку: product, engineCommit, engineDirty, protocol (11), gtaBuild (3788), runtime, serverSha256. host/varion-host.cjs — JavaScript server host. developer/ содержит SDK surface (developer/sdk/...), bundled docs (developer/docs/) и tools.
Этого достаточно, чтобы запустить dedicated server и собирать resources. Package собран под supported JavaScript runtime; platform source trees, launcher internals, client bootstrap/injection internals, private CDN config, signing keys, smoke-test resources, project-specific gamemodes и local build scripts в него не входят.
Первый запуск
cd C:\Servers\my-server
.\varion-server.exeСервер читает server.toml из текущей директории.
Первый resource
resources/
mymode/
resource.toml
server/
main.jsМинимальный resources/mymode/resource.toml:
enabled = true
type = "js"
main = "server/main.js"
client-type = "none"В server.toml укажите resource. JavaScript host запускается автоматически для любого type = "js" resource — modules = ["js-module"] не нужен; массив modules предназначен только для native server modules:
resources = [ "mymode" ]
modules = []Public surface
| Поверхность | Контракт |
|---|---|
server.toml | Server name, ports, resources, modules, masterlist settings |
resource.toml | Resource type, entry points, client files, dependencies, config |
resources/ | Game logic, client scripts, assets и streamed files |
host/varion-host.cjs | JavaScript server host runtime |
developer/sdk/Varion.Server/npm/@varion/server | Server JS typings и helpers |
developer/sdk/Varion.Client/npm/@varion/client | Client JS package и generated typings |
developer/sdk/templates/js-full-resource | Полный JS resource starter |
developer/docs/ | Bundled documentation |
build-info.json | Build metadata (protocol, gtaBuild, engineCommit, serverSha256) |
C#/Go SDK и native C++ module headers (include/) в JS MVP package не входят — это preview surface (см. API map ниже).
API map
Текущий server binary выполняет server-side только JavaScript resources (Node host запускается автоматически). C# и Go SDK входят в kit как preview surface, но varion-server.exe пока их не загружает. Native C++ modules загружаются CModuleLoader из modules/.
| Language | Server | Client | Notes |
|---|---|---|---|
| JavaScript | type = "js" через Varion Node host — рабочий серверный runtime | client-type = "js" | Node host стартует автоматически; global varion object в scripts |
| C# | type = "csharp" через Varion.SDK — preview | client-type = "csharp" через .NET client host (additive) | Server binary пока выполняет только js resources |
| Go | type = "go" через sdk/varion-go — preview | Нет client runtime | C ABI контракт include/varion_go_host.h; server binary пока не загружает go resources |
| C++ | Native modules в modules/ | Нет public client module SDK | Загружаются CModuleLoader; см. include/varion_module_sdk.h |
Trust model
Varion считает client untrusted. Gameplay, economy, resource manifests, masterlist identity и production trust decisions должны проверяться server-side или official backend.
Production listing:
serverId = "srv_..."
serverLicenseTokenFile = "data/server-license.txt"
requireServerLicense = trueMasterlist backend проверяет server proof. Launcher/client могут показывать trusted state, но client не является authority.
Local secret files игнорируются runtime .gitignore, включая:
data/masterlist-token.txtdata/server-license.txt- local
.envfiles - logs, stream cache и local DB files
Safe templates вроде .env.example разрешены.