5c309c2240c1d81ac9e9403f02d4ce56b6b311e4
- Moved menu-related classes to a new structure under `src/menu/`. - Introduced `WolfMenuPresentation` to handle menu art and mappings. - Added `MenuManager` tests to ensure menu state reflects game status. - Implemented `FlutterRendererSettingsPersistence` and `FlutterSaveGamePersistence` for managing settings and save files on desktop platforms. - Created `Wolf3dFlutterInput` to handle keyboard and mouse input in a Flutter environment. - Updated README to reflect new package structure and usage instructions. Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
wolf_dart
Wolfenstein 3D workspace built with Dart + Flutter.
This repository is organized as a multi-package workspace:
- Apps in
apps/(CLI host and Flutter GUI host) - Packages in
packages/(core engine, Flutter integration, and assets)
The project expects you to provide legal Wolfenstein 3D game data files locally.
Workspace Layout
Apps
apps/wolf_3d_gui/— Flutter app host (desktop/web)apps/wolf_3d_cli/— terminal CLI host
Packages
packages/wolf_3d_dart/— core engine/runtime (non-Flutter)packages/wolf_3d_flutter/— Flutter host and UI integrationpackages/wolf_3d_assets/— shared packaged asset trees
Prerequisites
- Dart SDK
^3.11.1 - Flutter SDK (for GUI app and Flutter package work)
Linux native requirements
On Debian/Ubuntu, install:
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev lld
Quick Start
From workspace root:
dart pub get
Run GUI host:
cd apps/wolf_3d_gui
flutter run
Run CLI host:
cd apps/wolf_3d_cli
dart run bin/main.dart
If game data is not auto-discovered, pass a directory explicitly for CLI:
dart run bin/main.dart --data-directory /path/to/game-data
Development Workflow
Typical contributor loop:
- Update dependencies in relevant app/package (
dart pub getorflutter pub get). - Run focused tests in the module you changed.
- Run static analysis for the same module before submitting changes.
- Keep docs in sync when command-line flags, platform support, or public APIs change.
Testing
Run tests by module (examples):
cd packages/wolf_3d_dart && dart test
cd packages/wolf_3d_flutter && flutter test
cd apps/wolf_3d_gui && flutter test
Related Docs
- App/package READMEs listed above for module-specific setup and architecture
Description
Languages
Dart
54.3%
C
39.8%
Assembly
4%
GLSL
0.9%
CMake
0.5%
Other
0.4%