---
title: "Agent-native authoring over MCP: Gessa vs Unity vs Unreal"
description: "Gessa exposes one authoring capability surface to a human, an agent, an MCP client, and the SDK equally, and is honest that its physics-family authoring depth is thinner than either competitor and agent authoring is bounded to that surface."
engineVersion: v1.0.234
date: 2026-09-28
license: "(c) Gessa, proprietary. Cite with attribution to https://gessa.ai/docs/. Terms: https://gessa.ai/terms/."
canonical: https://gessa.ai/docs/compare/agent-native-authoring/
---

# Agent-native authoring over MCP: Gessa vs Unity vs Unreal

_Last verified 2026-09-06 against engine v1.0.232. Competitor sources were accessed 2026-09-06; every Gessa cell binds to the generated engine reference and the build fails if a bound surface disappears._

Gessa is authored over the Model Context Protocol: an agent calls the same capability surface a human does, through the same action catalog and the same semantic-patch layer, and the two are held to a parity floor by the build. Neither Unity nor Unreal ships a first-party MCP or agent-native authoring surface; both author through a human-facing editor and scripting system (C# and Visual Scripting in Unity, Blueprints and C++ in Unreal). The honest tradeoff is that Gessa's physics-family authoring depth is thinner than either competitor, and agent authoring is bounded to the published capability surface rather than arbitrary engine-source edits.

The MCP tool surface is in [the MCP tools reference](../reference/mcp-tools.md); the action verbs are in [the action catalog reference](../reference/action-catalog.md), and behavior authoring is explained in [Script IR and GessaScript](../explanation/script-ir-and-gessascript.md).

## Where Gessa stands

| Capability | Gessa | Unity | Unreal |
| --- | --- | --- | --- |
| Author over the Model Context Protocol | {% gessaCell status="supported" binds="check:mcp-coverage" /%} | No first-party MCP authoring {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/scripting.html" accessed="2026-09-06" /%} | No first-party MCP authoring {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine" accessed="2026-09-06" /%} |
| Human and agent share one capability surface | {% gessaCell status="supported" binds="check:ai-mcp-sdk-authoring-parity" /%} | Human scripting only {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/scripting.html" accessed="2026-09-06" /%} | Human scripting only {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine" accessed="2026-09-06" /%} |
| Component authoring with the same verbs a human uses | {% gessaCell status="supported" binds="check:component-verb-ai-parity" /%} | Editor and scripting {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/scripting.html" accessed="2026-09-06" /%} | Editor and Blueprints {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine" accessed="2026-09-06" /%} |
| Behavior authoring via semantic patch over a canonical IR | {% gessaCell status="supported" binds="check:script-semantic-patch-coverage" /%} | Visual scripting and C# {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/scripting.html" accessed="2026-09-06" /%} | Blueprints visual scripting {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine" accessed="2026-09-06" /%} |
| World build from a typed spec | {% gessaCell status="supported" binds="check:world-build-contract-catalog" /%} | Editor authoring {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/scripting.html" accessed="2026-09-06" /%} | Editor authoring {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine" accessed="2026-09-06" /%} |
| One action catalog for human, agent, MCP, and SDK | {% gessaCell status="supported" binds="check:action-catalog-coverage" /%} | No unified agent catalog {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/scripting.html" accessed="2026-09-06" /%} | No unified agent catalog {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine" accessed="2026-09-06" /%} |
| Physics-family authoring depth | {% gessaCell status="partial" binds="component.joint.contract.v1" /%} | Supported {% competitorCell engine="unity" version="6000.3" url="https://docs.unity3d.com/6000.3/Documentation/Manual/PhysicsSection.html" accessed="2026-09-06" /%} | Supported {% competitorCell engine="unreal" version="5.8" url="https://dev.epicgames.com/documentation/en-us/unreal-engine/physics-in-unreal-engine" accessed="2026-09-06" /%} |

The MCP, parity, component-verb, semantic-patch, world-build, and action-catalog rows are backed by the `check:mcp-coverage`, `check:ai-mcp-sdk-authoring-parity`, `check:component-verb-ai-parity`, `check:script-semantic-patch-coverage`, `check:world-build-contract-catalog`, and `check:action-catalog-coverage` gates in the build; the physics-depth row binds to the `JointComponent` contract, which is itself partial.

## The gaps, named here

- Physics-family authoring depth is thinner than either competitor. The `JointComponent` contract carries a limited set of joints and no articulation body, so the physics-depth row reads partial. The full physics comparison, including the families Gessa does not simulate, is on the [deterministic physics page](deterministic-physics.md).
- Agent authoring is bounded to the capability surface. An agent authors through the same published action catalog and semantic-patch layer a human uses; it does not edit engine source or reach outside that surface. The parity floor is a floor for the authoring surface, not a claim that an agent can do anything a native engine programmer can do.
- Parity is proven for authoring, not for every runtime subsystem. The parity gates cover the authoring capabilities; they do not assert that every downstream renderer or physics family exists, which is why this page names the physics-depth concession on the same page.

## Where Unity and Unreal are ahead

- Unreal's Blueprints visual scripting and C++ give designers and programmers a deep, mature, human-facing authoring system with a very large surface. See the Unreal Blueprints documentation cited in the table.
- Unity's C# scripting and Visual Scripting are a mature human-facing authoring path with a large ecosystem. See the Unity scripting documentation cited in the table.
- Both engines carry far broader physics, rendering, and animation family catalogs than Gessa, so a human author there can reach depth Gessa does not offer.

Neither competitor, though, exposes a first-party MCP or agent-native authoring surface with a human-and-agent parity floor, which is the wedge this page leads with. The other comparison axes are in the [compare index](index.md).
