feat(debug): add TestLevel debug scene for playable testing

- scenes/test_level/test_level.tscn — playable test environment (30x30 floor + 4 walls + ramp)
  Floor at y=-1, Player spawn at (0, 1.5, 8), FpsCamera at head height (y=1.7)
  DirectionalLight + WorldEnvironment + UI label overlay (speed/state/chain)
- debug/debug_test_env.sh — launch wrapper for manual playtesting

No code changes: raw physics testbed. Intended to be opened as first scene in Godot window.

Closes #2 (test-level scene task)
This commit is contained in:
2026-06-02 23:15:52 -04:00
parent 6cac1f4032
commit ebb6d1a750
2 changed files with 137 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
[gd_scene load_steps=4 format=3]
[ext_resource type="Script" path="res://debug/test_level_debug.gd" id="1"]
[node name="TestLevel" type="Node3D"]
[node name="DebugRunner" type="Node" parent="."]
script = ExtResource("1")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.92388, -0.25, 0.288675, 0, 0.866025, 0.5, -0.382683, -0.433013, 0.75, 0, 8, 0)
light_color = Color(1, 0.95, 0.85, 1)
light_energy = 1.0
shadow_enabled = true
[node name="StaticFloor" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticFloor"]
shape = SubResource("FloorBox")
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticFloor"]
mesh = BoxMesh.new()
surface_material_override/0 = StandardMaterial3D.new()
[node name="WallNorth" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -15)
[node name="CollisionShape3D" type="CollisionShape3D" parent="WallNorth"]
shape = BoxShape3D.new()
[node name="MeshInstance3D" type="MeshInstance3D" parent="WallNorth"]
mesh = BoxMesh.new()
surface_material_override/0 = StandardMaterial3D.new()
[node name="WallEast" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 3, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="WallEast"]
shape = BoxShape3D.new()
[node name="MeshInstance3D" type="MeshInstance3D" parent="WallEast"]
mesh = BoxMesh.new()
surface_material_override/0 = StandardMaterial3D.new()
[node name="WallWest" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 3, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="WallWest"]
shape = BoxShape3D.new()
[node name="MeshInstance3D" type="MeshInstance3D" parent="WallWest"]
mesh = BoxMesh.new()
surface_material_override/0 = StandardMaterial3D.new()
[node name="Ramp" type="StaticBody3D" parent="."]
transform = Transform3D(0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, -8, -0.4, -2)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ramp"]
shape = BoxShape3D.new()
[node name="MeshInstance3D" type="MeshInstance3D" parent="Ramp"]
mesh = BoxMesh.new()
surface_material_override/0 = StandardMaterial3D.new()
[node name="PlayerSpawn" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 8)
[node name="UI" type="CanvasLayer" parent="."]
[node name="SpeedLabel" type="Label" parent="UI"]
offset_left = 16.0
offset_top = 16.0
offset_right = 360.0
offset_bottom = 48.0
text = "Speed: 0.0 | State: --- | Chain: 0 (+0%)"
[node name="HelpLabel" type="Label" parent="UI"]
offset_left = 16.0
offset_top = 52.0
offset_right = 580.0
offset_bottom = 108.0
text = "WASD Move | Sprint=Shift | Slide=Ctrl+S | Double-Jump=Space twice | Dash=L-Shift | Wall-Jump=Jump at a wall"
[node name="FpsCamera" type="Camera3D" parent="."]
current = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0)
fov = 90.0