Skip to content

Портал разработчика сервера

Эта страница описывает публичную поверхность 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:

text
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 в него не входят.

Первый запуск

powershell
cd C:\Servers\my-server
.\varion-server.exe

Сервер читает server.toml из текущей директории.

Первый resource

text
resources/
  mymode/
    resource.toml
    server/
      main.js

Минимальный resources/mymode/resource.toml:

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:

toml
resources = [ "mymode" ]
modules = []

Public surface

ПоверхностьКонтракт
server.tomlServer name, ports, resources, modules, masterlist settings
resource.tomlResource type, entry points, client files, dependencies, config
resources/Game logic, client scripts, assets и streamed files
host/varion-host.cjsJavaScript server host runtime
developer/sdk/Varion.Server/npm/@varion/serverServer JS typings и helpers
developer/sdk/Varion.Client/npm/@varion/clientClient JS package и generated typings
developer/sdk/templates/js-full-resourceПолный JS resource starter
developer/docs/Bundled documentation
build-info.jsonBuild 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/.

LanguageServerClientNotes
JavaScripttype = "js" через Varion Node host — рабочий серверный runtimeclient-type = "js"Node host стартует автоматически; global varion object в scripts
C#type = "csharp" через Varion.SDKpreviewclient-type = "csharp" через .NET client host (additive)Server binary пока выполняет только js resources
Gotype = "go" через sdk/varion-gopreviewНет client runtimeC 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:

toml
serverId = "srv_..."
serverLicenseTokenFile = "data/server-license.txt"
requireServerLicense = true

Masterlist backend проверяет server proof. Launcher/client могут показывать trusted state, но client не является authority.

Local secret files игнорируются runtime .gitignore, включая:

  • data/masterlist-token.txt
  • data/server-license.txt
  • local .env files
  • logs, stream cache и local DB files

Safe templates вроде .env.example разрешены.

Varion Multiplayer Platform