Migrate client from Godot to MonoGame #1
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo#1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Move the client rendering off Godot onto MonoGame. Server and protocol (
IsoMmo.Shared) stay unchanged.Why
Godot friction (editor dependency,
.tscn/.uidfiles, ~1GB export templates, scene-tree quirks like the chat focus bug) outweighs its value for a game this simple, where we already build every scene in code. MonoGame gives us the platform layer (window, GPU, sprite batch, input, texture loading, cross-platform packaging) while we own all the engine logic. Avoid raw OpenGL — weeks of plumbing for no game.Hard requirement: multi-platform
IsoMmo.Auth,IsoMmo.GameServer): Windows + macOS + Linux. Already pure .NET 10 / ASP.NET Core + SQLite/Postgres, so this holds today — keep it that way.Scope of the port
client/IsoMmo.Client, still referencingIsoMmo.SharedIsoProjectionverbatim)HumanArtfacing/mirror table)Out of scope
Server, protocol, auth, DB, migrations — untouched.
Open questions
Definition of Done
Acceptance criteria specific to this issue (base DoD — tests green, whole solution builds, zero warnings, multi-platform preserved — applies on top):
git diffshows no changes toIsoMmo.Auth,IsoMmo.GameServer, or the wire contracts inIsoMmo.Shared(server/protocol untouched)..tscn,.uid,export_presets.cfg,project.godot,scripts/godot.sh, and the now-unused.godot//.tools/ignore rules.dotnet buildof the whole solution succeeds with zero warnings; the client builds and runs without any editor step.scripts/godot.shand are documented in the README.marco referenced this issue2026-07-16 23:44:42 +02:00
Done via #1 and merged to
main(commitb8aeb51). The client is now MonoGame (DesktopGL, .NET 10); Godot is fully removed and the project consolidated intoclient/IsoMmo.Client.Delivered and verified on macOS: login → silent account creation → character prompt → 8-direction mouse movement → two clients seeing each other move (with glide + names) → overhead chat. Engine-independent logic lives in
IsoMmo.Client.Core(46 unit tests).dotnet buildof the whole solution is zero-warning;git diffshows no changes to Auth/GameServer or the Shared wire contract. Cross-platformjusttasks + README/CLAUDE.md updated.Two DoD items remain machine-dependent and are tracked in #15: Windows playability and a visual check against real extracted UO art. Closing this as the migration itself is complete.