Appearance
Changelog
Unreleased
- Added
RedEngine.Configuration: a rootEngineConfigurationasset with explicitly selected, modular ScriptableObject sections, cached typed lookup, and change notifications that continue to work in Play Mode. - Made
TagsContainera replicated multi-domain container that accepts every generated gameplay-tag type while keeping equal tag names from different domains distinct; cap replicated names at 64 characters and report incompatible domains or entries in the registry inspector. - Rebind Compact Showcase HUD state when the local player receives a replacement pawn and show a respawning placeholder instead of retaining zero health from the destroyed character.
- Moved world-marker projection, widget creation and occlusion into
RedEngine.UIthroughWorldMarkerSubsystem, with separateWorldMarkerandWorldMarkerWidgetcomponents. - Preserve source asset identity when replicating runtime
NetworkScriptableObjectinstances. - Decouple character presentation from simulation transforms to remove visible prediction and moving-base jitter.
- Build Compact Showcase training dummies as Framework characters with a kinematic character controller.
0.1.0
- Unified the built-in
GameplayTagwith attributed tag declarations: it is now generated as a[GameplayTag]type and authored through its own group in the sharedGameplayTagRegistry; typed parent lookup and hierarchical matching are generated consistently for every tag type. - Fixed Fusion Multi-Peer startup by treating
StartGameArgs.Addressas a local bind address, sharing an explicit session name, waiting for the server before starting clients, limiting peer switching to playable runners, and making failed travel and Play Mode shutdown clean up every instance. - World travel now waits for the local player controller and required character pawn before reporting completion; Compact Showcase keeps its loading screen over technical spawning and fades it out through the registered 0.2-second
hideAnimationclip. - Added
ActorIndicatorRendererwith screen projection, distance culling, camera-depth requests and PhysicsScene occlusion; Compact Showcase labels and NPC health bars now hide behind level geometry. - Applied projectile damage from the authoritative local projectile collision instead of a separate fire-time trace, and bounded motor presentation lag so moving obstacles cannot visually enter characters.
- Added automatic, color-coded
GameplayTagRegistryauthoring: every attributed tag type receives an always-visible reorderable group, expandable metadata, confirmed deletion and inline creation; tag fields now provide registry-backed selection and creation controls. - Fixed the
AssetReferenceproperty drawer to read GUIDs from its active provider instead of the removed rootguidfield, and replaced every remaining FusionNetworkBooluse with weavedboolstate. - Moved widget-root and loading-screen prefab settings into
EngineSettingsand removed the standaloneWidgetSettings; renamed item schemas toItemScheme, added Project Browser type thumbnails, and expanded Compact Showcase with authored item schemes, gameplay-tag domains, and logger channels. - Separated deterministic equipment attachment from smoothed presentation sockets to remove held-item jitter, and expanded Compact Showcase with respawning pickups, higher jumps, side-wind/updraft zones, a corrected west deck, a bordered lava area, and three weapon-test dummies.
- Simplified Compact Showcase actors: the training dummy now derives from
Character, lava and teleporters derive directly fromActor, character presentation and damage-number emission live on their characters, and the dummy health bar is a screen-projectedWidgetdriven by UI variables. - Fixed Compact Showcase weapon damage by resolving hits on state authority while projectiles remain local visuals; fixed held-sprint release, added replicated sprint trails, screen-projected labels, persistent lava overlap damage, ability-owned jump cooldown, and replacement-pawn respawning.
- Fixed authoritative projectile hits against PhysX-only actors and ignored-object filtering under Fusion lag compensation; added hip-fire auto aim, bound magazine/reserve ammo to the HUD, corrected HUD safe anchoring and camera-facing labels, and replaced the vertical ramp with slippery 30/45-degree surface-modified ramps.
- Added a Fusion-timed 0.5-second jump cooldown, held sprint with replicated Stamina drain/recovery, pooled network damage-number presentations, a 72-degree sliding ramp, and higher-friction ice to Compact Showcase; fixed runtime world-label placement and the equipment HUD null race.
- Added an optional magnitude payload to
FeedbackParametersfor numeric presentation effects. - Fixed Compact Showcase pickups by replacing empty UnityEvent wiring with authoritative replicated pickup actors, raised contextual interaction prompts, changed the training dummy to a capsule, removed the duplicate moving platform, and added lava and ice labels.
- Added an
AttributeContainerinspector section that lists every registered attribute with base and current values in edit mode and play mode. - Added authoritative match/player console commands, fixed match-state transitions and ability completion/input-release lifecycle, and smoothed Compact Showcase character presentation and camera tracking independently from the deterministic motor root.
- Added three graded jump ramps and an authority-simulated, network-replicated Rigidbody push cube to Compact Showcase, while reducing the scripted moving-cube obstacle to one instance.
- Reworked Compact Showcase readability with a gray/black checker floor, compact spherical pickups, object labels and a handless character; fixed interaction scans in Fusion local physics scenes and made repeated jump attempts refresh grounding before applying the impulse.
- Apply the network-model analyzer to every runtime assembly, restoring generated inventory-fragment
TypeIdconstants and serializers outside theRedEngine.Networkassembly. - Ensure the generated network ScriptableObject table is labeled as Fusion's default global and return safe serialization/preload failures when the table is unavailable instead of throwing.
- Split trace, melee, and projectile attacks into
RangedWeapon,MeleeWeapon, andThrowableWeapon; projectile launch values now travel asProjectileLaunchParameters, while the projectile subsystem only pools and ticks local visuals and state authority applies damage. - Replace presentation definitions with pooled
PresentationBehaviourprefabs, add stable GUID serialization for presentation RPCs, and replicate feedback context throughNetworkIdvalues. - Reworked subsystem construction so
SimulationBehavioursubsystems register themselves as Fusion globals and no longer require subsystem-specific driver components. - Moved the serialized type selector to Foundation as the generic
TypeReference<TBase>, removed legacy serialized-name fallbacks, and standardized public API class regions. - Removed empty and fully commented-out framework source files.
- Force Fusion weaving for the Compact Showcase runtime assembly so its network behaviours work without host-project
NetworkProjectConfigchanges. - Update Fusion Weaver configuration for the renamed
RedEngine.Gameplay.Movementassembly, force weaving for that module, and remove the obsoleteRedEngine.Gameplay.CharacterControllerentry. - Defer
ReplicatedCollectionserializer lookup until network state is accessed so Unity component construction cannot race generatedNetworkModelregistration. - Validate a missing
EngineSettings.NetworkRunnerbefore travel and include a ready-to-assign Fusion runner prefab in Compact Showcase. - Expanded Compact Showcase with asset-driven ability input, prefab-authored UI events, a Cinemachine camera rig, a replicated moving platform and lava hazard, six inventory slots, and potion/ammo pickups.
- Fixed periodic Gameplay Effect expiration ordering and equipment ability source binding.
- Consolidated package samples into a small Compact Multiplayer Showcase with Framework
InputSettings, Cinemachine follow, a weapon, tick-driven moving cubes, a respawning NPC health bar, and a bound multi-screen UI flow. - Added
InlineScriptableObjectinspector support for creating and editing nested sub-assets while retaining ordinary external references, including concrete subtype selection for polymorphic fields. - Simplified inventory layout replication by folding layout and placement serialization into a stack-only
InventoryNetworkState, and removed the serializer interface and network-layout wrappers. - Added
TetrisInventoryLayoutwith rectangular grid placement and item footprints configured byEntityFragmentInventory.WidthandHeight. - Removed
ItemInstanceId; inventories now identify and merge items byItemDefinition, support direct definition-based consumable operations, and retain instance overloads for exact objects. - Reduced the public inventory mutation API to
Add,Remove, andMove; removed item shortcuts for quantity, affixes, stacking, and removal so item data is accessed through fragments. - Collapsed projectile logic, runtime state, and presentation into one non-replicated
ProjectileMonoBehaviour and removed prediction keys, rollback history, simulation type switches, and obsolete aliases. Projectile prefabs now own all movement, collision, and feedback behavior. - Moved lock-on state, target acquisition, validation, and cleanup from
RangedWeaponintoWeaponTargetLockAbility; firing now only receives the selected target ID. - Removed
WeaponShotRecord;RangedWeaponnow exposes only replicated firing fields and passes their values directly toProjectile.Shoot. Active projectiles outlive their source weapon. - Moved interaction scanning and target ownership into
InteractAbility, made interactions coroutine-based, and removed the legacy scanning component and interaction RPC forwarding. - Reworked
RedEngine.Assetsinitialization into an ordered Addressables, scene, AssetBundle manifest, bundle preload, and network-asset pipeline with logged result-based failures and deterministic handle cleanup. - Changed
ItemInstancefrom anINetworkStructvalue to aNetworkModelclass while keeping inventory and equipment replication backed by its generated unmanaged state. - Extended the NetworkModel generator to use Fusion
[Networked]members, nested models,NetworkWrap/NetworkUnwrap, generated serializers, and automatic registration. - Converted
InventorySlotinto a NetworkModel and taughtReplicatedCollection<T>to serialize NetworkModel objects directly, with dirty-only writes and revision-gated reconciliation. - Removed the ItemRuntimeData registry, persistence buffer, and generator; deterministic item fragments and affixes are rebuilt from
ItemDefinitionplusSeed. - Moved authored initial-item application into
Inventoryand removed the separateInventoryInitializernetwork component. - Converted
ItemAffixInstanceinto a nested NetworkModel runtimeItemFragmentand renamed the item rarity gameplay-tag type toRarityTag. - Converted
RuntimeAbilitySlotto a generated NetworkModel and added the one-parameterReplicatedCollection<T>API for NetworkModel classes. - Converted
RuntimeEffectSlotto a generated NetworkModel and removed the custom-serializer variant and adapter layers fromReplicatedCollection<T>. - Added strict
REDNET001-REDNET003NetworkModel diagnostics, explicit null presence for nested reference models, and deterministic Unity editor/runtime serializer registration. - Added dirty-slot writes and rollback-safe raw-word shadows to
ReplicatedCollection<T>throughSetDirty,WriteChanges, andReadChangeswhile preserving runtime object identity. - Added
[Replicated(MaxCapacity)]generation of concrete FusionNetworkArraybacking state, automaticRedNetworkBehaviourlifecycle synchronization, logical prefab capacity validation, and per-slotAdded/Removed/Changedreconciliation.AbilitySystemis the first migrated user. - Added opt-in
[NetworkFragment]/[NetworkField]generation with deterministic type IDs, collision diagnostics, generated dirty-aware properties, fixed boundedItemInstancefragment state, and revision-gated application that leaves deterministic prototype fields untouched. - Changed initial inventory authoring to store complete
ItemInstancevalues and validate them without routing initialization throughItemInstanceFactory. - Replaced
NetworkAssetAttributeand content-pack network metadata with the generated.redassetstable, standalone 128-bitNetworkAssetReference, and an always-loadedNetworkScriptableObjectindex backed directly byAssetReference<T>providers. - Reworked
AssetReference<T>around automatically selected static, Resources, and Addressables providers returningAsyncOperationHandle<T>, including migration of existingdirectAssetdata. - Initial package migration.
- Added Runtime, Editor, Samples~, and Documentation~ layout.
- Added in-game diagnostics console with automatic command registration.
- Added ScriptableObject-based GameInstance subsystem path.
- Added WorldSceneManager to separate world lifecycle from scene loading.
- Added Basic Sample scene generator and playable sample scripts.