This page tracks common problems and fixes. It is organized by category and currently covers more than 10 recurring build, runtime, SDK, graphics, platform, and tutorial issues. To add another entry, open a PR against this file using the contribution format below.
Contribution format for new FAQ entries:
### [Category] Short failure description
Symptoms:
- ...
Cause:
- ...
Fix:
1. ...
2. ...
Verification:
- command or observable resultSymptoms:
- New compile errors in generated SDK files.
Cause:
- Generated artifacts are out of sync.
Fix:
- Run
./codegen.sh - Run
bash scripts/check-generated-artifacts.sh
Verification:
cargo checkcompletes without generated-file drift errors.
Symptoms:
- Missing generated files or diff output under generated directories.
Cause:
- Generated outputs were not refreshed.
Fix:
- Run
./codegen.sh - Run
python3 scripts/generate-doc-snippets.py - Run
cd sdks/typescript && node scripts/generate-doc-media.mjs - Run
python3 scripts/generate-showcase-docs.py - Re-run
bash scripts/check-generated-artifacts.sh
Verification:
- Script prints
Generated artifact check passed.
Symptoms:
- Include path errors or broken links.
Cause:
- Missing generated snippet/docs outputs or stale links.
Fix:
- Run
cd sdks/typescript && node scripts/generate-doc-media.mjs - Run
python3 scripts/generate-doc-snippets.py - Run
python3 scripts/generate-showcase-docs.py - Run
mdbook build
Verification:
docs/book/rebuilds with no fatal errors.
Symptoms:
cargo run -p goudengine-mcpstarts, butgoudengine.list_contextsreturns an empty list.
Cause:
- The target process was started without debugger mode enabled, or you launched a browser/WASM target that does not publish debugger routes in this batch.
Fix:
- Start a desktop or headless process with debugger mode enabled before creation.
- Use one of the shipped Feature Lab examples if you want a known-good route:
./dev.sh --game feature_labpython3 examples/python/feature_lab.pycargo run -p feature-lab./dev.sh --sdk typescript --game feature_lab
- Re-run
cargo run -p goudengine-mcp, then callgoudengine.list_contextsandgoudengine.attach_context.
Verification:
goudengine.list_contextsshows one of the stable Feature Lab labels such asfeature-lab-csharp-headless,feature-lab-python-headless,feature-lab-rust-headless, orfeature-lab-typescript-desktop.
Symptoms:
- Import error or unresolved symbol when running Python examples.
Cause:
- Loader found old native library.
Fix:
cargo build --releaseGOUD_ENGINE_LIB=$PWD/target/release PYTHONPATH=$PWD/sdks/python python3 sdks/python/test_bindings.py
Verification:
- Binding tests pass and examples start.
Symptoms:
- Runtime load/test failures under x64 test paths on Apple Silicon.
Cause:
- Host/runtime architecture mismatch.
Fix:
- Verify binaries:
file sdks/csharp/runtimes/osx-x64/native/libgoud_engine.dylibfile sdks/csharp/runtimes/osx-arm64/native/libgoud_engine.dylib
- Run x64-hosted tests:
DOTNET_ROOT_X64=/usr/local/share/dotnet/x64 /usr/local/share/dotnet/x64/dotnet test sdks/csharp.tests/GoudEngine.Tests.csproj -v minimal
Verification:
- Tests pass on explicit x64 host path.
Symptoms:
- Page opens with no gameplay output.
Cause:
- Wrong import-map/asset path or running from
file://.
Fix:
- Use repo command:
./dev.sh --sdk typescript --game flappy_bird_web - Confirm page is served by HTTP URL printed by
dev.sh.
Verification:
- Game renders and input responds.
Symptoms:
- Mapping coverage errors for FFI exports.
Cause:
- Rust exports changed without codegen mapping updates.
Fix:
- Build once to refresh manifest.
- Run
python3 codegen/validate.py - Update
codegen/goud_sdk.schema.jsonand/orcodegen/ffi_mapping.json - Run
./codegen.sh
Verification:
- Both validation commands pass.
Symptoms:
- Missing generated type exports or runtime wrapper mismatches.
Cause:
- Node/web generated entrypoints drifted.
Fix:
- Run
./codegen.sh - Run
cd sdks/typescript && npm test
Verification:
- Test suite is green with regenerated outputs.
Symptoms:
scripts/clean-room-regenerate.shfails after deleting generated files.
Cause:
- Regeneration pipeline no longer rebuilds from source truth.
Fix:
- Run
bash scripts/clean-room-regenerate.sh - If docs are required, run:
PATH="$HOME/.cargo/bin:$HOME/.dotnet/tools:$PATH" bash scripts/clean-room-regenerate.sh --docs
- Fix any step that fails before release.
Verification:
- Script completes without manual file restoration.
Symptoms:
- Graphics tests fail in environments without display/GL context.
Cause:
- Tests requiring GL context run in unsupported environment.
Fix:
- Prefer headless-safe smoke paths for CI.
- Use helper context setup where graphics tests require it.
Verification:
- CI lane runs expected headless-safe coverage without GL crashes.
Symptoms:
- Startup fails before first frame.
Cause:
- Missing system packages for GLFW/OpenGL.
Fix:
- Install required OpenGL/GLFW runtime packages.
- Re-run the same command via
dev.sh.
Verification:
- Window opens and loop runs.
Symptoms:
- Browser networking path behaves differently from Node/native.
Cause:
- Browser SDK uses WASM/browser APIs, not native transports.
Fix:
- Review Web Platform Gotchas
- Validate with web-specific smoke paths.
Verification:
- Web networking behavior matches documented browser scope.
Symptoms:
- Browser client never reaches
peerCount() > 0.
Cause:
- Wrong protocol, wrong URL, or sending before the WebSocket connection is established.
Fix:
- Use
NetworkProtocol.WebSocket - Point it at a browser-reachable
ws://orwss://URL - Wait for
peerCount() > 0before first send - Validate with:
./dev.sh --sdk typescript --game sandbox_webcd examples/typescript/feature_labnpm run smoke:web-network
Verification:
- Browser smoke passes with a real
ping/pongroundtrip.
Use this order:
- Flappy Bird for baseline behavior parity.
- Sandbox for the full cross-language feature tour.
- Feature Lab for supplemental smoke coverage.
- C# specialization demos for renderer/gameplay patterns.
Reference:
examples/README.md- Sandbox Guide
- Example Showcase
Use shipped final projects:
examples/csharp/flappy_goud/examples/python/flappy_bird.pyexamples/typescript/flappy_bird/examples/rust/flappy_bird/
If you need zip bundles, use the git archive commands in Build Your First Game.