Diff: BackroomsEngine
Comparing revision #2 (2026-06-22 03:31:28) with revision #3 (2026-06-22 03:47:30).
| Old | New |
|---|---|
{{Infobox project|name=BackroomsEngine|type=Native game engine and dedicated server runtime|status=Pre-public-release development|language=C++20|build system=CMake, vcpkg|platform=Windows client and dedicated server, Linux-oriented server support|main targets=BackroomsMMO, BackroomsServer, BackroomsTests|related=[[BackroomsMMO]], [[BackroomsHost]], [[BackroomsVideo]]}} |
|
'''BackroomsEngine''' is the native C++ game engine, client runtime, dedicated server runtime, and tooling layer used by [[BackroomsMMO]]. It provides the playable game executable, server authority, networking, rendering, world generation, chunk streaming, audio, voice, replay capture, mod support, model tools, launcher components, load testing tools, and regression tests that support the BackroomsMMO platform. |
|
The engine is a C++20 CMake project with vcpkg-managed dependencies. It is structured as a shared common engine library, renderer library, native bridge, multiple applications, server utilities, tools, assets, docs, and tests. The main MMO executable is called '''BackroomsMMO''', while the dedicated server target is called '''BackroomsServer'''. The test target is '''BackroomsTests'''. |
|
BackroomsEngine is not just a rendering experiment. It contains gameplay systems, persistent state structures, world authority, online client and server classes, replay formats, social systems, chat, voice, private instance travel, procedural generation, asset loading, mod package validation, and deployment-facing server setup tools. |
|
== Overview == |
|
BackroomsEngine is the native side of the BackroomsMMO stack. It is responsible for the realtime work that cannot be handled by the web application: rendering frames, processing input, streaming chunks, simulating gameplay, moving players, connecting to online shards, sending and receiving network messages, recording replays, loading game assets, and running dedicated server authority. |
|
The project builds several executable targets. The important targets include '''BackroomsMMO''' for the main 3D frontend, '''BackroomsServer''' for dedicated shards, '''BackroomsReplayPlayer''' for replay playback, '''BackroomsModels''' for model workflows, '''BackroomsAnimator''' for animation work, '''BackroomsModsTool''' for mod packaging, '''BackroomsLauncher''' and '''BackroomsClientBootstrap''' for client distribution, '''BackroomsAdmin''' and '''BackroomsMessage''' for operator-facing utilities, '''BackroomsLoadBot''' for load testing, '''BackroomsRealbotDashboard''' for realbot monitoring, and '''BackroomsTests''' for regression coverage. |
|
The build also defines static libraries such as '''BackroomsEngineCommon''' and '''BackroomsEngineRendererGame''', plus a native shared library called '''BackroomsEngineNative'''. The common library contains cross-cutting engine systems. The renderer library contains renderer-facing game support. The native library exposes a smaller native API around the engine. |
|
== Build System and Dependencies == |
|
BackroomsEngine uses CMake 3.20 or newer and requires C++20. Its CMake configuration includes strict warning helpers, optional warning-as-error support, sanitizer switches for non-MSVC builds, Windows header hygiene definitions, runtime asset copying, shader copying, DirectX compiler runtime copying, FBX converter copying, and optional server-only builds. |
|
The vcpkg manifest identifies the project as '''backrooms-engine''' version '''0.1.0-dev'''. Dependencies include GLFW, stb, fmt, spdlog, nlohmann-json, xxHash, Asio, ENet, OpenSSL, libsodium, zstd, LZ4, Protobuf, SQLite3, Recast Navigation, concurrentqueue, jemalloc, GLM, and EnTT. These choices reflect a realtime multiplayer engine with networking, serialisation, compression, crypto, asset loading, navigation, memory and queue performance, and entity or data-oriented systems. |
|
On Windows, the build enables a DirectX 12 path and copies the required DXC runtime DLLs when found in the Windows SDK. Runtime shaders are synchronised into the build directory. Game and replay targets copy runtime assets after build. The project also contains Linux-oriented server support and dedicated server compatibility notes for Ubuntu 24.04. |
|
== Source Tree == |
|
The source tree is split into application folders, engine core folders, native bridge code, tools, documents, assets, models, materials, textures, audio, mods, prefabs, saved data, and reports. Application folders include game, server, tests, launcher, admin, replay player, models, animator, message, loadbot, mods tool, game wrapper, client bootstrap, desktop shared utilities, and realbot dashboard. |
|
The engine core is divided into systems such as audio, assets, animation, AI, chat, config, game, instances, modding, networking, paranormal events, performance, replay, rendering, save, social, UI, utility code, and world streaming. This layout reflects a broad runtime rather than a narrow renderer-only project. |
|
The docs folder contains implementation ledgers, renderer audits, refactor passes, MMO authority notes, server hardening notes, world generation fixes, client join stability work, website authentication readiness, private download test logs, model usage reports, mod tool documentation, and asset format documentation. These documents show an ongoing hardening and refactoring process. |
|
== Client Runtime == |
|
The BackroomsMMO executable is the main 3D game frontend. Its sources include game bootstrap, renderer bootstrap, graphics profile handling, frontend storage, bodyguard behaviour, door and instance logic, input and UI handling, replay capture, online login, online server browser, challenge mode, environmental devices, BackroomsVideo RTMP publishing, and admin runtime command handling. |
|
The client connects to BackroomsMMO.com for login, bootstrap, server lists, join tickets, characters, social data, assets, and runtime metadata. It then connects to a BackroomsServer shard for gameplay. Client stats track authentication state, server name, MOTD, version, reject reasons, admin flags, authority flags, persistent state, synced characters, join shard data, UDP state transport, authoritative world config, and online runtime timings. |
|
{{Infobox project|name=BackroomsEngine|type=Native game engine and dedicated server runtime|status=In development|language=C++20|build system=CMake, vcpkg|platform=Windows client and dedicated server, Linux server support|main targets=BackroomsMMO, BackroomsServer, BackroomsTests|related=[[BackroomsMMO]]}} |
|
'''BackroomsEngine''' is the native C++ engine and runtime used by [[BackroomsMMO]]. It provides the game client, dedicated server, renderer, world generation, networking, audio, voice, replay capture, gameplay systems, asset loading, tools, and regression tests used by the project. |
|
The client also receives online representations of remote players, mimic entities, noclip events, paranormal events, biotic orb snapshots, state broadcasts, and authority corrections. This makes the client a realtime renderer and input surface for a server-directed world rather than a standalone owner of MMO state. |
|
The engine is built as a C++20 CMake project. Its main public-facing targets include '''BackroomsMMO''' for the game client, '''BackroomsServer''' for online shards, and '''BackroomsTests''' for automated regression coverage. It also includes tools for models, animation, mods, replays, launch workflows, load testing, and internal game operation. |
|
== Dedicated Server Runtime == |
|
BackroomsServer is the dedicated server target. Its source includes setup, bootstrap, runtime, install, config, and local control panel code. The server runtime class is described in source comments as a transitional dedicated-server runtime for the website-backed MMO flow. It enforces stricter authority and content validation than earlier local test code while remaining lightweight compared with a large-scale production shard runtime. |
|
BackroomsEngine is designed around the needs of an online Backrooms survival game. It is not only a graphics layer. It includes the systems needed to generate and stream unsettling spaces, simulate players and entities, connect clients to servers, persist gameplay state, capture replays, and support multiplayer safety. |
|
The server can start and stop from online settings, pump network work, track active clients, distinguish authenticated gameplay clients from load-test clients, manage worker counts, report pending chunk builds and authority jobs, apply runtime settings, and expose runtime status. It supports local console administration and website-mediated moderation actions. |
|
== Purpose == |
|
The purpose of BackroomsEngine is to provide a custom native runtime for BackroomsMMO. A general web application cannot render the game, simulate realtime movement, process audio, stream world chunks, or maintain low-latency multiplayer state. Those responsibilities belong to the engine. |
|
Administrative controls include listing clients, kicking, banning, unbanning, freezing, unfreezing, teleporting one player or all players, setting client vitals, damaging clients, applying or stopping bleeding, igniting or extinguishing players, killing clients, finding clients, and changing spawn position. These controls are also represented in website command structures so web admin tools can control shards without exposing a separate public admin port. |
|
The engine gives the project control over the exact shape of the game. It can define how Backrooms spaces are generated, how players move, how worlds are streamed, how server authority works, how replays are recorded, how voice behaves, and how tools fit the project's workflow. |
|
The server also captures player snapshots for the website. Snapshots include account id, username, instance id, position, rotation, avatar id, flashlight state, frozen state, admin flag, map visibility flags, floor, level key, level name, zone name, chunk key, safe room id, and permissions. Atlas chunk snapshots support live map and exploration-style features. |
|
Because BackroomsMMO is an online game, the engine also has to work with a website and account platform. The engine does not exist in isolation. It is built to talk to the BackroomsMMO web layer for login, character selection, server discovery, session verification, replay support, and online state. |
|
== Website Authentication Integration == |
|
BackroomsEngine integrates with BackroomsMMO.com through online website authentication structures and helper code. The native client can send website credentials to the web service, receive session data, and use it for online play. The dedicated server can verify tokens and consume join tickets with the website before accepting a player. |
|
== Architecture == |
|
BackroomsEngine is organised into shared engine libraries, renderer support, native bridge code, applications, tools, tests, and runtime assets. The shared engine code contains core systems such as world generation, networking, assets, save data, replay capture, audio, chat, AI, modding, configuration, and gameplay state. |
|
The engine's website auth structures include bootstrap shard data, server browser data, heartbeat configuration, runtime metrics, heartbeat players, atlas chunks, server commands, website characters, persistent state, voice consent snapshots, and related online responses. This gives the native runtime a typed view of the web control plane. |
|
The application layer builds separate programmes for the game client, server, replay player, launcher, model tools, animation tools, mods tool, admin utilities, message utilities, load testing, and test execution. This keeps development tools close to the runtime while still separating them from the player-facing game. |
|
The authentication flow is designed so the dedicated server does not trust locally fabricated account identifiers. Admin status and permissions come from the website. This is important for game moderation, access gating, official shard integrity, and private server membership. |
|
The engine uses vcpkg-managed dependencies such as GLFW, fmt, spdlog, nlohmann-json, Asio, ENet, OpenSSL, libsodium, compression libraries, SQLite, Recast Navigation, GLM, EnTT, and other supporting libraries. These dependencies support rendering, logging, serialisation, networking, compression, cryptography, navigation, asset handling, and data-oriented systems. |
|
== Networking and Authority == |
|
The engine uses online client and server classes, ENet-oriented transport support, network messages, socket abstractions, anti-cheat helpers, admin structures, content sync, online auth caches, website auth operations, and online server modules. The online server contains modules for pumping clients, synthetic load, persistence and room state, logging and identity, inventory and characters, voice mimic and noclip, and other authority work. |
|
== Rendering == |
|
BackroomsEngine contains a native renderer used by the game runtime and related tools. On Windows, the renderer uses DirectX 12. The renderer code is split into modules so frame lifecycle, scene work, post processing, UI drawing, and resource state can be managed separately. |
|
Authority flags cover loot, persistence, inventory, vitals, chat, movement, combat, currency, trade, party systems, clan chat, and voice runtime behaviour. The client tracks whether movement or vitals corrections were received. The server tracks metrics such as movement corrections, chat accept or reject counts, state patches, persists, loot requests, loot grants, combat accept or reject counts, trade requests, and completed trades. |
|
The rendering work is tied to the needs of BackroomsMMO. The game needs large interior spaces, repeated patterns, low-light atmosphere, props, doors, streamed chunk geometry, player models, effects, UI, and stable performance while the world changes around the player. |
|
The engine includes a UDP state transport path with TCP fallback counters. It tracks UDP state packets, broadcasts, send failures, bytes sent, and bytes received. This allows realtime state to be delivered efficiently while retaining fallback behaviour and diagnostics. |
|
The project includes renderer hardening around startup, shader compilation, graphics profile changes, streamed chunk churn, invalid mesh data, scene resource retirement, lighting, shadows, reflections, and replay-oriented rendering. Stability is important because a Backrooms game loses its effect if the world flickers, stalls, or collapses during exploration. |
|
== World Generation == |
== World Generation == |
BackroomsEngine has a deterministic world generation system. World configuration supports basic levels and infinite deterministic generation. The configuration includes seed, instance doors, shared-edge door openings, loot spots, props, edge corridors, biome control, chunk size, render distance, simulation distance, visual prefetch distance, commit budgets, predictive forward streaming, and data-driven world assets. |
|
World generation is one of the central systems in BackroomsEngine. The engine supports deterministic chunk-based generation, world seeds, floors, chunk sizes, render distances, simulation distances, instance doors, edge doors, corridors, loot spots, props, biomes, and templates for world assets. |
|
World assets include floor, ceiling, wall, door, light, and prop tokens. World generation templates provide a higher-level authoring preset that can swap structural assets, clutter, and loot spots per level or biome. The generator can fill missing assets with built-in Backrooms defaults and can serialise configurations to JSON or binary. |
|
The generator is built to make streamed chunks line up with neighbouring chunks. Door openings and corridors need to match across chunk boundaries so that the world feels continuous rather than stitched together randomly. This is especially important for a Backrooms setting, where repeated corridors and subtle changes are part of the atmosphere. |
|
The world generator produces chunk data with tile types, placed objects, biome ids, floors, doors, instance doors, loot markers, props, and deterministic edge plans. It is designed so edge doors and edge corridors match from either side of a chunk boundary. That keeps corridors and doors consistent across streamed chunks. |
|
World configuration can define floors, walls, ceilings, lights, doors, props, clutter, and loot markers. The engine can use built-in Backrooms assets or project-specific asset tokens. This lets the same generator support different levels, themes, and spaces without hard-coding every room layout. |
|
== World Streaming == |
== World Streaming == |
The world streaming system controls loaded chunks around the player. It computes priority rings, submits generation and mesh-building jobs, commits finished chunks on the main thread under strict budgets, evicts old chunks, tracks pending jobs, supports simulation and visual-only requests, supports floor layers, and can operate in authoritative mode. |
|
BackroomsEngine streams world chunks around the player. The world streaming system decides which chunks should be visible, which should be simulated, which should be generated next, and which old chunks should be removed. It uses priority rings, job submission, commit budgets, eviction rules, and predictive loading to avoid large stalls. |
|
World streaming includes render distance, simulation distance, visual prefetch distance, priority radius, predictive lookahead, max commits per frame, eviction limits, LRU age limits, request throttles, pending job soft and hard limits, deferred collider installation, and listeners for chunk commit or eviction. This lets other systems mirror chunk lifetime for GPU uploads, navigation caches, physics colliders, or gameplay state. |
|
Streaming is essential for an MMO-style Backrooms game because the world can be much larger than what should be loaded at once. The engine needs to make nearby space available quickly while keeping memory, physics, renderer uploads, and server state under control. |
|
Authoritative mode allows the server or streamed authority payloads to upsert or remove chunks. Recent stability work kept world stream maintenance active during authoritative mode, added proximity filtering for streamed upserts, filtered chunk rendering near the player, hardened mesh extraction, rejected invalid GPU uploads, and adjusted scene resource retirement to reduce device loss during heavy chunk churn. |
|
The engine also supports authoritative streamed chunks. This means an online server can provide or correct world chunk data for connected clients. That is important when the world is shared by multiple players and cannot be treated as purely local. |
|
== Rendering == |
|
BackroomsEngine contains a renderer facade focused on the game and editor runtime. On Windows, the build uses DirectX 12 and copies shader compiler runtime components. The renderer code is split into modules for frame lifecycle, scene passes, post passes, UI compositing, renderer configuration, public API, and private state. |
|
== Dedicated Server Runtime == |
|
BackroomsEngine includes the '''BackroomsServer''' dedicated server. The server accepts clients, verifies online sessions, manages player state, tracks connected players, runs server authority, reports runtime status, and sends world or gameplay updates to clients. |
|
The renderer has been hardened around raster rendering, shadows, lighting, reflections, hybrid ray tracing and replay path-tracing wiring, shader compile startup behaviour, safe startup fallback behaviour, and device-lost prevention during heavy streaming. The project documentation describes a preference for a coherent single DirectX 12 code path for the primary runtime rather than maintaining multiple partial graphics paths. |
|
The server is designed to reduce trust in the client. For online play, the server can own or check important state such as movement, player vitals, chat, combat, inventory, loot, persistence, and world changes. This makes the game more suitable for public multiplayer use. |
|
BackroomsEngine also has graphics profile handling and test tooling for singleplayer graphics tests and graphics settings matrices. This matters because BackroomsMMO needs a client that can adjust graphics settings while preserving stable runtime behaviour. |
|
The server also exposes operator controls through safe channels. Operators can manage connected players, deal with abusive behaviour, update runtime settings, and monitor server health. This is necessary for any online game that expects real players rather than only local test sessions. |
|
== Assets and Model Pipeline == |
|
The engine's preferred runtime model format is GLB. GLTF is also supported for loose development assets with external buffers or textures. FBX is accepted as an import format through a bundled FBX2glTF converter. When the engine receives an FBX path, it converts the asset once, stores the generated GLB in a per-user cache, and then loads the cached GLB through the normal model loader. |
|
== Networking == |
|
Networking in BackroomsEngine covers online clients, online servers, network messages, transport, authentication support, content sync, state broadcasts, admin data, and diagnostics. The engine can track remote players, mimic entities, paranormal events, projectiles, voice frames, state corrections, and streamed world changes. |
|
Asset code includes an asset database, asset manager, asset resolver, model loader, texture preload cache, GLTF loader modules, material parsing, transform and accessor parsing, scene geometry extraction, and IO or buffer handling. Tools in the repository import and normalise asset packs, repair poolrooms assets, split GLB files by mesh, reduce large GLB assets, generate quality coverage, and optimise player avatar runtime models. |
|
The client tracks whether it is connected, authenticated, accepted by the server, assigned to an instance, receiving authority state, using UDP state transport, or falling back to TCP state frames. These details help diagnose whether an online session is healthy. |
|
The engine includes applications for model browsing and animation work. The BackroomsModels and BackroomsAnimator targets share the common engine and renderer libraries, giving the project internal tools for asset iteration rather than forcing every check through the full game client. |
|
The engine also tracks runtime metrics such as packet counts, traffic, state updates, movement corrections, combat acceptance, chat acceptance, chunk builds, tick timings, and worker activity. These metrics are useful for making the online runtime stable under real play conditions. |
|
== Gameplay Systems == |
== Gameplay Systems == |
BackroomsEngine's game state includes gameplay config, world config, dungeon templates, ambience, director state, players, identities, account saves, account and character progression, missions, alignment state, reputation state, stashes, challenges, safe hubs, clan state, safe rooms, respawn anchors, map exploration, discovered doors, searched loot spots, chalk marks, blood traces, investigation evidence, waypoints, chat, safety tracking, admin world effects, and paranormal triggers. |
|
BackroomsEngine contains a wide range of gameplay systems used by BackroomsMMO. The game state includes players, identities, world configuration, dungeon and instance data, ambience, director state, progression, missions, reputation, alignment, stashes, challenges, safe rooms, respawn anchors, clans, explored map data, searched loot, chalk marks, blood traces, investigation evidence, waypoints, chat, and safety tracking. |
|
This state shows the kind of game BackroomsMMO is building: exploration, survival, support roles, persistent characters, safe rooms, clues, routes, missions, factions, reputation, clans, loot, combat, social play, and world events. The native engine owns the immediate simulation and serialisation logic, while the website and server authority decide how much of that state is persisted or validated online. |
|
This gives the project a foundation for survival play, exploration, long-term progression, group identity, and player history. The Backrooms setting benefits from these systems because players need more to do than walk through corridors. They need reasons to remember places, fear encounters, recover from mistakes, and return to the world later. |
|
The game code also contains bodyguard AI and support behaviour. Bodyguard systems include movement, survival, search, doors, target selection, room search, completion, behaviour, lifecycle, and HUD support. Challenge mode includes lobby, run, objectives, rewards, summary, player scoring, difficulty, and observed life state structures. |
|
The engine also contains bodyguard and support-oriented AI systems, challenge mode structures, environmental devices, paranormal events, biotic orb snapshots, and gameplay recovery mechanics. These systems support the project's interest in group survival and support roles. |
|
== Audio, Chat, and Voice == |
|
BackroomsEngine includes audio systems, audio banks, acoustics, lightweight audio decoding, runtime audio output, and voice systems. Chat supports channels such as world, local, party, and clan. Voice structures include voice frames, voice config, voice state, playback, runtime capture, remote speaker state, voice mimic consent snapshots, and mimic clip storage. |
|
== Audio and Voice == |
|
BackroomsEngine includes audio playback, audio banks, acoustic systems, runtime sound output, chat, and voice systems. Audio is important in a Backrooms game because atmosphere depends heavily on hums, echoes, distant movement, sudden sounds, and spatial uncertainty. |
|
Voice matters in BackroomsMMO because it can cross into personal data. The engine can capture and represent voice frames, but website services manage consent, clip uploads, clip selection, usage reporting, and consent refresh. This split allows the runtime to provide a feature while the account service stores user-facing consent state. |
|
Voice is also part of the multiplayer design. The engine can represent voice frames, playback, radio-style behaviour, and voice-related runtime data. Because player voice can be sensitive, voice features are paired with consent and account-level control in the wider BackroomsMMO platform. |
|
== Replays == |
== Replays == |
The engine includes replay capture and replay playback. The replay ring stores recent snapshots at a configured capture rate and time window. Snapshots include fixed tick, time, floor index, instance id, camera pose, player positions, velocities, health, stamina, sanity, hunger, thirst, shields, armour, life state, selected hotbar slot, flashlight state, and biotic orb snapshots. |
|
The replay system can also append audio events and voice frames. Audio events store event id, asset path, bus, position, volume, pitch, pan, spatial state, and loop state. Voice frames store account id, timestamp, sample rate, channels, gain, pan, echo values, radio state, and payload. The website then stores, converts, publishes, or exports these replay files through BackroomsMMO.com and BackroomsVideo integrations. |
|
== Modding == |
|
BackroomsEngine contains a modding system and a dedicated BackroomsModsTool executable. The tool can create, validate, pack, install, list, enable, disable, and self-test `.brmod` packages. Mods can include scripts, models, textures, audio, and prefabs. |
|
The built-in script format is intentionally small. Supported commands include logging, healing, damage, food and water changes, and paranormal triggers such as walkby, peek, whisper, thump, and flicker. Content-only mods are valid. |
|
The mod runtime policy is context-aware. Singleplayer and private servers can allow mods if configured. Official BackroomsMMO servers block mods even if local configuration is edited. Native binary mods remain blocked unless explicitly enabled because they execute trusted code. Packages reject unsafe paths, installers, shell scripts, path escapes, and undeclared native binaries, and installation uses staging so failed installs do not partially overwrite an existing mod. |
|
BackroomsEngine includes replay capture and replay playback support. The replay system can keep recent gameplay snapshots over a configured time window. Snapshots can include fixed ticks, camera position, player positions, player vitals, life state, flashlight state, projectiles, audio events, and voice frames. |
|
== Server Setup and Deployment Tools == |
|
BackroomsEngine includes dedicated server setup and install tools. Server code can prepare local paths, generate runtime configuration, run local control panels, install or update runtime files, and cooperate with website-provided manifests. PowerShell and shell tools support human demo recording, local online performance profiling, distributed realbot load, graphics setting matrices, private download packaging, Linux server installer smoke tests, and singleplayer graphics tests. |
|
Replay support is useful for both players and development. Players can preserve strange or dramatic moments. Developers can review runtime behaviour, movement, combat, audio, or unexpected events. For a multiplayer Backrooms game, replay capture also supports moderation and debugging because it creates a record of what happened. |
|
BackroomsMMO.com handles the web deployment and control-plane packaging side. The engine handles the native executable and server runtime side. Together, they support a workflow where a website can manage host nodes, generate a control-plane package, deploy supporting services, provide runtime manifests, and keep dedicated servers reporting back through heartbeats. |
|
== Assets and Tools == |
|
BackroomsEngine includes asset handling for models, textures, materials, audio, prefabs, and runtime content. Its preferred runtime model format is GLB, with GLTF supported for development assets and FBX accepted through a conversion path. |
|
== Performance and Load Testing == |
|
BackroomsEngine contains performance and load-testing infrastructure. The server tracks worker threads, authority jobs, async chunk builds, pending jobs, submitted and completed work, tick timing, packet jitter, network bytes, CPU migrations, context switches, softirq counts, movement corrections, chat outcomes, state patches, loot grants, combat outcomes, and trade outcomes. |
|
The repository includes tools for model viewing, animation work, mod packaging, replay playback, load testing, graphics settings tests, asset import, model optimisation, texture and model quality checks, and runtime asset packaging. These tools are part of making the engine usable for a full game rather than a one-off prototype. |
|
Synthetic load support can configure target client count, chunk radius, floor spread, movement speed, and related counters. The BackroomsLoadBot target and distributed realbot tooling support broader online testing. Local online performance profile scripts build and run both the dedicated server and game client to exercise auth, connection, streaming, and runtime behaviour. |
|
== Modding == |
|
BackroomsEngine includes modding support through a `.brmod` package format and a BackroomsModsTool executable. The tool can create, validate, pack, install, enable, disable, list, and self-test mod packages. |
|
== Security and Validation == |
|
BackroomsEngine has several validation and hardening points. Website auth prevents a client from inventing trusted account identity. Dedicated server verification derives admin state and permissions from the website. Runtime authority reduces the amount of gameplay state trusted from clients. Content manifest enforcement and asset delivery checks reduce mismatch risk. Mod policy blocks official server modding. Replay sanitisation and package validation protect files and outputs. |
|
The modding system is controlled by runtime policy. Official online play can restrict mods, while local or permitted non-official contexts can allow them. This gives the project room for community experimentation without weakening the integrity of official online servers. |
|
The renderer and streaming systems also include defensive checks. Recent work rejects invalid chunk surfaces and unsafe GPU mesh uploads before creating buffers. World stream filtering prevents stale or distant chunks from flooding runtime scene caches. These are not security features in the account sense, but they are important hardening measures for stability. |
|
Mod packages are validated to avoid unsafe file paths and unwanted executable behaviour. This is important because mod support can become a security risk if packages are treated as trusted files without checks. |
|
== Testing and QA == |
|
The BackroomsTests target contains regression tests for world seeds, doors, themed generation, poolrooms and dungeon generation, runtime AI and audio, props and stairs, gameplay saves, chunk world runtime, avatar models, trade, party, clan systems, voice, TAudio, materials and audio, local online performance harnesses, camera audio animation, bodyguard AI, acoustic systems, and more. |
|
== Testing == |
|
BackroomsEngine includes a large regression test target called '''BackroomsTests'''. The tests cover world generation, doors, themed worlds, poolrooms, dungeon logic, runtime AI, audio, props, stairs, saves, chunk streaming, avatar models, trading, parties, clans, voice, materials, camera systems, bodyguard AI, acoustic systems, and online performance harnesses. |
|
The wider repository contains QA and predeploy scripts that build selected engine targets and run targeted regressions before release work. BackroomsMMO.com also has website smoke tests for access gates, respawn authority, control-plane packaging, private server export, and private server seed handling. This reflects the cross-boundary nature of the project: the engine can pass native tests, the website can pass web tests, and the product still needs integrated checks. |
|
The test coverage reflects the project's complexity. A change to world generation can affect rendering, navigation, physics, doors, saves, and online state. A change to networking can affect login, movement, persistence, chat, replays, and server authority. Automated tests help keep those systems from regressing while development continues. |
|
== Development Status == |
== Development Status == |
BackroomsEngine is under active pre-public-release development. The source and docs show frequent refactor passes, renderer hardening, online authority upgrades, server diagnostics, control-plane sync work, world streaming fixes, Ubuntu server compatibility work, and client join stability improvements. |
|
BackroomsEngine is in active development alongside BackroomsMMO. It has undergone repeated hardening and refactoring work around rendering, world streaming, server authority, online login, client stability, runtime diagnostics, assets, and test coverage. |
|
The project should be understood as a current-format engine for BackroomsMMO, not as a compatibility layer for older public releases. Its own workspace instructions state that pre-public-release work should prefer clean current formats and remove stale paths rather than keeping backwards-compatibility branches unless specifically requested. |
|
The engine should be understood as a custom game runtime for BackroomsMMO rather than a general-purpose public engine. Its systems are shaped by the specific needs of a multiplayer Backrooms survival game: unsettling spaces, large streamed worlds, online authority, replays, voice, group play, moderation, and tools that support continued development. |
|
== See Also == |
== See Also == |
* [[BackroomsMMO]] |
* [[BackroomsMMO]] |
* [[BackroomsHost]] |
|
* [[BackroomsVideo]] |
|
* [[Cameron Lobban]] |
* [[Cameron Lobban]] |
[[Category:Backrooms]] |
[[Category:Backrooms]] |
[[Category:Projects]] |
[[Category:Projects]] |
[[Category:Game engines]] |
[[Category:Game engines]] |
[[Category:Software]] |
[[Category:Software]] |