Initial commit: Transcience MVP
Top-down twin-stick bullet-hell, Godot 4.7, server-authoritative dedicated server with client-side prediction. Clients send input only; the server resolves every hit for both players and enemies (no PvP). - SimWorld: whole simulation as plain RefCounted objects (no nodes, no physics server), ~0.24ms/tick at peak load -- runs headless for free and drives 78 tests in under a second - BulletPool: struct-of-arrays bullet storage, replicated as spawn/despawn events rather than per-tick state - Emitter framework (Ring/AimedSpread/WallGap/ArcSweep) shared by trash enemies and bosses -- a new boss is data in src/content/content.gd, no simulation changes - The Warden of the Fold: stationary 4-phase boss built entirely on that format - Lobby hub with a portal into on-demand dungeon instances; one process hosts the hub plus every concurrent dungeon - Emergency escape: 3s server-owned channel, cancelled by damage - tools/check.sh, test.sh (GUT), smoke.sh (real server + bot clients over ENet), bench.gd; git hooks wired to the same scripts - docs/ARCHITECTURE.md, NETCODE.md, WORKFLOW.md, ROADMAP.md
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
[gd_scene format=3 uid="uid://dqbkylpsatcqm"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://g7qu8ihdt3pd" path="res://addons/gut/gui/about.gd" id="1_bg86c"]
|
||||
[ext_resource type="PackedScene" uid="uid://c5om15m2e70qp" path="res://addons/gut/gui/check_for_update.tscn" id="2_kpic4"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjkn8mhx2fmt1" path="res://addons/gut/gui/GutLogo.tscn" id="3_kpic4"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q8rky"]
|
||||
bg_color = Color(0, 0, 0, 0.49803922)
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_kpic4"]
|
||||
|
||||
[node name="About" type="AcceptDialog" unique_id=1150745302]
|
||||
oversampling_override = 1.0
|
||||
title = "About GUT"
|
||||
position = Vector2i(0, 36)
|
||||
size = Vector2i(1500, 800)
|
||||
visible = true
|
||||
min_size = Vector2i(800, 800)
|
||||
script = ExtResource("1_bg86c")
|
||||
|
||||
[node name="HBox" type="HBoxContainer" parent="." unique_id=1875890740]
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = 1492.0
|
||||
offset_bottom = 751.0
|
||||
alignment = 1
|
||||
|
||||
[node name="MakeRoomForLogo" type="CenterContainer" parent="HBox" unique_id=1274652102]
|
||||
custom_minimum_size = Vector2(200, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBox" unique_id=1594624944]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="CheckForUpdate" parent="HBox/VBoxContainer" unique_id=381385621 instance=ExtResource("2_kpic4")]
|
||||
custom_minimum_size = Vector2(0, 76)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Scroll" type="ScrollContainer" parent="HBox/VBoxContainer" unique_id=1684204946]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="HBox/VBoxContainer/Scroll" unique_id=1217183710]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_q8rky")
|
||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_kpic4")
|
||||
bbcode_enabled = true
|
||||
fit_content = true
|
||||
|
||||
[node name="Logo" parent="." unique_id=2097718136 instance=ExtResource("3_kpic4")]
|
||||
modulate = Color(0.74509805, 0.74509805, 0.74509805, 1)
|
||||
position = Vector2(151, 265)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
active = true
|
||||
disabled = true
|
||||
|
||||
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
|
||||
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
|
||||
[connection signal="verbose_enabled" from="HBox/VBoxContainer/CheckForUpdate" to="." method="_on_check_for_update_verbose_enabled"]
|
||||
[connection signal="meta_clicked" from="HBox/VBoxContainer/Scroll/RichTextLabel" to="." method="_on_rich_text_label_meta_clicked"]
|
||||
[connection signal="meta_hover_ended" from="HBox/VBoxContainer/Scroll/RichTextLabel" to="." method="_on_rich_text_label_meta_hover_ended"]
|
||||
[connection signal="meta_hover_started" from="HBox/VBoxContainer/Scroll/RichTextLabel" to="." method="_on_rich_text_label_meta_hover_started"]
|
||||
[connection signal="pressed" from="Logo" to="." method="_on_logo_pressed"]
|
||||
Reference in New Issue
Block a user