add export for dedicated server
This commit is contained in:
parent
999de88669
commit
6bcc8757b7
@ -1,45 +1,5 @@
|
||||
[preset.0]
|
||||
|
||||
name="linux"
|
||||
platform="Linux"
|
||||
runnable=true
|
||||
advanced_options=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/linux/cadastery.x86_64"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
||||
[preset.1]
|
||||
|
||||
name="windows"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
@ -56,7 +16,7 @@ encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.1.options]
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
@ -103,6 +63,46 @@ ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debu
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
|
||||
[preset.1]
|
||||
|
||||
name="linux"
|
||||
platform="Linux"
|
||||
runnable=true
|
||||
advanced_options=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/linux/cadastery.x86_64"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.1.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
||||
[preset.2]
|
||||
|
||||
name="mac"
|
||||
@ -352,3 +352,116 @@ open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
||||
[preset.3]
|
||||
|
||||
name="server"
|
||||
platform="Linux"
|
||||
runnable=false
|
||||
advanced_options=true
|
||||
dedicated_server=true
|
||||
custom_features=""
|
||||
export_filter="customized"
|
||||
customized_files={
|
||||
"res://": "strip",
|
||||
"res://assets/textures/ui/": "keep"
|
||||
}
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/server/cadastery.x86_64"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.3.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
||||
[preset.4]
|
||||
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=false
|
||||
advanced_options=true
|
||||
dedicated_server=true
|
||||
custom_features=""
|
||||
export_filter="customized"
|
||||
customized_files={
|
||||
"res://": "strip",
|
||||
"res://assets/textures/ui/": "keep"
|
||||
}
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/server_windows/cadastery.exe"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.4.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
|
||||
@ -34,7 +34,8 @@ func set_local_player_info(username: String) -> void:
|
||||
_local_player_info["name"] = username
|
||||
|
||||
|
||||
func host_game() -> void:
|
||||
func host_game(dedicated: bool = false) -> void:
|
||||
print("Hosting...")
|
||||
_peer = ENetMultiplayerPeer.new()
|
||||
var error := _peer.create_server(DEFAULT_PORT, MAX_PEERS)
|
||||
|
||||
@ -48,14 +49,16 @@ func host_game() -> void:
|
||||
|
||||
multiplayer.set_multiplayer_peer(_peer)
|
||||
|
||||
_load_main()
|
||||
|
||||
if not dedicated:
|
||||
_players[1] = _local_player_info
|
||||
player_connected.emit(1, _local_player_info)
|
||||
|
||||
_load_main()
|
||||
_add_player(multiplayer.get_unique_id())
|
||||
|
||||
|
||||
func join_game(ip: String) -> void:
|
||||
print("Joining " + ip + "...")
|
||||
_peer = ENetMultiplayerPeer.new()
|
||||
var error := _peer.create_client(ip, DEFAULT_PORT)
|
||||
|
||||
@ -78,9 +81,11 @@ func _switch_scene(from: Node, to: PackedScene) -> void:
|
||||
|
||||
var new_scene := to.instantiate()
|
||||
get_tree().get_root().add_child(new_scene)
|
||||
print("Scene loaded")
|
||||
|
||||
|
||||
func _load_main() -> void:
|
||||
print("Loading Main...")
|
||||
_switch_scene($/root/Title, _main_scene)
|
||||
main_loaded.emit()
|
||||
|
||||
@ -89,6 +94,7 @@ func _add_player(peer_id: int) -> void:
|
||||
if not multiplayer.is_server():
|
||||
return
|
||||
|
||||
print("Adding player ", peer_id)
|
||||
var player := _player_scene.instantiate() as Player
|
||||
player.name = str(peer_id)
|
||||
|
||||
@ -100,6 +106,7 @@ func _remove_player(peer_id: int) -> void:
|
||||
if not multiplayer.is_server():
|
||||
return
|
||||
|
||||
print("Removing player ", peer_id)
|
||||
var player_holder: Node = $/root/Main/Players
|
||||
var player := player_holder.get_node_or_null(str(peer_id))
|
||||
if player:
|
||||
@ -108,6 +115,7 @@ func _remove_player(peer_id: int) -> void:
|
||||
|
||||
@rpc("any_peer", "reliable")
|
||||
func _register_player(player_info: Dictionary) -> void:
|
||||
print("Registering player ", player_info)
|
||||
var player_id := multiplayer.get_remote_sender_id()
|
||||
_players[player_id] = player_info
|
||||
player_connected.emit(player_id, player_info)
|
||||
@ -126,6 +134,7 @@ func _on_multiplayer_peer_disconnected(peer_id: int) -> void:
|
||||
|
||||
|
||||
func _on_multiplayer_connected_to_server() -> void:
|
||||
print("Connected to server")
|
||||
var peer_id := multiplayer.get_unique_id()
|
||||
_players[peer_id] = _local_player_info
|
||||
player_connected.emit(peer_id, _local_player_info)
|
||||
|
||||
@ -30,13 +30,16 @@ func _ready() -> void:
|
||||
_camera.make_current()
|
||||
Referencer.player = self
|
||||
Referencer.main_camera = _camera
|
||||
print("Player ", name, " ready")
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if not is_multiplayer_authority():
|
||||
return
|
||||
|
||||
Referencer.player = null
|
||||
Referencer.main_camera = null
|
||||
print("Player ", name, " exiting tree")
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
|
||||
@ -8,6 +8,10 @@ extends Panel
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if OS.has_feature("dedicated_server") or DisplayServer.get_name() == "headless":
|
||||
Networker.host_game(true)
|
||||
return
|
||||
|
||||
_host_button.pressed.connect(_on_host_button_pressed)
|
||||
_join_button.pressed.connect(_on_join_button_pressed)
|
||||
Networker.network_error.connect(_on_networker_network_error)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user