Changelog

3 min read

What shipped in each Scylla Core release, from the initial framework foundation that landed at 1.0.0 down through every fix that follows.

Release notes for Scylla Core, the foundational module that every other Scylla module depends on. Versions are listed newest at the top; each entry groups its bullets under Added, Removed, Changed, and Fixed. Core follows its own semver line, independent of the other modules in the framework.

1.1.0

Scene management joins the Core subsystems: framework persistence across scene loads plus a managed loading pipeline.

Added

  • Scene management subsystem (ScyllaSceneManager), initialized by the Bootstrap alongside Time and the event bus. Keeps the bootstrap hierarchy alive across scene changes via DontDestroyOnLoad and deduplicates per-scene bootstraps automatically, so every scene stays playable directly from the Editor.
  • Managed asynchronous scene loading: LoadSceneAsync (by name or build index), ReloadActiveSceneAsync, and UnloadSceneAsync return a SceneLoadOperation with progress, state, a Completed event, and an Awaitable. A synchronous LoadScene fallback is included.
  • Activation gate and minimum load duration for loading screens: WithManualActivation() holds the load at 90% until code opens the gate; WithMinDuration(seconds) (or the config default) keeps fast loads from flashing.
  • Transition hygiene before destructive scene changes: active tweens are killed, the timescale-modifier stack is cleared, and destroyed event-bus subscribers are pruned. Each step is a configuration toggle with a per-call HygieneOverride.
  • Transition tasks: RegisterPreLoadTask / RegisterPostLoadTask accept awaitable hooks that the pipeline waits for (autosaves, fades, warm-ups).
  • Six typed scene events on the event bus: will-load, loaded, will-unload, unloaded, active-scene-changed, and throttled load progress.
  • Addressables scene routing (when the Addressables package is installed): LoadAddressableSceneAsync by address key or AssetReference, through the same pipeline; unloads route back through Addressables automatically.
  • ScyllaSceneConfiguration asset with a custom inspector, a Scene Configuration slot on the Bootstrap inspector, and Setup Wizard integration.
  • PruneInvalidSubscribers() on the event bus, removing subscriptions whose Unity objects have been destroyed.
  • SceneManager demo: a hub scene exercising single, additive, gated, and addressable loads with a live status overlay and scene event log.

Changed

  • The bootstrap hierarchy now persists across scene loads by default (PersistFrameworkAcrossScenes, on by default). A scene that carries its own bootstrap no longer logs an error in a running session; the duplicate is removed in favor of the persistent instance.

1.0.0

The initial release of Scylla Core, the foundational module of the Scylla framework.

Added

  • Bootstrap and module manager: a scene-level ScyllaBootstrap component plus the ScyllaCore singleton and ScyllaModuleManager that together discover, validate, and drive every module through the framework lifecycle (Discovered, Validated, Initialized, Started, Enabled, Disabled, Shutdown) with fail-fast validation of the dependency graph.
  • Scylla Event eXchange (SEX) bus, a typed publish-subscribe channel with priority ordering, cancellable propagation, and lifecycle-safe subscription management that cleans up automatically when subscribers are destroyed.
  • Dual-layer configuration system: ScriptableObject assets for design-time defaults paired with JSON files for runtime overrides, resolved through a four-tier layered fallback (User Documents, Application, Unity Asset, Defaults) by ConfigFileManager, and exportable straight from the Inspector via an “Export Config File” button.
  • Logging subsystem, with module categories, pluggable receivers (Unity console and file system), and uniform formatting across the framework.
  • Time subsystem (ScyllaTime), initialized by the Bootstrap before any module runs, owning framework-aware time, timescale control, and pause behaviour independent of Time.timeScale.
  • Utility library, covering math and interpolation, noise (Perlin, OpenSimplex2, Value, ValueCubic, Cellular) with domain warping and curl flows, random (PCG32, Xoshiro256, Mersenne Twister, SplitMix64, Xoroshiro128+) with helpers for dice and IDs, strings and tabular text, files and paths, sprites and fonts, colors and lights and cameras, threading, platform, assemblies, and type helpers.
  • Data structures library, with generic and DOTS-compatible queue, priority queue, deque, stack, map, type-map, ring buffer, object pool, trie, quadtree, octree, BVH, KD-tree, bit array, disjoint set, graphs (adjacency list, CSR, grid adapter, algorithms), and grid utilities for hex, square, and triangle layouts.
  • First-party types: the ColorAssetRegistry with ColorPalette, ColorGradient, and ColorSwatchCollection; the ConfigFile family (ConfigFile, ConfigFileGroup, ConfigFileProperty) that backs the JSON configuration tier; and eight strongly-typed unit structs (LengthUnit, MassUnit, TimeUnit, AreaUnit, SpeedUnit, PressureUnit, TemperatureUnit, DataUnit) with conversion properties and validated math.
  • Serialization, compression, crypto, and checksum stack: a first-party JSON serialization engine with attribute-driven configuration, reference tracking, and type serializers; compression providers for GZip, Deflate, BZip2, and Zip; authenticated encryption via AES-CBC-HMAC, AES-GCM, and ChaCha20-Poly1305 with PBKDF2 key derivation; and non-cryptographic checksums (Adler32, CRC16, CRC32, Fletcher32, XXHash32, XXHash64).
  • Tween system, a pooled and easing-aware engine for floats, vectors, colors, and quaternions with sequence composition and one-line extensions for Transform, Material, AudioSource, CanvasGroup, SpriteRenderer, and RectTransform.
  • Procedural map generation toolkit: BSP, cellular automata, drunkard walk, maze, maze-with-rooms, room-and-corridor, Voronoi regions, noise threshold, and winding corridor, plus pluggable post-processing for connectivity repair, dead-end removal, room detection, door placement, and spawn points.
  • Debug-draw subsystem, runtime visualization for primitives and meshes that works in both edit and play mode and across the Built-in and SRP render pipelines.
  • Editor foundation, a UI Toolkit base for the rest of the framework’s editor experience with ScyllaEditorBase for custom inspectors, ScyllaToolWindowBase for windows, ScyllaScheduler for safe recurring jobs, a USS token system for theming, and the bundled setup and getting-started wizards.