Commit Graph

  • 85437b73c8 feat: move all plugin projects under sources/plugins features/plugins/13-move-editors Nicolas Musset 2026-10-11 19:17:30 +02:00
  • a3cff2e7de AssetCompiler: the package is build-only, a plain PackageReference or #:package is enough feature/asset-compiler-package-fix Nicolas Musset 2026-10-10 22:15:22 +02:00
  • 9e79c51b2c fix: update references and docs after moving plugin's editor projects Nicolas Musset 2026-10-10 14:04:14 +02:00
  • 80a748f60f feat: move plugin's editor projects Nicolas Musset 2026-10-10 14:01:42 +02:00
  • cfccda897e Packaging tests: a UI page compiles through Stride.UI.Assets, which ships the system library; only an editor session loads Stride.UI.Editor, and only the WPF one its views; the plugin fixture references Stride.UI for its page feature/plugins/12-ui Virgile Bello 2026-10-06 14:43:15 +09:00
  • af13381bea Rendering: the engine's compositors no longer carry the UI render feature (Stride.UI is a plugin); GraphicsCompositorAsset 3.1.0.3 treats it as 3.1.0.2 treats the particle one (one ownership upgrader per plugin feature, same rules): owned in compositors derived from the engine's ones, removed in a project without Stride.UI; samples and test compositors marked, the Voxels compositor drops it Virgile Bello 2026-10-06 14:34:32 +09:00
  • 6cadbee4ce UI: move the UI page and library assets, compilers, factories, property graph, templates and the system library to Stride.UI.Assets, and the UI editors, their game services and adorners, the gizmo, the entity factory, the add-to-scene policy, the page thumbnail and the property grid pieces to Stride.UI.Editor (views and property templates in Stride.UI.Editor.Wpf), all declared by Stride.UI; the UI render feature comes from UIRenderFeatureProvider; Stride.Assets, Stride.Editor and Stride.AssetCompiler no longer reference Stride.UI Virgile Bello 2026-10-06 14:31:53 +09:00
  • 3140a8063a UI: the runtime is host-loadable (StrideContainsAssetTypes), its component and elements are written in scene and UI assets Virgile Bello 2026-09-12 08:51:36 +09:00
  • 7ca485ce51 Rendering: the engine's compositors (the two defaults and the Voxels one) no longer carry the particle render feature (Stride.Particles is a plugin; a session without it could not read them); the GraphicsCompositorAsset 3.1.0.2 upgrader marks the inherited item as owned in compositors derived from them so reconciling with the base keeps it, samples and templates marked feature/plugins/11-particles-audio Virgile Bello 2026-09-15 22:26:50 +09:00
  • f33f970685 Particles: move the gizmo, the entity factories, the material change watcher, the property grid updater (was ParticleSystemComponentViewModel) and the component and state control icons to Stride.Particles.Editor, declared by Stride.Particles; the preview and thumbnail compositors get the particle render feature from its provider; Stride.Editor and the asset compiler no longer reference Stride.Particles Virgile Bello 2026-09-13 21:03:10 +09:00
  • 6dc8a11c23 Audio: the sound preview's WPF view and its theme move to Stride.Audio.Editor.Wpf (StrideEditorToolkit Wpf, its own plugin class so the view registers), declared by Stride.Audio.Editor, which has no WPF left Virgile Bello 2026-09-15 18:45:09 +09:00
  • 2f4c53ea50 Editor: a plugin declares its editor settings keys in a static class marked [EditorSettings]; Game Studio registers them with the plugin's assembly and removes them from the settings container when the assembly is unloaded (SettingsContainer.UnregisterSettingsKey, RegisterSettingsKey), so a reloaded assembly creates them again feature/plugins/10-reload Virgile Bello 2026-10-07 21:00:59 +09:00
  • bddc7b3ff5 Packages: an assembly a container loaded resolves for a type name asked from outside any container (WPF binds the generic arguments of a BAML type through the default load context; the UI editor's ThicknessEditor derives from VectorEditorBase<Thickness?>) Virgile Bello 2026-10-06 17:32:06 +09:00
  • b083f22611 Editor: the default compositor of the entity editor games (prefab, UI, and the scene until it takes the game's) takes the render features the loaded packages bring (RenderFeatureProviders), as previews and thumbnails do Virgile Bello 2026-10-06 14:08:31 +09:00
  • 8a6fe44560 Editor: the editor game's cursor is named without a UI toolkit (EditorGameCursor), the drag threshold comes from the controller (MinimumDragDistance) and a hierarchy editor reads the clipboard through ClipboardText, so the UI editor's logic uses no WPF or WinForms type Virgile Bello 2026-10-06 14:06:51 +09:00
  • ec06f08ed3 Editor: members an asset editor in a plugin needs are public (AssetCompositeEditorViewModel.FixupAndRestoreSelection, EntityHierarchyEditorGame.InitializeContentScene, AssetCompositeHierarchyTreeViewHelper), and EditorGameController.StartDragDrop starts a drag out of the editor game Virgile Bello 2026-10-06 14:04:17 +09:00
  • bf666b579d Assets: a package takes the path a reused project assembly was loaded from out of the assembly container, since an assembly loaded from bytes has an empty Location; its PackageLoadedAssembly had no path at all, which left the editor unable to tell that a reload swaps it Virgile Bello 2026-09-16 13:40:11 +09:00
  • 488bb00573 Editor: reloading a changed assembly also rebuilds and reloads every loaded assembly that depends on it, in dependency order (a plugin's Assets and Editor companions, and the game, follow its runtime); a dependent stays bound to the types of the copy it was loaded against, so on its own it kept an asset content type and editor registrations pointing at the unloaded assembly Virgile Bello 2026-09-16 12:08:06 +09:00
  • 50c72e09d0 Assets: an asset file whose type is not loaded stays in an editor session as an unloadable asset instead of being skipped (LoadAssetsOfUnknownType, set by the editor only): a .sd file is taken when its first line is a Yaml type tag, migration is skipped for a type that declares no version, and the expected type reaches the Yaml layer so the root can be read as an unloadable asset Virgile Bello 2026-09-16 11:08:07 +09:00
  • 897798852f Editor: an editor plugin is unregistered with its assembly (AssetsPlugin.UnregisterPlugins and PluginsRemoved), taking back its view model, editor, preview and enum image entries, its template providers and its copy and paste processors; the preview service drops the previews of that assembly Virgile Bello 2026-09-16 09:53:28 +09:00
  • c7d301263f Editor: the asset views follow the session's asset types (a plugin joins, assemblies are reloaded or unloaded): AssetTypesChanged is raised once per burst of assembly changes, the Add asset list skips templates whose asset type is not loaded, and the type filters rebuild from AssetRegistry.TypesVersion Virgile Bello 2026-09-15 22:41:43 +09:00
  • 0bd7e3b87a Assets: a project assembly loaded into the session container registers as an asset assembly (a plugin's runtime loaded as a game dependency lists its components); dependencies resolve to the host's copy first and packages load dependencies first Virgile Bello 2026-09-16 00:55:02 +09:00
  • cb98694ab4 Assets: a package's type scope (PackageTypeScope: the types of its own assemblies, of its dependencies, companions included, and of the host); a new compositor and 'Add package features' take the render features of the compositor's project only feature/plugins/9-authoring Virgile Bello 2026-10-08 01:56:48 +09:00
  • 3fa99540cc Editor: Add dependency lists only what a game references itself (no companion, no executable, nothing already in the dependency closure such as the engine's own packages) Virgile Bello 2026-10-06 18:00:04 +09:00
  • 69eaec0eed Editor: 'Add package features' in the graphics compositor editor adds the render features the loaded packages bring (IRenderFeatureProvider) that a game's compositor misses, through the property graph Virgile Bello 2026-09-15 22:26:51 +09:00
  • cc7d05d5e5 Packages: an Editor companion written for one UI toolkit says so (StrideEditorToolkit on the view project, Toolkit on the companion entry, in the sdpkg and the manifest); an editor loads the views of its own toolkit only (PackageLoadParameters.EditorToolkit, the WPF Game Studio names Wpf), the asset compiler none Virgile Bello 2026-09-15 18:45:09 +09:00
  • 70a84b6576 Docs: plugins (runtime, Assets and Editor packages, how the tools find them, plugins inside a game's solution, the stride-plugin template) Virgile Bello 2026-09-15 18:30:38 +09:00
  • 39bfa74eee Packaging tests: a plugin added to a new game's solution by AddPluginGenerator builds with the game (the executable builds the Assets companion, the game does not ship it) and the reloaded solution reads the runtime's companion declarations Virgile Bello 2026-09-15 18:30:37 +09:00
  • ce5a80b7f3 Editor: Add plugin (AddPluginGenerator over stride-plugin): the three projects join the solution and the game library owning the GameSettings asset references the runtime project, asked which one when several do Virgile Bello 2026-09-15 18:30:36 +09:00
  • 8b76682360 Templates: stride-plugin, a plugin as three projects (the runtime with a component and a content type, the Assets companion with an asset, its compiler and its template, the Editor companion with the component's icon and a gizmo), packed in Stride.Templates.Games Virgile Bello 2026-09-15 18:30:35 +09:00
  • f5b43fe87f Editor: images of enum values declared by [assembly: EnumImage(value, resource)] over embedded resources, read like type images; StrideAssetsPlugin adds its resource dictionary's on top Virgile Bello 2026-09-13 20:56:49 +09:00
  • 8c3da97757 Editor: a component takes part in prefab thumbnails through IThumbnailComponent (shown from an angle, prepared before the frame); the particle warm-up moves from PrefabThumbnailCompiler to ParticleSystemComponent Virgile Bello 2026-09-13 20:56:48 +09:00
  • 78015b9860 Audio: move the sound asset, compiler, importer, factories and templates to Stride.Audio.Assets and the emitter and listener gizmos and factories, the sound preview with its WPF view and style, the thumbnail and the editor-game compiler to Stride.Audio.Editor, both declared by Stride.Audio; Stride.Assets, Stride.Editor and Stride.Assets.Presentation reference neither; the new-game and library templates and the samples using audio reference Stride.Audio feature/plugins/8-audio Virgile Bello 2026-09-12 02:37:57 +09:00
  • f0f0cbd74e Upgraders: a project referencing Stride.Engine gets a Stride.Audio reference shaped like it (audio is no longer part of the engine); the code upgrader turns a bare Audio in a game into this.Audio, routes a script's Audio through its Game property and imports Stride.Audio (MemberToExtension, for an instance member turned extension member) Virgile Bello 2026-09-12 02:15:42 +09:00
  • 9efdfd085b Audio: Stride.Audio references Stride.Engine and takes the emitter and listener components, their processors, the sound controller and the audio system, so Stride.Engine no longer depends on it; Game.Audio becomes an extension property in Stride.Audio (a script reaches it as Game.Audio, a game as this.Audio) Virgile Bello 2026-09-12 02:11:40 +09:00
  • b4b43a8565 Voxels: move the volume gizmo and the voxel light and volume entity factories to Stride.Voxels.Editor, declared by Stride.Voxels (editor companion only, no asset types); the compositor template ships with the package and names the asset it derives from (TemplateAssetFactory.DerivedFrom, DerivedAssetTemplateGenerator replaces the GUID table of GraphicsCompositorTemplateGenerator); Stride.Voxels is host-loadable (StrideContainsAssetTypes) and Stride.Editor no longer references it feature/plugins/7-spritestudio Virgile Bello 2026-09-11 21:05:38 +09:00
  • 87e8e53f73 SpriteStudio: move the sheet and animation assets, compilers, importer and templates to Stride.SpriteStudio.Assets (was Stride.SpriteStudio.Offline) and the preview, thumbnails, view model, drop policy, entity factory, node link picker, render feature and component icons to Stride.SpriteStudio.Editor, both declared by Stride.SpriteStudio.Runtime; Stride.Editor, Stride.AssetCompiler and Stride.Assets.Presentation reference neither any more Virgile Bello 2026-09-11 20:46:54 +09:00
  • cfca2085f6 SpriteStudio: the component declares its own volume (IEntityComponentBounds), so the editor frames it without knowing the type; the runtime no longer exposes its internals to Stride.Editor Virgile Bello 2026-09-11 20:18:24 +09:00
  • 1dad901f58 Physics: move the collider shape, heightmap and navigation mesh assets, compilers, importer and templates to Stride.Physics.Assets and the gizmos, heightmap preview, navigation overlay and property grid pieces to Stride.Physics.Editor, both declared by the Stride.Physics package feature/plugins/6-bullet Virgile Bello 2026-09-07 15:05:57 +09:00
  • 51e2f8ab3b Assets: an asset type the previews must not compile as a dependency declares it ([ExcludedFromPreviews]) instead of the prefab preview compiler naming the navigation mesh Virgile Bello 2026-10-07 15:50:53 +09:00
  • 12ceb3169e Physics: the editor, thumbnails and previews no longer create the physics system or set Simulation.DisableSimulation; the physics processor creates the system when a scene has physics components, and a simulation outside ExecutionMode.Runtime does not step Virgile Bello 2026-09-07 14:03:44 +09:00
  • 1b36f1f00b Packaging tests: Video compiles through its Assets package, and only a session asking for editor packages loads Stride.Video.Editor (Windows only, as Game Studio); the packaging tests reference the Video packages so they are packed feature/plugins/5-video Virgile Bello 2026-09-06 01:18:18 +09:00
  • e24a3ff689 Video: move the asset, compiler, importer and template to Stride.Video.Assets and the editor pieces to Stride.Video.Editor, declared by the runtime package Virgile Bello 2026-10-07 15:19:35 +09:00
  • dadbf00063 Video: Stride.Video uses the public Graphics API (Texture.Swap is public, the native resource comes from GraphicsMarshal), so Stride.Core and Stride.Graphics no longer expose their internals to it Virgile Bello 2026-10-07 15:19:34 +09:00
  • fe0106550d Video: serialize a placeholder video without data url (the editor game compiles one for scenes with a video component) Virgile Bello 2026-09-07 00:27:09 +09:00
  • b6d06a1977 Packaging tests: Bepu hull compiles through its Assets package feature/plugins/4-bepu Virgile Bello 2026-09-05 23:11:54 +09:00
  • 5e6430e727 BepuPhysics: move hull asset, compiler and template to Stride.BepuPhysics.Assets, declared as the runtime package's Assets companion Virgile Bello 2026-09-05 19:21:15 +09:00
  • 66713123a7 Assets: move the V-HACD wrapper to its own Stride.Assets.VHACD package Virgile Bello 2026-09-05 18:48:35 +09:00
  • e25e096e49 Upgraders: a code upgrade for types moved to another namespace (MoveTypes): qualified names take the new namespace and the using directive follows, for runtime types renamed in a later version feature/plugins/3-asset-extensions Virgile Bello 2026-10-07 16:38:46 +09:00
  • 730db04859 Upgraders: a project with assets of a plugin package it does not reference (hulls, videos, physics, SpriteStudio, sounds, UI) gets that package on upgrade to 4.5, shaped like its Stride.Engine reference, since the Assets packages now hold those asset types Virgile Bello 2026-10-07 15:16:44 +09:00
  • 5843dc1820 Assets: a runtime assembly declares the asset file extensions of its Assets package ([assembly: AssetFileExtension(extension, typeof(contentType))]), which the asset URL constants generator reads from the game's references, so a game referencing a plugin as a package or a project gets typed constants; the engine's extension map becomes these declarations, and STRDIAG014 warns when an asset type's extension and content type are not declared Virgile Bello 2026-10-07 14:29:42 +09:00
  • 3c34039340 Games: a system marked [GameSystem] is created by every game in its constructor (constructor with the service registry, registered as a service) and added to the game systems after its own, found through the assembly processor's scan index; the audio system is declared that way instead of created by Game; IServiceRegistry.AddService(Type, object) feature/plugins/2-editor Virgile Bello 2026-09-12 01:57:06 +09:00
  • dfef3f6896 Rendering: a package brings its render features through IRenderFeatureProvider (Stride.Assets), found in every asset assembly; the editor's entity preview and thumbnail compositors take them, and SpriteStudio's moves out of the two compositor builders Virgile Bello 2026-09-11 20:18:25 +09:00
  • 835fae9f5c Editor: an overlays popup in the scene editor lists the toggles of every IEditorGameOverlayService (heading, color, per-scene visibility), replacing the navigation-only popup; the navigation mesh service exposes its groups through it Virgile Bello 2026-09-07 14:34:03 +09:00
  • 6e59dd9562 Editor: a generic view and view model for sprite-batch previews (zoom, size), registered on the open generic base; preview views resolve through generic bases; IAssetPreview.ContentLoaded; the heightmap preview drops its own view, view model and callback Virgile Bello 2026-09-07 14:27:22 +09:00
  • a9da0e88ec Editor: gizmos hidden by default declare it (GizmoComponentAttribute.HiddenByDefault) instead of the scene settings naming physics and model Virgile Bello 2026-09-07 14:19:42 +09:00
  • 731534933a Editor: an asset type declares the game settings sections its compilation reads ([GameSettingsDependency]); the scene loader rebuilds those assets when a section changes and the editor's compiler database takes those sections from the game, instead of naming navigation in both Virgile Bello 2026-09-07 14:17:57 +09:00
  • 20fa71a94b Engine: IEntityComponentBounds (LocalBounds) so the editor frames a component's own volume without knowing the component; navigation bounding box and particle system implement it Virgile Bello 2026-09-07 14:14:08 +09:00
  • a0e29e2021 Editor: editor game services declared by [EditorGameService(controller type)] and created by the base controller from every asset assembly, replacing the hand-written lists; PhysicsDebugShapeService renamed WireframeGizmoStageService (it serves physics, particles and light shafts) Virgile Bello 2026-09-07 14:11:48 +09:00
  • 8341c01944 Editor: entity factories (Add entity menu) discovered in every asset assembly, categories and factories observable so a package loaded later shows up Virgile Bello 2026-09-07 14:06:58 +09:00
  • dbf0d59264 Editor: type images and static thumbnails declared by assembly attributes over embedded resources (TypeImageAttribute, StaticThumbnailAttribute) Virgile Bello 2026-09-06 00:36:07 +09:00
  • ecb5d62ced Templates: import-from-file goes through the file's importer; sound and video importers read tracks and duration themselves (replaces their template generators) Virgile Bello 2026-09-06 00:36:06 +09:00
  • ce4d5ad70d Editor: add-asset policies discovered in every asset assembly instead of a fixed list Virgile Bello 2026-09-06 00:23:10 +09:00
  • 941763e99f Editor: discover plugins in every asset assembly, including ones loaded after the session opened; Register* methods default to attribute scans; previews found by the preview service Virgile Bello 2026-09-06 00:20:51 +09:00
  • 2dce37b2ae Packages: the editor loads the Editor companions too (LoadEditorPackages), the asset compiler the Assets ones only; a Windows-only project (an Editor companion) is its own host build, packed for its platform-versioned framework; a project-referenced package at the plain version resolves to this checkout's dev stub Virgile Bello 2026-09-14 20:57:40 +09:00
  • 903d720138 Assets: move the ffmpeg command line to Stride.Assets.FFmpeg; sound import probes tracks through it instead of the in-process decoder Virgile Bello 2026-09-06 00:01:54 +09:00
  • c2e95b3958 Templates: data-driven prompts for asset factory templates (replaces the hull template generator); a prompt sets its value through a member path (ColliderShapes[0].Model), resolved on the created asset Virgile Bello 2026-09-05 18:58:19 +09:00
  • ffff91938b Packages: a project's dependency list rebuilt from its lock file (Add dependency) gets back the companions the session loaded for its packages feature/plugins/1-companions Virgile Bello 2026-10-08 09:44:33 +09:00
  • eead41dd83 Packages: a companion can depend on another plugin's companion (an asset type deriving from that plugin's); one that comes with a companion's restore closure loads as a companion, without the direct-reference warning Virgile Bello 2026-10-06 13:58:02 +09:00
  • ccba78996a Packages: an executable builds the Assets companions declared along its project references and lists their manifests (CompanionManifests) for the asset compiler, so a game references an in-solution plugin's runtime project only; the declaring project restores a companion that was never restored, so its manifest and packed sdpkg always carry the id (the pack-time resolution target is gone) Virgile Bello 2026-09-15 16:03:04 +09:00
  • fd8a0c7237 Packaging tests: companion package cases (feed restore, missing, version mismatch, own version, missing kind, direct reference, project reference, replacement by the game) Virgile Bello 2026-09-05 19:43:31 +09:00
  • 8165b76f12 Packages: load the declared Assets companions into the session (store, dev-redirect or NuGet restore); error on unloadable assets at compile Virgile Bello 2026-09-05 19:11:26 +09:00
  • f8007253ab Packages: companion package declarations in the sdpkg and the build manifest (a companion project states its kind, StridePackageKind; the runtime lists its companion projects or packages, whose id, version and kind are read from them at build and pack time; Replaces drops a companion declared elsewhere) Virgile Bello 2026-09-05 19:00:48 +09:00
  • b14ab0ddff Merge pull request #3554 from xen2/feature/gold-variants master xen2 2026-10-10 18:05:02 +09:00
  • a3b14d369e Tests: sidecars record pixels per diff, and a pass a threshold rule allowed saves its render Virgile Bello 2026-10-10 17:36:20 +09:00
  • a5defce75f CompareGold: web UI shows gold variants under their image and diffs against the one the test matched Virgile Bello 2026-10-10 16:08:58 +09:00
  • 20ee85ade0 Tests: gold variants for CPU rasterizers, a render passes when it matches any <name>.variantN.png of its bucket Virgile Bello 2026-10-10 15:24:41 +09:00
  • 3d11175177 CompareGold: stats verb, worst diffs seen per threshold rule across CI runs, per lane and CPU Virgile Bello 2026-10-10 14:53:04 +09:00
  • 0f569cd67b Tests: SpriteRenderer3DTests and TestLightShafts compare exactly, they render the same in every run Virgile Bello 2026-10-10 14:06:01 +09:00
  • 6d1b13066f Engine.Tests: AnimatedModelTests compares exactly, the knight renders the same in every run Virgile Bello 2026-10-10 12:36:59 +09:00
  • 17aa80e8ca Rendering: opaque draws sort on keys that are the same in every run, not on object hash codes Virgile Bello 2026-10-10 12:16:44 +09:00
  • 05f55bde85 Tests: WARP 1.0.21, fixes a device loss with local reflections on Direct3D 11 Virgile Bello 2026-10-10 00:46:48 +09:00
  • 72b092b7d9 Update the EmptyEditor startup baseline for the Starters template category Virgile Bello 2026-10-10 09:36:01 +09:00
  • 519906fd9c Tests: the vision gate uses Claude Sonnet 5.5, reasons before its verdict and ignores NuGet vulnerability warnings Virgile Bello 2026-10-10 09:35:59 +09:00
  • 462244d191 Tests: the editor screenshot vision gate tolerates NuGet vulnerability warnings in build logs Virgile Bello 2026-10-10 01:48:03 +09:00
  • de013d8034 feat: ask the graphics device what it provides, instead of comparing profiles (#3368) Sas van der WesthuizenandClaude Opus 5 2026-10-09 15:42:07 +02:00
  • a48c9e0597 Release notes: the copied images link to the docs commit they were read from Virgile Bello 2026-10-09 19:45:51 +09:00
  • 8fbf61667b Release notes: the copied written notes leave out their contributor and changelog sections Virgile Bello 2026-10-09 19:40:35 +09:00
  • 6c53ebd5a8 Release notes: no empty highlights section in the run summary when the written notes are used Virgile Bello 2026-10-09 19:19:57 +09:00
  • fea2e66d27 Release notes: use the written release notes from stride-docs Virgile Bello 2026-10-09 19:04:09 +09:00
  • 1816f0bab4 Release notes: generate with Claude Opus 5.5 Virgile Bello 2026-10-09 18:43:34 +09:00
  • c2c57aeb3a Open 4.4.1 for development (released 4.4.0) master-4.4 github-actions[bot] 2026-10-09 09:12:39 +00:00
  • 0ddd0f5e32 tests/comparator: read STRIDE_ANTHROPIC_API_KEY before ANTHROPIC_API_KEY Virgile Bello 2026-10-09 17:54:34 +09:00
  • 5d933ff7b1 Presentation: keep the main window registered after hide and show (#3531) icauro 2026-10-09 07:12:07 +03:00
  • ccbda65373 [Graphics] fix: RenderOutputDescription span constructor reads past a short span (#3529) nicogo.ethandClaude Opus 5.5 2026-10-09 05:29:41 +02:00
  • 8d7e401cec [Physics] fix: Bepu debug wireframe artifacts on faces crossing the camera plane (#3525) nicogo.ethandClaude Opus 5.5 2026-10-09 05:28:32 +02:00
  • a26a9a4e4f [Physics] feat: Debug render contact points and normals (#3526) nicogo.ethandClaude Opus 5.5 2026-10-09 05:27:53 +02:00
  • 7d685e8b46 [Physics] fix: MaxStepPerFrame now bounds steps per frame, -1 no longer freezes the simulation nicogo.ethandClaude Opus 5.5 2026-10-07 12:57:10 +02:00
  • 50a4cbeeab Adjust background for some card elements Jakub Ławreszuk 2026-10-07 14:08:00 +02:00
  • e0bc0a6fd5 Review: keep the enumeration index for the validation lookup, skip software adapters in one pass nicogo.ethandClaude Fable 5.1 2026-09-18 13:02:14 +02:00