Files

100 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 wont 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)