Save workspace artifacts: character-controller, gdextension scaffold, network scripts, map-pipeline, server config
Includes code from task workspaces that was never pushed: - client/characters/ — fps_character_controller.gd (400 lines), fps_camera.gd, input_handler.gd - gdextension/simulation/ — C++ GDExtension scaffold: entity, movement, hit detection, simulation server, state serializer, bitstream (14 files) - scripts/network/ — ENet-based network_manager.gd, server/client_main.gd, player.gd - scripts/map_packaging/ — PCK pipeline: pack_map.gd, map_downloader.gd, map_registry_server.py, README - scripts/config/ — server_config.gd (480 lines) - scenes/ — client_main, server_main, player, test_range - project.godot, export_presets.cfg
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
; Tactical Shooter — Default Server Configuration
|
||||
; Godot ConfigFile format (INI-style). Edit this file to tune server behaviour.
|
||||
; Load path: config://default_server_config.cfg (res:// path in Godot)
|
||||
; Override at runtime by placing server_config.cfg next to the binary or via
|
||||
; the SERVER_CFG environment variable.
|
||||
;
|
||||
; Sections marked [*] are defaults used at first run — they are written into
|
||||
; the working-dir override if one doesn't exist, so the server always has
|
||||
; a complete config.
|
||||
|
||||
[server]
|
||||
; Human-readable server name shown in the browser / scoreboard.
|
||||
server_name="Tactical Shooter Server"
|
||||
; Short description exposed to the server browser.
|
||||
description="A tactical shooter server running on Godot 4 / ENet"
|
||||
; Interface to bind to. Use "0.0.0.0" for all interfaces, "127.0.0.1" for local only.
|
||||
bind_ip="0.0.0.0"
|
||||
; Gameplay port. Default: 34197 (ephemeral range in IANA-ish neighbourhood).
|
||||
port=34197
|
||||
; Maximum concurrent players. 2-32 recommended; ENet max is 4095 per host.
|
||||
max_players=16
|
||||
; Server password. Empty = no password. Clients must supply this to connect.
|
||||
password=""
|
||||
; Simulation tick rate in Hz. Must match physics/common/physics_ticks_per_second.
|
||||
; The GDExtension core runs at this rate. 128 is standard for competitive FPS.
|
||||
tick_rate=128
|
||||
|
||||
[game]
|
||||
; Round time in seconds. 0 = unlimited. 600 = 10 minutes.
|
||||
round_time_seconds=600
|
||||
; Warmup period before round start, in seconds.
|
||||
warmup_time_seconds=60
|
||||
; Whether teammates can damage each other.
|
||||
friendly_fire=false
|
||||
; Damage multiplier applied to friendly fire damage (only if friendly_fire=true).
|
||||
ff_damage_multiplier=0.5
|
||||
; World gravity (negative = downward). Godot default is -9.8. Competitive FPS
|
||||
; commonly uses -20 to -25 for snappier feel.
|
||||
gravity=-24.0
|
||||
; Respawn delay in seconds after a player dies.
|
||||
respawn_time_seconds=5.0
|
||||
; Whether dead players can spectate alive teammates.
|
||||
spectate_enabled=true
|
||||
|
||||
[movement]
|
||||
; Movement parameters exposed to the GDExtension SimulationServer.
|
||||
; These match the config accepted by SimulationServer.set_movement_config().
|
||||
walk_speed=5.0
|
||||
sprint_speed=7.0
|
||||
crouch_speed=2.0
|
||||
jump_velocity=6.0
|
||||
acceleration=20.0
|
||||
air_acceleration=4.0
|
||||
friction=8.0
|
||||
|
||||
[match]
|
||||
; Rounds needed to win the match. Best-of-N means (2*win_limit-1) max rounds.
|
||||
win_limit=3
|
||||
; Match time limit in seconds. 0 = unlimited.
|
||||
time_limit_seconds=0
|
||||
; Map rotation mode: "sequence" (cycle in order), "vote" (player vote), "random".
|
||||
map_rotation_mode="sequence"
|
||||
; Comma-separated list of map scene resources to rotate through.
|
||||
; Relative to the res://scenes/map/ directory.
|
||||
; Example: "test_range, warehouse, compound"
|
||||
maps="test_range"
|
||||
|
||||
[rcon]
|
||||
; Remote console (admin access while server is running).
|
||||
; This is wired to the future build:rcon system. Disabled until then.
|
||||
enabled=false
|
||||
; RCON password — must be non-empty and at least 8 chars when enabled.
|
||||
password=""
|
||||
; RCON listener port (typically different from game port).
|
||||
port=34198
|
||||
|
||||
[logging]
|
||||
; Log level: "debug", "info", "warn", "error", "fatal".
|
||||
log_level="info"
|
||||
; Log file path. Empty = stdout only. Relative paths are relative to the binary.
|
||||
log_file=""
|
||||
|
||||
[teams]
|
||||
; Number of teams (2 for classic TDM, 4 for FFA squads, etc.).
|
||||
team_count=2
|
||||
; Maximum players per team. Total = team_count * players_per_team.
|
||||
players_per_team=8
|
||||
Reference in New Issue
Block a user