Skip to content

Next phase development#8

Merged
awest813 merged 1 commit into
mainfrom
cursor/next-phase-development-061f
Mar 2, 2026
Merged

Next phase development#8
awest813 merged 1 commit into
mainfrom
cursor/next-phase-development-061f

Conversation

@awest813
Copy link
Copy Markdown
Owner

@awest813 awest813 commented Mar 2, 2026

Complete Phase D of engine modernization, enhancing performance, stability, and maintainability.

This PR delivers:

  • Simulation budget tracking for CSimulation.update().
  • Named launch profiles (-profile safe|balanced|high) for DesktopLauncher.
  • OpenGL 3.3 capability check at startup with user-facing error messages.
  • Server hardening via LoginRateLimiter and O(1) disconnected() lookup.
  • Asset cache telemetry for model/texture loading.
  • package-info.java markers for architectural layers.
  • 29 new unit tests for core utilities.

Open in Web Open in Cursor 

…telemetry, profiles

- Wire SimulationBudgetTracker around CSimulation.update() in War3MapViewer:
  each simulation tick is now timed via beginTick()/endTick(); avg/max/overrun
  stats reported every ~60 s via [SimBudget] log lines.

- Named launch profiles (-profile safe|balanced|high) in DesktopLauncher:
  safe = windowed 1280x720, no MSAA, vsync, 60 fps cap;
  balanced = windowed 1280x720, 2x MSAA, vsync, 60/30 fps;
  high = fullscreen, 4x MSAA, vsync, uncapped.
  Individual flags override profile settings.

- GL version guard in StartupDiagnostics.checkGLRequirements(): called from
  WarsmashGdxMultiScreenGame.create() after the capability report. Prints a
  user-readable error with detected/required version and driver-update hints,
  then exits with code 1 when OpenGL < 3.3 is reported.

- Server hardening in GamingNetworkServerBusinessLogicImpl:
  - New LoginRateLimiter blocks an IP for 5 min after 5 failed auth attempts
    in 60 s; applied to login() and createAccount().
  - New writerToSession reverse map makes disconnected() O(1) instead of O(n)
    over all sessions, eliminating the documented DDoS amplification path.

- Asset cache telemetry via new AssetCacheTelemetry class: instruments both
  ModelViewer.load() and loadGeneric() cache paths; logs [AssetCache] hit/miss
  summary every 50 misses.

- Package ownership markers: package-info.java for render (viewer5),
  simulation, net (networking), and assets (datasources) layers, documenting
  allowed and forbidden cross-layer dependencies.

- New unit tests (29 tests added):
  ObjectPoolTest (8), SimulationBudgetTrackerTest (5),
  StartupDiagnosticsTest (9), AssetCacheTelemetryTest (7).

- CHANGELOG.md and ENGINE_MODERNIZATION_ANALYSIS.md updated.

Co-authored-by: awest813 <awest813@users.noreply.github.com>
@cursor
Copy link
Copy Markdown

cursor Bot commented Mar 2, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@awest813 awest813 marked this pull request as ready for review March 2, 2026 15:19
@awest813 awest813 merged commit 03f164c into main Mar 2, 2026
6 of 8 checks passed
@awest813 awest813 deleted the cursor/next-phase-development-061f branch March 2, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants