bootstrap: finish project bootstrap — scale test, MPFB character, build docs
- Static-mesh scale test passes: 1 m = 100.00 cm, origin preserved, axis mapping east→+X / north→−Y / up→+Z (named presets ue_metric_v1 both sides). - MPFB 2.0.18 acceptance passes: generated human + standard 137-bone rig with weights + v2 skin baked to 1024² diffuse; imports as SkeletalMesh with Skeleton, Material, and Texture2D in /Game/Test/Character. - MPFB headless requires XDG_CONFIG_HOME at the Flatpak config tree; documented in Art/blender/README.md, probe in Tools/addon_compat_probe.py. - Docs/build.md completed: fresh-checkout build, packaging, headless checks. - Docs/setup.md reconciled with reality; ROADMAP/bootstrap closed out.
This commit is contained in:
1 parent
01939de9a0
commit
1c6b956435
21 files changed
+614
-33
No files matched your search
+62
-4
@@ -1,6 +1,6 @@
|
||||
# Build
|
||||
|
||||
Fresh-checkout build procedure. To be completed once the pinned engine is installed and a blank project has been packaged — see [setup.md](setup.md). Until then this file records only the constraints that are already known.
|
||||
Fresh-checkout build procedure. Completed 2026-11-07 after the pinned engine was installed and a blank `Game/GigLine` build was packaged and launch-tested.
|
||||
|
||||
## Constraints
|
||||
|
||||
@@ -8,14 +8,72 @@ Fresh-checkout build procedure. To be completed once the pinned engine is instal
|
||||
- Build output (`Binaries/`, `Intermediate/`, `Saved/`, `DerivedDataCache/`) is never committed.
|
||||
- Large content is LFS-tracked, so a fresh clone needs `git lfs install && git lfs pull` before any build.
|
||||
|
||||
## Procedure (placeholder)
|
||||
## Engine
|
||||
|
||||
Pinned install: **Unreal Engine 5.8.4** (CL 58902052, promoted build) at
|
||||
`/run/media/system/DATA/Engines/UE_5.8.4`. The engine bundles **no** Linux clang; the system clang (23.1.4, Fedora 45) is the game-code toolchain. Game targets must use `BuildSettingsVersion.V7` to share the installed editor's build environment.
|
||||
|
||||
## Fresh-checkout build
|
||||
|
||||
```bash
|
||||
git clone <remote> gig-line && cd gig-line
|
||||
git lfs install && git lfs pull
|
||||
# engine path, project generation, build, and packaging commands — fill in after setup
|
||||
Tools/check-lfs.sh # must pass before any content build
|
||||
|
||||
# Compile the project's editor target (first build also proves the toolchain)
|
||||
cd /run/media/system/DATA/Engines/UE_5.8.4
|
||||
Engine/Build/BatchFiles/Linux/Build.sh GigLineEditor Linux Development \
|
||||
-project="$PWD/../../Documents/06-games/gig-line/Game/GigLine/GigLine.uproject" \
|
||||
-WaitMutex
|
||||
# Expected tail: "Result: Succeeded"; module binary lands in
|
||||
# Game/GigLine/Binaries/Linux/libUnrealEditor-GigLine.so
|
||||
|
||||
# Open in the editor (GUI, Vulkan)
|
||||
./Engine/Binaries/Linux/UnrealEditor \
|
||||
/run/media/system/DATA/Documents/06-games/gig-line/Game/GigLine/GigLine.uproject
|
||||
```
|
||||
|
||||
Adapt the `-project=` path to the actual checkout location.
|
||||
|
||||
## Package a Linux build
|
||||
|
||||
```bash
|
||||
cd /run/media/system/DATA/Engines/UE_5.8.4
|
||||
Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \
|
||||
-project="/run/media/system/DATA/Documents/06-games/gig-line/Game/GigLine/GigLine.uproject" \
|
||||
-noP4 -platform=Linux -clientconfig=Development \
|
||||
-cook -allmaps -build -stage -pak \
|
||||
-archive -archivedirectory="/run/media/system/DATA/Builds/GigLine" \
|
||||
-unattended
|
||||
# Expected: "BUILD SUCCESSFUL" (~1 min for the blank project; archive ~1.1 GiB)
|
||||
# Launch test: /run/media/system/DATA/Builds/GigLine/Linux/GigLine.sh
|
||||
```
|
||||
|
||||
The archive directory is deliberately **outside** the repository; never archive into the checkout.
|
||||
|
||||
## Headless content checks
|
||||
|
||||
Both content-acceptance tests run headless and are the template for all asset import verification:
|
||||
|
||||
```bash
|
||||
# Static-mesh scale test (Blender export -> Unreal import -> measure)
|
||||
# Blender: Tools/scale_test_export.py, Unreal: Tools/ue_scale_test_import.py
|
||||
# MPFB character (generate -> rig -> bake -> export -> skeletal import)
|
||||
# Blender: Tools/mpfb_character_export.py, Unreal: Tools/ue_character_import.py
|
||||
|
||||
# Unreal side of any test:
|
||||
./Engine/Binaries/Linux/UnrealEditor-Cmd \
|
||||
/run/media/system/DATA/Documents/06-games/gig-line/Game/GigLine/GigLine.uproject \
|
||||
-run=pythonscript -script=<repo>/Tools/<script>.py -nullrhi -unattended -nopause -stdout
|
||||
# Note: 5.8 swallows Python print() in the commandlet; scripts write result files to /tmp.
|
||||
```
|
||||
|
||||
## Known engine quirks (2026-11-07)
|
||||
|
||||
- One handled `PSOPrecache` ensure fires at packaged-build exit only; not blocking.
|
||||
- Interchange 5.8 does not create material/texture assets for skeletal FBX imports — `Tools/ue_character_import.py` finishes that chain explicitly.
|
||||
- Android Turnkey status errors and datarouter DNS warnings in logs are benign.
|
||||
|
||||
## Packaged Linux build
|
||||
|
||||
Record here: the packaging command, output path, size, and the controls document path. The packaged build must launch and quit cleanly on the development workstation before `v0.1.0` is tagged.
|
||||
- 2026-11-07: blank `Game/GigLine` Development build packaged via the command above; 1.1 GiB archive at `/run/media/system/DATA/Builds/GigLine/Linux`; `GigLine.sh` launched on the desktop session, Vulkan swapchain created, 759 frames rendered across a 60 s smoke test. Controls document to be written with the first playable (`0.1.0` Gameplay section).
|
||||
Reference in new issue
Block a user