mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-11 19:03:43 +00:00
18fdb0f232
Retraining from scratch removes the constraint that blocked these: the existing checkpoints in Game/bots/promoted/ no longer need byte-identical geometry. - Fix the goal aperture constants (were 1.85/1.65, now match objects/goal.tscn's actual sensor exactly at 1.75/1.5) so a ball crossing the visible edge can't fail to score. - Cut a real navigable hole in each end wall's collision (_build_end_wall_colliders), replacing the previous solid box — the ball now genuinely enters the net instead of triggering the sensor a hair before hitting a solid wall. Correct for both FLOOR and ELEVATED goal modes via _goal_surround_bounds. A separate, slightly wider GOAL_VISUAL_APERTURE_* pair keeps the collision hole exact while still giving goal.gd's bezel/rim frame clearance to be seen against the hull cut. - Resize the play volume 1.5x (INNER_HALF_X/Z/HEIGHT 12/18/12 -> 18/27/18) to comfortably fit a 5v5 roster: updates every hand-authored literal in arena_boundary.tscn/arena_base.tscn/the elevated arena variants that doesn't derive from those constants, adds 5 spawn markers per team, and rescales ship_observations.gd's normalization scales and arena_02's cosmetic decoration/nebula-dust shader uniforms to match. - Bake the ~170 runtime-generated CollisionShape3D nodes into the scene via a new bake_colliders()/tools/bake_arena_boundary.gd instead of rebuilding them on every load — a real load-time cost repeated in every parallel headless training env. Colliders must be direct children of the StaticBody3D to register at all, so bake_colliders() parents them onto self and tags them with a group for idempotent re-baking, rather than grouping them under an intermediate container node. _ready() self-heals: it skips regenerating only when an existing bake's goal_mode metadata matches the current one, so the FLOOR-mode bake in the shared scene is never silently reused by an ELEVATED arena variant.
104 lines
3.7 KiB
Plaintext
104 lines
3.7 KiB
Plaintext
[gd_scene load_steps=6 format=3]
|
|
|
|
[ext_resource type="Script" path="res://scripts/arena.gd" id="1_iywne"]
|
|
[ext_resource type="PackedScene" path="res://objects/arena_boundary.tscn" id="2_bndry"]
|
|
[ext_resource type="PackedScene" uid="uid://cofdcxo5170rs" path="res://objects/goal.tscn" id="6_p57ef"]
|
|
|
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_base"]
|
|
|
|
[sub_resource type="Sky" id="Sky_base"]
|
|
sky_material = SubResource("ProceduralSkyMaterial_base")
|
|
|
|
[sub_resource type="Environment" id="Environment_base"]
|
|
background_mode = 2
|
|
sky = SubResource("Sky_base")
|
|
ambient_light_source = 2
|
|
ambient_light_color = Color(0.55, 0.6, 0.75, 1)
|
|
ambient_light_energy = 0.4
|
|
glow_enabled = true
|
|
glow_levels/1 = 0.0
|
|
glow_levels/2 = 0.4
|
|
glow_levels/3 = 0.8
|
|
glow_levels/4 = 0.6
|
|
glow_levels/5 = 0.2
|
|
glow_intensity = 0.9
|
|
glow_strength = 1.2
|
|
glow_bloom = 0.05
|
|
glow_blend_mode = 1
|
|
glow_hdr_threshold = 1.0
|
|
glow_hdr_scale = 2.0
|
|
adjustment_enabled = true
|
|
adjustment_brightness = 1.0
|
|
adjustment_contrast = 1.05
|
|
adjustment_saturation = 1.08
|
|
|
|
[node name="Arena" type="Node3D"]
|
|
script = ExtResource("1_iywne")
|
|
|
|
[node name="Boundary" parent="." instance=ExtResource("2_bndry")]
|
|
field_tint = Color(0.5, 0.7, 1, 1)
|
|
field_intensity = 0.09
|
|
|
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
|
transform = Transform3D(0.866025, -0.383022, 0.321394, 0, 0.642788, 0.766044, -0.5, -0.663414, 0.55667, 0, 11, 0)
|
|
shadow_enabled = true
|
|
|
|
[node name="FillLight" type="DirectionalLight3D" parent="."]
|
|
transform = Transform3D(-0.866025, -0.383022, -0.321394, 0, 0.642788, 0.766044, 0.5, -0.663414, 0.55667, 0, 11, 0)
|
|
light_color = Color(0.55, 0.65, 0.85, 1)
|
|
light_energy = 0.4
|
|
shadow_enabled = false
|
|
|
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
environment = SubResource("Environment_base")
|
|
|
|
[node name="ReflectionProbe" type="ReflectionProbe" parent="."]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9, 0)
|
|
size = Vector3(38, 20, 58)
|
|
box_projection = true
|
|
update_mode = 0
|
|
|
|
[node name="GoalTeam0" parent="." instance=ExtResource("6_p57ef")]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.79, 27)
|
|
|
|
[node name="GoalTeam1" parent="." instance=ExtResource("6_p57ef")]
|
|
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0.79, -27)
|
|
team = 1
|
|
|
|
[node name="BallSpawn" type="Marker3D" parent="."]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
|
|
|
[node name="SpawnsTeam0" type="Node3D" parent="."]
|
|
|
|
[node name="Spawn1" type="Marker3D" parent="SpawnsTeam0"]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 2.8, 20.25)
|
|
|
|
[node name="Spawn2" type="Marker3D" parent="SpawnsTeam0"]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 2.8, 20.25)
|
|
|
|
[node name="Spawn3" type="Marker3D" parent="SpawnsTeam0"]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.8, 20.25)
|
|
|
|
[node name="Spawn4" type="Marker3D" parent="SpawnsTeam0"]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 2.8, 20.25)
|
|
|
|
[node name="Spawn5" type="Marker3D" parent="SpawnsTeam0"]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 2.8, 20.25)
|
|
|
|
[node name="SpawnsTeam1" type="Node3D" parent="."]
|
|
|
|
[node name="Spawn1" type="Marker3D" parent="SpawnsTeam1"]
|
|
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -9, 2.8, -20.25)
|
|
|
|
[node name="Spawn2" type="Marker3D" parent="SpawnsTeam1"]
|
|
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -4.5, 2.8, -20.25)
|
|
|
|
[node name="Spawn3" type="Marker3D" parent="SpawnsTeam1"]
|
|
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 2.8, -20.25)
|
|
|
|
[node name="Spawn4" type="Marker3D" parent="SpawnsTeam1"]
|
|
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 4.5, 2.8, -20.25)
|
|
|
|
[node name="Spawn5" type="Marker3D" parent="SpawnsTeam1"]
|
|
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 9, 2.8, -20.25)
|