[gd_scene load_steps=4 format=3] [ext_resource type="PackedScene" path="res://scenes/arena_base.tscn" id="1_base"] [sub_resource type="Shader" id="Shader_stars"] code = "shader_type sky; // Procedural starfield: sparse hash-based stars over near-black space, with a // faint blue nebula glow toward the horizon. void sky() { vec3 dir = EYEDIR; vec3 col = vec3(0.01, 0.012, 0.02); col += vec3(0.02, 0.03, 0.08) * pow(1.0 - abs(dir.y), 3.0); vec3 cell = floor(dir * 300.0); float h = fract(sin(dot(cell, vec3(12.9898, 78.233, 45.164))) * 43758.5453); if (h > 0.998) { vec3 in_cell = fract(dir * 300.0) - 0.5; float star = smoothstep(0.4, 0.0, length(in_cell)); col += vec3(star * (0.5 + fract(h * 999.0))); } COLOR = col; } " [sub_resource type="ShaderMaterial" id="ShaderMaterial_stars"] shader = SubResource("Shader_stars") [node name="Arena" instance=ExtResource("1_base")] sky_material = SubResource("ShaderMaterial_stars")