Skip to main content

First Person Tour

The First Person Tour is the basic reference project for Polygon Engine. It is not only a demo level; it is a compact test bed for the editor workflow, Lua scripting, native components, UI canvas, SaveData, audio, animation, lighting, collision, and PS1 build validation. Use Advanced Feature Lab for the advanced animation, Timeline, Rooms/Portals and navigation acceptance path.

Use it when you want to understand how the engine expects a project to be assembled.

The copy inside the Polygon Engine installation is a read-only template. From the Project Hub, create an editable copy in a user-selected project folder. Build, import, cache, and save output belongs to that copy, never to the installed template.

Project Flow

Scenes/main_menu.json
-> title UI, logo image, focusable button, music, click SFX

Scenes/hub.json
-> station checklist, save-data labels, clear-save flow

Scenes/level.json
-> first-person tour with triggers, pickups, gates, lights, animator, save/load

Scenes/first_person_native.json
-> clean native first-person controller setup

Scenes/third_person.json
-> native third-person controller and camera-zone setup

The scripted tour follows Main Menu -> Hub -> Level -> Hub. Those three scenes are the default disc build. first_person_native and third_person are reference scenes for focused inspection and validation; add one to Build Settings only when testing that alternative controller setup.

Controls

ActionInput
MoveLeft stick or D-Pad
LookRight stick
InteractCross or Circle near an interactable
Return to hubStart

The native player input components expose button names in the Inspector, so projects can adjust run/interact behavior without editing runtime code.

When testing the PS1 build in DuckStation, set Port 1 to an Analog Controller / DualShock and enable Automatically Enable Analog Mode. If the runtime still reports digital mode, press the mapped Analog/Guide button. The level displays this instruction until both sticks are available.

Scenes

Scenes/main_menu.json

Demonstrates:

  • authored UI canvas,
  • button focus,
  • menu music,
  • click SFX,
  • Lua scene loading through SceneManager.LoadScene().

Main script:

Assets/Scripts/menu_controller.lua

Scenes/hub.json

Demonstrates:

  • SaveData-driven station labels,
  • UI navigation,
  • hover/click audio,
  • clear-save flow,
  • loading the playable level.

Main script:

Assets/Scripts/hub_controller.lua

Scenes/level.json

Demonstrates:

  • first-person movement,
  • primitive level geometry,
  • colliders and triggers,
  • interaction stations,
  • pickup state,
  • gate unlocking,
  • light toggling,
  • animation relay,
  • particles,
  • audio feedback,
  • memory-card style SaveData save/load.

Main scripts include:

fps_player.lua
station_checkpoint.lua
pickup_controller.lua
console_controller.lua
light_switch.lua
animator_station.lua
terminal_controller.lua
gate_controller.lua

Scenes/first_person_native.json

Shows a cleaner first-person setup using native components instead of the full Lua tour stack:

  • Player Input,
  • Player Motor,
  • Character Controller,
  • First Person Controller,
  • Interaction Ray,
  • Spawn Point,
  • Camera Rig.

Use this scene as the base for a new first-person project.

Scenes/third_person.json

Shows a native third-person setup:

  • visible player mesh,
  • Player Input,
  • Player Motor,
  • Character Controller,
  • Third Person Controller,
  • Player Animator,
  • Camera Rig,
  • Camera Zone.

Use this scene to understand follow/orbit camera behavior and player animation mapping.

Station Tour

StationSystem exercised
Collision checkpointTrigger collision, SaveData flag, gate state
Pickup + consolePickup trigger, GameObject disabling, interactable console
Lighting switchGameObject enable/disable, directional light state
Transform Animator relayTransform states and interaction events
Save/load terminalSaveData write/read/flush/reload and UI feedback

What to Inspect First

  1. Open Scenes/level.json.
  2. Select the Player GameObject and inspect its script properties or native player components.
  3. Select station triggers and interactables to see Collider, Lua Behaviour, Interactable, and Audio Source usage.
  4. Open the UI Canvas and inspect the HUD panels and text elements.
  5. Open Build Settings and confirm main_menu, hub, and level are included.
  6. Run Validate Project and read the Problems panel.

Smoke Test

Use this checklist after changing engine systems:

AreaExpected result
Main menuFocus appears, button activates, click SFX plays
HubStation labels reflect SaveData state
MovementPlayer moves and looks with controller input
InteractionCross/Circle activates nearby stations
CollisionPlayer cannot walk through blocking level geometry
PickupToken disappears and unlocks the console path
LightingSwitch toggles the expected light GameObjects
Transform AnimatorRelay plays action/idle state changes
Save/loadTerminal writes and reloads player state
BuildValidate Project passes without hard errors

First Person Tour is the editor's template label; its project README calls the game Polygon: Signal Station. The default build includes main_menu, hub, and level. The native first-person and third-person scenes remain inspection examples and are not automatically included in that default disc. Use the copied project's LEARNING_PATH.md to map each station to its assets and scripts. Its smoke-test instructions are a checklist, not evidence that the exact installed build has passed an interactive hardware run.