Структура проекта: папки по назначению, карты самодостаточны, инструменты, README

- Перенос: Net→net, Player→player, World/*→maps/{hub,sandbox,backrooms}, core, objects,
  models/*→chasers/{rock,verity} и maps/*/models. Имена внутри папок с .glb не менялись
  (рядом лежат извлечённые текстуры). Все пути, пресеты экспорта и автолоады обновлены.
- Преследователи: rock-follow.gd → chasers/chaser.gd; камень в песочнице теперь инстанс
  chasers/rock/rock.tscn (как Верити).
- Удалён мусор: неиспользуемое небо sunflowers, Tree_01.glb, rock-path.gd, старая
  модель Верити, unwrap_cache (теперь в .gitignore).
- Основной пакет игры 70 КБ (камень и Верити уехали в пакеты карт).
- tools/: export_all.sh, serve_web.py (nginx-подобный dev-сервер), deploy_server.sh,
  test/ (боты, временный проект и сервер). Net: флаг --client для headless-клиента.
- deploy/: боевые nginx.conf и my-world.service, project.godot выделенного сервера.
- README переписан: что есть и чего нет, структура, карты, преследователи, сеть, пакеты,
  деплой, грабли, дорожная карта (телефон).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 17:47:47 +05:00
co-authored by Claude Sonnet 5.5
parent 5ba6466113
commit fc0139dc05
158 changed files with 724 additions and 565 deletions
+141
View File
@@ -0,0 +1,141 @@
[gd_scene format=3 uid="uid://6vc0m7mc73f1"]
[ext_resource type="PackedScene" uid="uid://c7tg5v5vpe77k" path="res://maps/sandbox/models/cyber_office/cyber_office.glb" id="1_2cqfq"]
[ext_resource type="Texture2D" uid="uid://mdxwd8w6hbax" path="res://maps/sandbox/sky/overcast_soil_puresky_2k.hdr" id="2_5vw27"]
[ext_resource type="PackedScene" uid="uid://c3efk6k8xnf57" path="res://player/player.tscn" id="2_h2yge"]
[ext_resource type="PackedScene" uid="uid://cvrj2ay2fq4x8" path="res://maps/sandbox/floor/Floor.glb" id="3_h2yge"]
[ext_resource type="PackedScene" uid="uid://d4evo4b0wv23h" path="res://maps/sandbox/models/building_02.glb" id="4_7mycd"]
[ext_resource type="PackedScene" uid="uid://db05x4f444mr2" path="res://maps/sandbox/models/tower_01/Tower_01.glb" id="5_272bh"]
[ext_resource type="PackedScene" uid="uid://dr2udwp3pu8g1" path="res://maps/sandbox/models/house_02/house_02-col.glb" id="6_5vw27"]
[ext_resource type="AudioStream" uid="uid://ddsynauqeoppw" path="res://maps/sandbox/audio/tron_01.ogg" id="7_272bh"]
[ext_resource type="PackedScene" uid="uid://evml2s8rmerw" path="res://maps/sandbox/models/obelisk_01/Obelisk.glb" id="9_kek77"]
[ext_resource type="Script" uid="uid://cx16mgkh4bldx" path="res://maps/sandbox/forest.gd" id="12_forest"]
[ext_resource type="PackedScene" uid="uid://b6d4btx7xn51j" path="res://maps/sandbox/models/tree_01/Tree_01_low.glb" id="13_treelow"]
[ext_resource type="Script" uid="uid://j5ultotjrstk" path="res://maps/sandbox/birds.gd" id="14_birds"]
[ext_resource type="Script" uid="uid://chtck5eaaddrw" path="res://maps/sandbox/levitate.gd" id="15_levitate"]
[ext_resource type="PackedScene" uid="uid://bmprcwbt78ghq" path="res://maps/sandbox/models/empire_state/Empire-State.glb" id="17_yaehf"]
[ext_resource type="Script" uid="uid://c2k1kj4a2s2su" path="res://maps/sandbox/nav_bake.gd" id="18_navbake"]
[ext_resource type="Script" uid="uid://bu8v0ivhmnykt" path="res://objects/portal.gd" id="19_portal"]
[ext_resource type="PackedScene" path="res://chasers/verity/verity.tscn" id="20_verity"]
[ext_resource type="PackedScene" path="res://chasers/rock/rock.tscn" id="21_rock"]
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_6opy2"]
panorama = ExtResource("2_5vw27")
energy_multiplier = 0.4
[sub_resource type="Sky" id="Sky_5dpsc"]
sky_material = SubResource("PanoramaSkyMaterial_6opy2")
[sub_resource type="Environment" id="Environment_x7k75"]
background_mode = 2
sky = SubResource("Sky_5dpsc")
ssao_enabled = true
ssao_radius = 2.32
ssao_intensity = 3.24
glow_enabled = true
fog_enabled = true
fog_light_color = Color(0.34900904, 0.38130295, 0.42570883, 1)
fog_light_energy = 0.91
fog_sun_scatter = 0.06
fog_density = 0.021
fog_sky_affect = 0.902
adjustment_enabled = true
[node name="Node3D" type="Node3D" unique_id=402787459]
[node name="Architecture" type="Node3D" parent="." unique_id=1485328160]
metadata/_edit_lock_ = true
[node name="building_02" parent="Architecture" unique_id=405025941 instance=ExtResource("4_7mycd")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -12.292704, 0, -5.969286)
[node name="Tower_01" parent="Architecture" unique_id=1436461045 instance=ExtResource("5_272bh")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -12.874907, 9.536743e-07, 21.923906)
[node name="minecraft-house_02-col" parent="Architecture" unique_id=497625491 instance=ExtResource("6_5vw27")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.864338, -0.0029354095, 18.549324)
[node name="Obelisk" parent="Architecture" unique_id=94486605 instance=ExtResource("9_kek77")]
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 78.88046, 25, 38.156742)
script = ExtResource("15_levitate")
amplitude = 5.0
period = 8.0
[node name="rock" parent="Architecture" unique_id=1419147983 instance=ExtResource("21_rock")]
transform = Transform3D(-0.4002386, 0, -0.916411, 0, 1, 0, 0.916411, 0, -0.4002386, 8.31884, -0.0029411316, 40.503094)
sight_limited = true
sight_range = 45.0
sight_fov = 130.0
hearing_radius = 8.0
lose_time = 5.0
wander_radius = 40.0
[node name="cyber_office" parent="Architecture" unique_id=1003431047 instance=ExtResource("1_2cqfq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.9035664, -0.2606399, -24.004528)
[node name="Environment" type="Node3D" parent="." unique_id=786334107]
metadata/_edit_lock_ = true
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Environment" unique_id=1278575418]
stream = ExtResource("7_272bh")
autoplay = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="Environment" unique_id=726373494]
environment = SubResource("Environment_x7k75")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment/WorldEnvironment" unique_id=1584854505]
transform = Transform3D(-0.72657466, -0.6383954, -0.25404838, 0, -0.36974674, 0.92913264, -0.68708754, 0.6750842, 0.26864862, 0, 3.2902045, 0)
light_color = Color(0, 0.24562582, 0.24562573, 1)
light_indirect_energy = 0.921
shadow_enabled = true
shadow_normal_bias = 6.01
shadow_opacity = 0.63
shadow_blur = 7.0
directional_shadow_split_1 = 0.14
directional_shadow_split_2 = 0.185
directional_shadow_max_distance = 186.7
[node name="Floor" parent="Environment" unique_id=1320100733 instance=ExtResource("3_h2yge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.63628197, -0.002937317, 0.7328758)
metadata/_edit_lock_ = true
[node name="Nature" type="Node3D" parent="." unique_id=950189180]
script = ExtResource("12_forest")
tree_scene = ExtResource("13_treelow")
[node name="Birds" type="Node3D" parent="Nature" unique_id=770000001]
script = ExtResource("14_birds")
target_path = NodePath("../../Architecture/Tower_01")
min_radius = 18.0
max_radius = 32.0
min_height = 6.0
max_height = 55.0
bird_scale = 0.9
[node name="CharacterBody3D" parent="." unique_id=365865796 instance=ExtResource("2_h2yge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.0830812, 5.621685, 0.44329834)
[node name="Empire-State" parent="." unique_id=913942978 instance=ExtResource("17_yaehf")]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 188.18842, -0.0029239655, 0.5043459)
[node name="Navigation" type="NavigationRegion3D" parent="." unique_id=1471038126]
script = ExtResource("18_navbake")
exclude = Array[NodePath]([NodePath("../Architecture/rock"), NodePath("../CharacterBody3D")])
[node name="HubPortal" type="Area3D" parent="." unique_id=982018721]
transform = Transform3D(-0.49999985, 0, -0.8660255, 0, 1, 0, 0.8660255, 0, -0.49999985, -14.694777, 7.7547903, 22.85205)
script = ExtResource("19_portal")
target_map = "hub"
target_scene = "res://maps/hub/hub.tscn"
title = "HUB"
color = Color(0.85, 0.9, 1, 1)
[node name="Verity" parent="." instance=ExtResource("20_verity")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 0, 40)
speed = 12.0
sight_limited = true
sight_range = 55.0
sight_fov = 110.0
hearing_radius = 10.0
lose_time = 6.0
wander_radius = 50.0