Add prototype gameplay loop with character/battlefield assets and server game APIs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
udx
2026-10-20 18:50:00 +08:00
co-authored by Cursor
parent 79369e4473
commit 6c64210331
833 changed files with 998079 additions and 1042 deletions
+36
View File
@@ -0,0 +1,36 @@
$ErrorActionPreference = 'Stop'
$taskRoot = Split-Path -Parent $PSScriptRoot
$taskServer = Join-Path $taskRoot 'AIServer/build/Release/aiserver.exe'
$taskData = Join-Path $taskRoot 'AIServer/data/aiserver.db'
$taskLogs = Join-Path $taskRoot 'Tools/output'
try {
$taskHealth = Invoke-RestMethod -Uri 'http://127.0.0.1:8080/health' -TimeoutSec 2
if ($taskHealth.ok -eq $true -and $taskHealth.service -eq 'aiserver') {
Write-Output 'AIServer already healthy at http://127.0.0.1:8080'
exit 0
}
} catch { }
if (-not (Test-Path -LiteralPath $taskServer)) {
throw 'Build AIServer first: cmake --build AIServer/build --config Release'
}
New-Item -ItemType Directory -Path $taskLogs -Force | Out-Null
$taskProcess = Start-Process -FilePath $taskServer -ArgumentList @(
'--host', '127.0.0.1', '--port', '8080', '--db', $taskData, '--daemon'
) -WorkingDirectory (Join-Path $taskRoot 'AIServer') -WindowStyle Hidden -PassThru `
-RedirectStandardOutput (Join-Path $taskLogs 'aiserver-local.stdout.log') `
-RedirectStandardError (Join-Path $taskLogs 'aiserver-local.stderr.log')
for ($taskAttempt = 0; $taskAttempt -lt 15; $taskAttempt++) {
Start-Sleep -Milliseconds 200
if ($taskProcess.HasExited) { throw 'AIServer exited; inspect Tools/output/aiserver-local.stderr.log' }
try {
$taskHealth = Invoke-RestMethod -Uri 'http://127.0.0.1:8080/health' -TimeoutSec 1
if ($taskHealth.ok -eq $true -and $taskHealth.service -eq 'aiserver') {
Write-Output "AIServer healthy at http://127.0.0.1:8080 (PID $($taskProcess.Id))"
exit 0
}
} catch { }
}
throw 'AIServer did not become healthy at http://127.0.0.1:8080'