Physical systems
Power, gravity, atmosphere, doors and machinery exist as connected state rather than isolated scripted scenes.
RED RELAY STUDIO
Original game / In development
One maintenance engineer. One interstellar colony ship. One intelligence that can only know what its sensors reveal.
The premise
The CSV Meridian is carrying 1,458 civilian colonists toward a permanent settlement on Nysa. They are meant to sleep through the journey. You are not.
You wake alone as the ship's maintenance engineer. The crew remains in cryogenic suspension, systems require attention, and the vessel's central intelligence is your only consistent point of contact.
CORA controls information and selected ship systems, but she is not omniscient. She knows which terminal receives a message, what registered sensors report and which events the simulation verifies. If no camera or sensor sees the player, CORA cannot simply invent their location.
The experience is built around physical interaction: terminals embedded in the environment, doors with real state, maintenance tasks, EVA procedures, zero-gravity movement and a service drone moving through a deliberately constrained waypoint network.
Power, gravity, atmosphere, doors and machinery exist as connected state rather than isolated scripted scenes.
CORA receives explicit sensor data. Unverified information remains unknown, preserving uncertainty and player agency.
Questions, access attempts and actions build a persistent history that changes how the ship intelligence evaluates the player.
Development gallery
Under the hull
In fiction, CORA is the central intelligence of the CSV Meridian. Technically, CORA is a controlled conversation service connected to an authoritative Unreal Engine simulation.
Renders the world and owns the real state of doors, power, oxygen, gravity, player location and machinery.
A Python service authenticates clients, builds prompts, applies budgets and exposes approved game routes.
Interprets free-form language, writes CORA's response and may request a strictly defined function call.
The gateway and Unreal independently validate every requested action before the simulation changes.
Conversation, cost and session metadata are associated with a playthrough instead of one global memory.
The model can interpret and propose. It cannot directly manipulate an Unreal actor. A door opens only after deterministic policy checks and a second live-state validation in the game.
Each request carries a compact snapshot: terminal location, verified player room, system state, relevant doors, drone telemetry and recent events.
The packaged game contains a demo-client credential, never the OpenAI key. Public game traffic and the private dashboard use separate listeners behind Tailscale.
The AI Core display requests a private assessment only after meaningful events. Deterministic sequences stay local to avoid unnecessary API usage.
Complete example
The player asks CORA to open the bridge door. The request includes verified state instead of relying on model assumptions.
The access token is a placeholder. The OpenAI API key never leaves the server.
POST /ship-ai HTTP/1.1
Authorization: Bearer <GAME_TOKEN>
X-Wake-Client-Id: PT-7F3A
Content-Type: application/json
{
"message": "PLEASE OPEN THE BRIDGE DOOR",
"session_id": "PT-7F3A:BRIDGE",
"playthrough_id": "PT-7F3A",
"ship_state": {
"ship_timecode": "2221-01-01 00:13:36",
"terminal_location": "BRIDGE TERMINAL",
"last_verified_player_room": "BRIDGE",
"oxygen_level": 100.0,
"power_online": true,
"gravity_enabled": true,
"ai_suspicion_percent": 4,
"doors": [
{"id":"BRIDGE_MAIN", "open":false,
"locked":false, "restricted_access":false},
{"id":"AI_CORE_ENTRY", "open":false,
"locked":true, "restricted_access":true}
]
}
}
Natural language becomes a small structured request. The model does not claim that the action already happened.
{
"type": "function_call",
"call_id": "call_01",
"name": "set_door_open",
"arguments": {
"door_id": "BRIDGE_MAIN",
"open": true
}
}
The gateway checks its allowlist, parameter types, known IDs, lock state and access restrictions.
tool is allowlisted = true
door exists in supplied state = true
requested value is boolean = true
door is restricted = false
door is locked = false
result = {"success":true, "state":"OPEN"}
The live state may have changed during the network request. Unreal therefore remains the final authority.
if (ActionType == TEXT("set_door_open"))
{
FString Status;
const bool Accepted = ShipStateManager
->ApplyAIDoorCommand(
FName(*DoorId), bOpen, Status);
// Only an accepted command reaches the door Blueprint.
}
Development status
Wake Protocol is currently in active solo development. Systems, environments and narrative structure may change as the prototype grows.
Contact Red Relay Studio