Add reproducible desktop playtest exports
This commit is contained in:
parent
0d050b08cc
commit
179dc841b5
6 changed files with 260 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
# Godot 4+ specific ignores
|
# Godot 4+ specific ignores
|
||||||
.godot/
|
.godot/
|
||||||
/android/
|
/android/
|
||||||
|
/builds/
|
||||||
|
|
|
||||||
89
export_presets.cfg
Normal file
89
export_presets.cfg
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
advanced_options=false
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter="builds/*,playtest/*,scripts/*"
|
||||||
|
export_path="builds/playtest-0.1/windows-x86_64/netfishing.exe"
|
||||||
|
patches=PackedStringArray()
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
seed=0
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
script_export_mode=2
|
||||||
|
|
||||||
|
[preset.0.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=0
|
||||||
|
binary_format/embed_pck=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="0.1.0.0"
|
||||||
|
application/product_version="0.1.0.0"
|
||||||
|
application/company_name=""
|
||||||
|
application/product_name="NETFISHING"
|
||||||
|
application/file_description="NETFISHING Pre-Alpha Playtest 0.1"
|
||||||
|
application/copyright=""
|
||||||
|
application/trademarks=""
|
||||||
|
application/export_angle=0
|
||||||
|
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\nexport DISPLAY=:0\nunzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"\n\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||||
|
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash\nkill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")\nrm -rf \"{temp_dir}\""
|
||||||
|
|
||||||
|
[preset.1]
|
||||||
|
|
||||||
|
name="Linux Desktop"
|
||||||
|
platform="Linux"
|
||||||
|
runnable=true
|
||||||
|
advanced_options=false
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter="builds/*,playtest/*,scripts/*"
|
||||||
|
export_path="builds/playtest-0.1/linux-x86_64/netfishing"
|
||||||
|
patches=PackedStringArray()
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
seed=0
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
script_export_mode=2
|
||||||
|
|
||||||
|
[preset.1.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=0
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
binary_format/architecture="x86_64"
|
||||||
|
texture_format/s3tc_bptc=true
|
||||||
|
texture_format/etc2_astc=false
|
||||||
|
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\nexport DISPLAY=:0\nunzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"\nchmod +x \"{temp_dir}/{exe_name}\"\n\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||||
|
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash\nkill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")\nrm -rf \"{temp_dir}\""
|
||||||
96
playtest/README-PLAYTEST.txt
Normal file
96
playtest/README-PLAYTEST.txt
Normal file
|
|
@ -0,0 +1,96 @@
|
||||||
|
NETFISHING
|
||||||
|
Pre-Alpha Playtest 0.1
|
||||||
|
Version 0.1.0-prealpha
|
||||||
|
|
||||||
|
Thank you for trying this early private playtest.
|
||||||
|
|
||||||
|
NETFISHING is currently a local gameplay prototype for a future
|
||||||
|
multiplayer-first game. Networking and multiplayer are NOT implemented in
|
||||||
|
this build.
|
||||||
|
|
||||||
|
INSTALLATION
|
||||||
|
|
||||||
|
1. Extract the entire ZIP into a new folder.
|
||||||
|
2. Keep the executable and netfishing.pck together.
|
||||||
|
3. Launch netfishing.exe on Windows or netfishing on Linux.
|
||||||
|
|
||||||
|
Windows may show a warning for an unsigned application. This private build is
|
||||||
|
not code signed. Only run a copy received from the playtest organizer.
|
||||||
|
|
||||||
|
Linux users may need to allow execution:
|
||||||
|
|
||||||
|
chmod +x netfishing
|
||||||
|
|
||||||
|
CONTROLS
|
||||||
|
|
||||||
|
Move W / A / S / D or left stick
|
||||||
|
Jump Space
|
||||||
|
Sprint Shift
|
||||||
|
Sneak Ctrl
|
||||||
|
Slow walk Alt
|
||||||
|
Rotate camera Hold right mouse, or use right stick
|
||||||
|
Zoom camera Mouse wheel
|
||||||
|
Cast / withdraw / reel Left mouse
|
||||||
|
Inventory and Logbook Tab
|
||||||
|
Game Menu / back Escape
|
||||||
|
|
||||||
|
FISHING
|
||||||
|
|
||||||
|
- Hold left mouse to select cast distance, then release to cast.
|
||||||
|
- The target preview shows whether the selected landing point is fishable.
|
||||||
|
- While waiting, hold left mouse to withdraw the bobber.
|
||||||
|
- A bite starts the chase automatically.
|
||||||
|
- Hold left mouse to advance the green catch meter.
|
||||||
|
- At barriers, use distinct left-click presses to damage the barrier.
|
||||||
|
- Do not let the red chase meter catch the green meter.
|
||||||
|
- Accessibility auto-click can be enabled in Settings.
|
||||||
|
|
||||||
|
FEATURES TO TRY
|
||||||
|
|
||||||
|
- Movement, jumping, camera rotation, and zoom
|
||||||
|
- Short, medium, and maximum-distance casts
|
||||||
|
- Valid water and invalid land casts
|
||||||
|
- Manual withdrawal before a bite
|
||||||
|
- Barrier-and-chase catching
|
||||||
|
- Accessibility auto-click settings
|
||||||
|
- Catch showcase and fish size variation
|
||||||
|
- Inventory, Logbook, favorites, and sorting
|
||||||
|
- Pelican selling and wallet updates
|
||||||
|
- Save, Continue, New Game, and Delete Save
|
||||||
|
- Game Menu and persistent camera settings
|
||||||
|
- Water-entry recovery from several shores
|
||||||
|
|
||||||
|
SAVES AND SETTINGS
|
||||||
|
|
||||||
|
Progression and settings are stored in Godot's per-user application-data
|
||||||
|
directory, outside this extracted game folder. Delete Save removes progression
|
||||||
|
but preserves settings.
|
||||||
|
|
||||||
|
Windows:
|
||||||
|
%APPDATA%\Godot\app_userdata\NETFISHING\
|
||||||
|
|
||||||
|
Linux:
|
||||||
|
~/.local/share/godot/app_userdata/NETFISHING/
|
||||||
|
|
||||||
|
This is an early save format. Keep expectations modest and report any failure
|
||||||
|
to Continue, save, sell, favorite, or retain an individual fish.
|
||||||
|
|
||||||
|
FEEDBACK
|
||||||
|
|
||||||
|
Please include:
|
||||||
|
|
||||||
|
- Your operating system and whether you used mouse/keyboard or controller
|
||||||
|
- What you were doing when a problem occurred
|
||||||
|
- Whether the issue repeated after restarting
|
||||||
|
- Screenshots or a short recording when useful
|
||||||
|
- How movement, casting, chase pressure, barrier clicking, menus, and camera
|
||||||
|
controls felt
|
||||||
|
|
||||||
|
KNOWN PRE-ALPHA LIMITATIONS
|
||||||
|
|
||||||
|
- Multiplayer/networking is not implemented.
|
||||||
|
- Fish and character art are temporary.
|
||||||
|
- UI and balance values are placeholders.
|
||||||
|
- There is no audio.
|
||||||
|
- There is no installer or automatic updater.
|
||||||
|
- Windows builds are unsigned.
|
||||||
|
|
@ -10,7 +10,8 @@ config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="netfishing"
|
config/name="NETFISHING"
|
||||||
|
config/version="0.1.0-prealpha"
|
||||||
run/main_scene="res://main/main.tscn"
|
run/main_scene="res://main/main.tscn"
|
||||||
config/features=PackedStringArray("4.7", "GL Compatibility")
|
config/features=PackedStringArray("4.7", "GL Compatibility")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
|
||||||
65
scripts/build_playtest.sh
Executable file
65
scripts/build_playtest.sh
Executable file
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
readonly SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
readonly PROJECT_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
|
||||||
|
readonly BUILD_ROOT="${PROJECT_ROOT}/builds/playtest-0.1"
|
||||||
|
readonly WINDOWS_DIR="${BUILD_ROOT}/windows-x86_64"
|
||||||
|
readonly LINUX_DIR="${BUILD_ROOT}/linux-x86_64"
|
||||||
|
readonly README_SOURCE="${PROJECT_ROOT}/playtest/README-PLAYTEST.txt"
|
||||||
|
readonly WINDOWS_ZIP="${BUILD_ROOT}/netfishing-prealpha-0.1-windows-x86_64.zip"
|
||||||
|
readonly LINUX_ZIP="${BUILD_ROOT}/netfishing-prealpha-0.1-linux-x86_64.zip"
|
||||||
|
readonly GODOT_BIN="${GODOT_BIN:-godot}"
|
||||||
|
|
||||||
|
if [[ ! -f "${PROJECT_ROOT}/project.godot" ]]; then
|
||||||
|
echo "error: project.godot was not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "${README_SOURCE}" ]]; then
|
||||||
|
echo "error: playtest README was not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf -- "${BUILD_ROOT}"
|
||||||
|
mkdir -p -- "${WINDOWS_DIR}" "${LINUX_DIR}"
|
||||||
|
|
||||||
|
"${GODOT_BIN}" \
|
||||||
|
--headless \
|
||||||
|
--path "${PROJECT_ROOT}" \
|
||||||
|
--export-release "Windows Desktop" \
|
||||||
|
"${WINDOWS_DIR}/netfishing.exe"
|
||||||
|
|
||||||
|
"${GODOT_BIN}" \
|
||||||
|
--headless \
|
||||||
|
--path "${PROJECT_ROOT}" \
|
||||||
|
--export-release "Linux Desktop" \
|
||||||
|
"${LINUX_DIR}/netfishing"
|
||||||
|
|
||||||
|
for required_file in \
|
||||||
|
"${WINDOWS_DIR}/netfishing.exe" \
|
||||||
|
"${WINDOWS_DIR}/netfishing.pck" \
|
||||||
|
"${LINUX_DIR}/netfishing" \
|
||||||
|
"${LINUX_DIR}/netfishing.pck"; do
|
||||||
|
if [[ ! -s "${required_file}" ]]; then
|
||||||
|
echo "error: expected export output is missing: ${required_file}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
chmod +x -- "${LINUX_DIR}/netfishing"
|
||||||
|
cp -- "${README_SOURCE}" "${WINDOWS_DIR}/README-PLAYTEST.txt"
|
||||||
|
cp -- "${README_SOURCE}" "${LINUX_DIR}/README-PLAYTEST.txt"
|
||||||
|
|
||||||
|
(
|
||||||
|
cd -- "${BUILD_ROOT}"
|
||||||
|
zip -X -q -r "$(basename -- "${WINDOWS_ZIP}")" windows-x86_64
|
||||||
|
zip -X -q -r "$(basename -- "${LINUX_ZIP}")" linux-x86_64
|
||||||
|
sha256sum \
|
||||||
|
"$(basename -- "${WINDOWS_ZIP}")" \
|
||||||
|
"$(basename -- "${LINUX_ZIP}")" \
|
||||||
|
> SHA256SUMS
|
||||||
|
)
|
||||||
|
|
||||||
|
echo "Playtest packages created in ${BUILD_ROOT}"
|
||||||
|
|
@ -60,6 +60,13 @@ layout_mode = 2
|
||||||
text = "A cozy social fishing game"
|
text = "A cozy social fishing game"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="PlaytestLabel" type="Label" parent="Center/MainPanel/Margin/Content"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0.682, 0.733, 0.761, 1)
|
||||||
|
theme_override_font_sizes/font_size = 13
|
||||||
|
text = "Pre-Alpha Playtest 0.1"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="Spacer" type="Control" parent="Center/MainPanel/Margin/Content"]
|
[node name="Spacer" type="Control" parent="Center/MainPanel/Margin/Content"]
|
||||||
custom_minimum_size = Vector2(0, 12)
|
custom_minimum_size = Vector2(0, 12)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue