NetDex is now publicly available as a host-authoritative multiplayer Omi experience built with Godot 4.6 + C#.
Highlights
- Full online/LAN Omi gameplay loop with authoritative host validation
- 4-player seating with spectator mode and reconnect support
- Kapothi mechanic with updated scoring and round-resolution logic
- Host-side AI bots with Easy, Normal, and Strong difficulty
- Built-in cross-platform updater flow via GitHub Releases
- Platform export and packaging flow for desktop and Android
Gameplay
- Implemented deterministic match flow: Shuffle -> Cut -> First Deal -> Trump Select -> Second Deal -> Trick Play -> Round Score -> Match End.
- Added timed hold phases for deal and trick resolution pacing (
CompleteFirstDeal,CompleteSecondDeal,ResolveCurrentTrickserver transitions). - Added Kapothi proposal/response phases with timeout fallback behavior (proposal timeout auto-skips, response timeout auto-rejects).
- Updated scoring to account for trump-side penalties, draw-bonus carry rules, and accepted-Kapothi contract outcomes.
- Match end is credit-based (or reconnect-timeout forfeit), with next-round auto-start when credits remain.
Multiplayer and Lobby
- Host-authoritative backend architecture using ENet high-level multiplayer.
- LAN discovery over UDP broadcast with multi-instance-safe bind range (
7778..7789) and room expiry handling. - Direct IP join fallback when broadcast discovery is blocked by network conditions.
- Room lifecycle support for
Lobby,InMatch,PausedReconnect, andMatchEnded. - Reconnect identity/token flow with 90-second reconnect timeout and forfeit path if deadline is missed.
AI
- Added host-only bot coordinator and Omi policy pipeline.
- Strict-fair bot perception model (no hidden-opponent-hand reads).
- Background search with cancellation guards on state-version changes.
- Kapothi team-action rules integrated into bot decision making.
- Difficulty tuning for simulation budget and risk profile.
Updater and Distribution
- Added About screen update controls (check, install action, skip) and runtime status messaging.
- Added GitHub Releases metadata integration and semver-normalized version comparison.
- Desktop installers now enforce SHA-256 digest validation before apply/relaunch.
- Added platform installers for macOS (helper apply + relaunch), Windows (helper apply + relaunch), Linux (helper apply + relaunch), Android (browser handoff), and iOS (manual release-page handoff).
- Windows updater now resolves architecture-specific assets (
x86_64andarm64).
UI and Platform Work
- Added mobile-friendly scroll support and pause/menu polish.
- Added fullscreen/mobile display behavior updates.
- Added audio manager integration and settings controls.
- Updated modern theme styling and scene polish.
- Added export preset updates for macOS, Android, Windows (
x86_64,arm64), and Linux paths.
Documentation and Tooling
- Added comprehensive architecture and flow documentation under
docs/. - Added generated scene/script references and a docs coverage manifest.
- Added docs QA scripts for link checks and source coverage checks.
- Added release helper scripts for packaging and latest-release asset verification.
Known Limitations
- iOS does not support in-app package installation; update flow opens the release page for manual update.
- LAN discovery can be blocked by some routers/APs; Direct IP join should be used in that case.
- Desktop in-app updater depends on correct release asset naming and valid SHA-256 digests. No Update servers or stores.
Full Changelog: https://github.com/VibeNoobNotFound/NetDex2D/commits/v1.3.0