Структура проекта: папки по назначению, карты самодостаточны, инструменты, 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
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://280pvcvxt2n2"
path="res://.godot/imported/Guitar.ogg-a9c649256b934e43412c17ea4e1fd302.oggvorbisstr"
[deps]
source_file="res://chasers/rock/Guitar.ogg"
dest_files=["res://.godot/imported/Guitar.ogg-a9c649256b934e43412c17ea4e1fd302.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
Binary file not shown.
+45
View File
@@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cowp33ejxcfcl"
path="res://.godot/imported/Rock.glb-d2a8f3a84a2ecdbbc2d73c9b22190137.scn"
[deps]
source_file="res://chasers/rock/Rock.glb"
dest_files=["res://.godot/imported/Rock.glb-d2a8f3a84a2ecdbbc2d73c9b22190137.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1
gltf/texture_map_mode=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@@ -0,0 +1,44 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bx6t5621iqw7f"
path.s3tc="res://.godot/imported/Rock_22ee8cdbd4ccc631cd7c804ab4ebca15.jpg-4f14ab3f29d2ef2273e9da4765cef118.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "d87e4757e8f4306abfb2713939bf67fa"
}
[deps]
source_file="res://chasers/rock/Rock_22ee8cdbd4ccc631cd7c804ab4ebca15.jpg"
dest_files=["res://.godot/imported/Rock_22ee8cdbd4ccc631cd7c804ab4ebca15.jpg-4f14ab3f29d2ef2273e9da4765cef118.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
+19
View File
@@ -0,0 +1,19 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://chasers/chaser.gd" id="1_script"]
[ext_resource type="PackedScene" uid="uid://cowp33ejxcfcl" path="res://chasers/rock/Rock.glb" id="2_model"]
[ext_resource type="AudioStream" uid="uid://280pvcvxt2n2" path="res://chasers/rock/Guitar.ogg" id="3_audio"]
[node name="Rock" type="Node3D"]
script = ExtResource("1_script")
[node name="Model" parent="." instance=ExtResource("2_model")]
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."]
height = 5.0
radius = 2.0
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Model"]
stream = ExtResource("3_audio")
autoplay = true
max_distance = 30.0