# wolf_3d_gui Flutter GUI host application for running Wolfenstein 3D with the shared engine and Flutter integration package. ## What This App Is `wolf_3d_gui` is the primary Flutter app host in this workspace. It: - initializes `Wolf3dFlutterEngine`, - discovers available game data directories, - manages game-data selection and session flow, - renders gameplay through Flutter-native UI and renderer widgets. Entrypoint: `lib/main.dart` ## Prerequisites - Flutter SDK - Dart SDK `^3.11.1` - Local Wolfenstein 3D game data files ### Linux native requirements On Debian/Ubuntu, install: `libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev lld` ## Setup From this directory: ```bash flutter pub get ``` ## Run Run on your default connected Flutter target: ```bash flutter run ``` Examples by target: ```bash flutter run -d linux flutter run -d chrome ``` ## Test and Analyze From this directory: ```bash flutter test flutter analyze ``` ## App Flow Overview Startup sequence: 1. `lib/main.dart` creates and initializes `Wolf3dFlutterEngine`. 2. Engine init discovers configured game-data directories. 3. App shell (`Wolf3dGuiApp`) drives selection/navigation. 4. Gameplay screen builds engine session + renderer mode and runs loop. Game data directory selection/persistence is managed by app managers and Flutter package persistence helpers. ## Troubleshooting - **No game data discovered**: choose a valid directory in the picker and ensure files are present. - **Linux build/runtime issues**: verify native dependency packages are installed. - **Web target limitations**: use desktop target for full native-audio/path behavior. - **Web release build won’t load when opening `index.html` directly**: Flutter web output must be served over `http://` or `https://`, not opened with `file://`. Build and serve locally: ```bash flutter build web --release python3 -m http.server 8080 -d build/web ``` Then open `http://localhost:8080` in your browser. If deploying under a subpath, build with matching base href, for example: ```bash flutter build web --release --base-href /wolf_dart/ ``` ## Related Modules - Flutter integration package: [`../../packages/wolf_3d_flutter/README.md`](../../packages/wolf_3d_flutter/README.md) - Core runtime package: [`../../packages/wolf_3d_dart/README.md`](../../packages/wolf_3d_dart/README.md) - Workspace overview: [`../../README.md`](../../README.md)