reckfellENGINE

JavaScript API веб-загрузчика

Точные методы Engine страницы, настройки и границы асинхронной готовности.

На этой странице

JavaScript API веб-загрузчика

Это класс Engine страницы из generated loader .js, не Reckfell.Engine C# SDK. Он управляет загрузчиком, а не произвольным состоянием игры. Loader, WASM, pack и export config должны соответствовать одной сборке. Текущий C# exporter 1.0.0 не реализует Web; наличие API в исходниках не подтверждает успешный C# browser export.

Статические методы

МетодКонтракт и ограничение
Engine.load(basePath,size=0)Promise скачанного engine response. Добавляет .wasm к base path без расширения. До unload использует общий promise первой загрузки; второй путь не создаёт независимую загрузку. size — подсказка progress, не проверочный hash.
Engine.unload()Очищает cached load promise. Не завершает работающий экземпляр, не отменяет main и не доказывает освобождение всей browser/GPU memory.
Engine.isWebGLAvailable(majorVersion=1)Проверяет browser context capability. Игровому пути нужен WebGL2; одной проверки с default недостаточно.
Engine.isFetchAvailable()Проверяет доступность fetch/response stack, не успешность конкретного URL.
Engine.isSecureContext()Сообщает secure-context capability, не разрешение каждого API.
Engine.isCrossOriginIsolated()Сообщает isolation state; существенно для многопоточного экспорта.
Engine.isSharedArrayBufferAvailable()Проверяет доступность SharedArrayBuffer, не worker pool или запуск.
Engine.isAudioWorkletAvailable()Проверяет audio capability, не autoplay permission и не реальный звук.
Engine.getMissingFeatures({threads:true})Возвращает описания недостающих функций. Передайте реальный threads flag экспорта; текущий default true. Проверяет WebGL2, fetch, secure context; для threads добавляет isolation/SharedArrayBuffer.

Методы экземпляра

МетодКонтракт и ограничение
new Engine(config)Создаёт loader configuration. Не инстанцирует WASM, не загружает pack и не создаёт кадр.
init(basePath)При необходимости загружает/инициализирует module и FS. Без cached load нужен base path. Resolved FS error value сейчас игнорируется; некоторые nested rejections не передаются наружу. Сохранность данных не подтверждает.
preloadFile(file,path)Promise данных, поставленных в очередь до старта. file — URL или byte buffer/view; для buffer задайте path. Виртуальный destination отличается от URL загрузки.
start(overrides)Применяет overrides, при необходимости инициализирует, копирует queued files и вызывает main(args). Pack автоматически не загружает. Нужен доступный canvas.
startGame(overrides)Добавляет --main-pack, инициализирует executable, загружает mainPack/default .pck, затем запускает. Promise не означает first-frame/game readiness или завершение service worker. Один вызов на запуск страницы.
copyToFS(path,buffer)Синхронно копирует в virtual FS инициализированного module; до init бросает ошибку. Не browser download и не квитанция persistence.
requestQuit()Передаёт cooperative quit request живому module. Без него ничего не делает; не восстанавливает зависший/аварийный движок. Отдельно наблюдайте onExit.
addDebuggerSession(port)Передаёт debugger MessagePort живому editor runtime; не общий networking channel.
installServiceWorker()Возвращает registration promise при настройке/поддержке, иначе завершается без регистрации. Запуск игры его не ждёт. Не подтверждает активацию waiting worker.

forceQuit не экспортируется текущим loader. pid и onTerminatePID из старого справочника не разбираются как config options. Не вызывайте/не настраивайте их как поддерживаемые функции.

Публичная конфигурация

ПараметрDefault / значение
executableПустая строка в raw config; exporter задаёт engine base name без расширения.
mainPacknull; startGame использует executable + .pck по умолчанию.
canvasnull; fallback — первый найденный canvas. При embedding передавайте реальный HTMLCanvasElement явно.
canvasResizePolicy2: адаптация к окну; 0: размером управляет страница; 1: размер проекта.
focusCanvastrue; старт запрашивает focus canvas. Не browser permission для звука/fullscreen/XR.
localenull; при отсутствии берёт browser locale и нормализует формат для движка. Не DOM i18n.
argsПустой массив. startGame добавляет свою пару --main-pack. Избегайте повторного старта/pack arguments.
unloadAfterInittrue; после init очищает общий скачанный response. Не завершение runtime.
experimentalVKfalse; experimental virtual keyboard support, не Vulkan.
serviceWorkerПустая строка; optional registration URL.
onProgress(current,total)null; callback скачанных байтов. total=0 — достоверный итог неизвестен; не процент загрузки сцены.
onPrint(...values)По умолчанию console log; вывод runtime.
onPrintError(...values)По умолчанию console error, не console warn. Не универсальная гарантия доставки startup failure.
onExit(code)null; уведомление штатного выхода после cleanup загрузчика. Не гарантируется при crash/hang.
debugPortnull; MessagePort редактора/debugger.
onExecute(path,args)null; интеграция page с execution requests движка, используется web-editor shell. Не разрешает запуск OS processes.

Advanced fields persistentPaths, reckfellextensionLibs, fileSizes, emscriptenPoolSize и reckfellPoolSize разбираются текущим config. Согласуйте generated library paths/sizes с вариантом экспорта. persistentPaths по умолчанию ['/userfs']; это не доступ к host filesystem. Значения thread pool не добавляют threads в немногопоточную сборку. Shell metadata ensureCrossOriginIsolationHeaders не обещает нужные headers от произвольного host.

Ограничения lifecycle и проверка

Текущий closure хранит общие loadPromise/initPromise и preloader state. Concurrent instances не приняты как проверенные: mock-тест воспроизвёл общий promise двух init, при котором module получил лишь один instance. Повторный startGame также снова добавляет arguments. Один startup owner; после брошенной попытки перезагрузите страницу до retry.

См. полный пример shell: feature detection, явный canvas, ошибки и pending-start watchdog. 20 проверок выполнили реальные Engine/config bodies с mock module/preloader/DOM и точный shell script. WASM, deployment, реальный browser rendering/storage, PWA, debugger, crash recovery и C# Web export не проверены. Source, Runtime и SDK не менялись.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.