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
| Action | Input |
|---|---|
| Move | Left stick or D-Pad |
| Look | Right stick |
| Interact | Cross or Circle near an interactable |
| Return to hub | Start |
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
| Station | System exercised |
|---|---|
| Collision checkpoint | Trigger collision, SaveData flag, gate state |
| Pickup + console | Pickup trigger, GameObject disabling, interactable console |
| Lighting switch | GameObject enable/disable, directional light state |
| Transform Animator relay | Transform states and interaction events |
| Save/load terminal | SaveData write/read/flush/reload and UI feedback |
What to Inspect First
- Open
Scenes/level.json. - Select the Player GameObject and inspect its script properties or native player components.
- Select station triggers and interactables to see Collider, Lua Behaviour, Interactable, and Audio Source usage.
- Open the UI Canvas and inspect the HUD panels and text elements.
- Open Build Settings and confirm
main_menu,hub, andlevelare included. - Run Validate Project and read the Problems panel.
Smoke Test
Use this checklist after changing engine systems:
| Area | Expected result |
|---|---|
| Main menu | Focus appears, button activates, click SFX plays |
| Hub | Station labels reflect SaveData state |
| Movement | Player moves and looks with controller input |
| Interaction | Cross/Circle activates nearby stations |
| Collision | Player cannot walk through blocking level geometry |
| Pickup | Token disappears and unlocks the console path |
| Lighting | Switch toggles the expected light GameObjects |
| Transform Animator | Relay plays action/idle state changes |
| Save/load | Terminal writes and reloads player state |
| Build | Validate 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.