| Layer |
Technology |
Responsibility |
| Maker |
C#, .NET 10, WPF/XAML |
Windows documents, scene tools, inspectors, previews and export UI |
| Engine |
Portable C# |
Fixed-step movement, collision, attacks, resources, animation and events |
| Content |
Versioned definitions and typed asset references |
Load, validate and compile authored game data |
| Simulation |
Shared C# orchestration |
Rooms, party rules, encounters, narrative timing and campaign transitions |
| Desktop player |
.NET and Raylib-cs |
Rendering, input, sound and native application lifecycle |
| Browser player |
.NET WebAssembly, AOT and JavaScript |
Shared game presentation with browser-specific loading, audio and input |
| Arcade website |
ASP.NET Core, EF Core and PostgreSQL |
Account admission, release delivery and independent input verification |
WPF supplies the Windows editor interface. The browser runs portable game code through WebAssembly. Visual Studio is the development/debugging environment; MSBuild and the pinned SDK also support command-line builds. Raylib provides multimedia primitives, while Gynara owns the gameplay and authoring rules built on those primitives.
Why shared rules matter
The ordinary simulation uses fixed time steps, with a default scheduler step of one sixtieth of a second. Rendering has its own cadence. Movement and attack rules therefore have an explicit timing owner rather than depending directly on a display's refresh rate.
The same gameplay libraries support native play, browser prediction and website verification. This reduces duplicated interpretations of rules. It does not make every platform concern identical: browser audio requires user activation, memory is constrained, and web sessions have transport and authorization boundaries.
Maker also measures the actual character motor when deriving jump capability and checking generated routes. A platform that looks reachable must still satisfy movement, body clearance and landing requirements. Manual editing remains available; generation is optional.
A focused engine
Current production centers on Side Scroller and Shoot 'Em Up. A broader three-genre architecture exists, but Beat 'Em Up is deferred. The platform is specialized for Gynara campaigns and their characters, presentation and encounters. The next campaign will provide further evidence of how well those tools generalize.
Campaign 1 starts through Start Campaign, opens its intro directly, and keeps gameplay progress within the current attempt. Flight defeat offers flight retry or Main Menu. After the final victory sequence, the five-Maiden thank-you scene holds for ten focused seconds, then permits Start/Enter while its music can continue. There is no player-facing Continue feature.
Continue reading
Implementation evidence in TheGynaraLegend: Directory.Build.props, src/Gynara.LegendMaker/Gynara.LegendMaker.csproj, src/Gynara.Engine/Timing/FixedStepScheduler.cs, src/Gynara.Game/SharedPlayer.projitems, src/Gynara.Browser/Gynara.Browser.csproj, and docs/current/architecture.md. Website ownership is described in architecture.
Further reading: Maintained handbook chapter.