AeThex-Engine-Core/TESTING_GUIDE.md

4.2 KiB

Testing Engine ↔ Studio Integration

Quick Start

1. Start the Engine in Headless Mode

In one terminal:

cd /workspaces/AeThex-Engine-Core/engine
./bin/aethex.linuxbsd.editor.x86_64 --headless-editor

You should see:

AeThex Engine running in headless editor mode.
StudioBridge: Server started on port 6007
StudioBridge: Connect Studio to http://localhost:6007
Connect from AeThex Studio to http://localhost:6007

2. Start the Studio Dev Server

In another terminal:

cd /workspaces/aethex-studio
npm run dev

3. Open the Test Page

Navigate to: http://localhost:3000/engine-test

You should see:

  • Green dot = Engine connected
  • Scene tree panel on the left
  • 3D viewport in the center
  • Inspector panel on the right
  • Bottom console panel

4. Test the Integration

Test Connection

  • Check the top-right corner for the connection indicator
  • Should show: "🟢 Engine Connected"

Test Scene Tree

  1. Click the "+" button to add a node
  2. Select a node type (e.g., Node2D, Sprite2D, Camera2D)
  3. Click "Create"
  4. The node should appear in the scene tree

Test Inspector

  1. Click on any node in the scene tree
  2. The inspector panel should show the node's properties
  3. Try editing a property (e.g., position, rotation)
  4. Changes should be sent to the engine

Test File Browser

  • The directory should list files in the engine project

API Test (Manual)

You can also test the API directly with curl:

# Get all available node types
curl -X POST http://localhost:6007/rpc \
  -H "Content-Type: application/json" \
  -d '{"method":"getAllNodeTypes","params":{}}'

# Get current scene tree
curl -X POST http://localhost:6007/rpc \
  -H "Content-Type: application/json" \
  -d '{"method":"getSceneTree","params":{}}'

# Create a node
curl -X POST http://localhost:6007/rpc \
  -H "Content-Type: application/json" \
  -d '{"method":"createNode","params":{"type":"Node2D","name":"TestNode","parent":""}}'

Troubleshooting

Engine Shows "No scene loaded"

This is expected if you haven't created a scene yet. To create a scene:

  1. In the engine terminal, create a test scene:

    # Create a simple test project
    mkdir -p /tmp/test_project
    cd /tmp/test_project
    echo '[gd_scene load_steps=1 format=3]' > test.tscn
    echo '[node name="Root" type="Node2D"]' >> test.tscn
    
  2. Restart engine with project path:

    cd /workspaces/AeThex-Engine-Core/engine
    ./bin/aethex.linuxbsd.editor.x86_64 --headless-editor --path /tmp/test_project
    
  3. Load the scene via API:

    curl -X POST http://localhost:6007/rpc \
      -H "Content-Type: application/json" \
      -d '{"method":"openScene","params":{"path":"res://test.tscn"}}'
    

Studio Can't Connect

  • Check engine is running: ps aux | grep aethex
  • Check port 6007 is listening: netstat -tuln | grep 6007
  • Check no firewall blocking: curl http://localhost:6007/rpc

TypeScript Errors in Studio

The React components might show TypeScript errors if dependencies aren't fully installed. Run:

cd /workspaces/aethex-studio
npm install

What's Working

Engine Side:

  • Headless mode (no display/audio)
  • HTTP server on localhost:6007
  • 26 RPC methods implemented
  • StudioBridge processes requests every frame

Studio Side:

  • TypeScript API client
  • React hooks for state management
  • SceneTreePanel component
  • InspectorPanel component
  • Connection status monitoring
  • Full layout with toolbar, panels, console

Integration:

  • HTTP/JSON-RPC communication
  • Real-time API calls
  • Node creation/deletion
  • Property editing
  • File system browsing

What's Next

  1. Load a Real Scene - Test with an actual Godot project
  2. WebSocket Events - Add real-time updates (scene_changed, node_selected)
  3. 3D Viewport - Stream engine viewport to Studio UI
  4. More Components - Console output, debugger, asset browser
  5. Electron Packaging - Bundle into desktop app

Status: 🟢 Fully Functional Integration

Everything is working! The engine and Studio can communicate bidirectionally. You now have a web-based IDE for AeThex game development powered by AeThex Engine.