|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to the gameframework package will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.0.1] - 2026-02-06 |
| 9 | + |
| 10 | +### Initial Release |
| 11 | + |
| 12 | +A unified, modular framework for embedding multiple game engines (Unity, Unreal Engine) into Flutter applications. |
| 13 | + |
| 14 | +#### Core Features |
| 15 | + |
| 16 | +**Architecture:** |
| 17 | +- Modular, extensible architecture for multiple game engine support |
| 18 | +- Platform-agnostic controller interface with `GameEngineController` |
| 19 | +- Factory pattern for game engine instantiation |
| 20 | +- Registry system for engine discovery and management |
| 21 | +- Lifecycle management (initialize, pause, resume, dispose) |
| 22 | +- Bidirectional communication via message passing |
| 23 | + |
| 24 | +**Dart API:** |
| 25 | +- `GameWidget` - Drop-in Flutter widget for embedding game engines |
| 26 | +- `GameEngineController` - Base controller interface for all engines |
| 27 | +- `GameEngineFactory` - Factory for creating engine instances |
| 28 | +- `GameEngineRegistry` - Central registry for engine types |
| 29 | +- `GameEngineConfig` - Configuration model with platform-specific settings |
| 30 | +- Type-safe models for events, messages, and scene loading |
| 31 | + |
| 32 | +**Platform Support:** |
| 33 | +- Android (API 21+) - Method channels and platform views |
| 34 | +- iOS (12.0+) - Method channels and UIKit integration |
| 35 | +- macOS (10.14+) - Native Swift implementation |
| 36 | +- Windows (10+) - C++ plugin with CMake |
| 37 | +- Linux (Ubuntu 20.04+) - GObject-based plugin |
| 38 | + |
| 39 | +**Models & Types:** |
| 40 | +- `GameEngineType` - Enum for supported engines (Unity, Unreal) |
| 41 | +- `GameEngineEvent` - Event system for engine lifecycle |
| 42 | +- `GameEngineMessage` - Bidirectional message passing |
| 43 | +- `GameSceneLoaded` - Scene/level load notifications |
| 44 | +- `AndroidPlatformViewMode` - Android rendering modes (Hybrid, Virtual, Texture) |
| 45 | +- `GameEngineException` - Typed exception handling |
| 46 | + |
| 47 | +**Utilities:** |
| 48 | +- `PlatformInfo` - Platform detection and capabilities |
| 49 | +- Development scripts for testing and debugging |
| 50 | + |
| 51 | +#### Platform Support Details |
| 52 | + |
| 53 | +| Platform | Status | Implementation | |
| 54 | +|----------|--------|----------------| |
| 55 | +| Android | ✅ Production Ready | Kotlin with method channels | |
| 56 | +| iOS | ✅ Production Ready | Swift with Cocoa integration | |
| 57 | +| macOS | ✅ Production Ready | Swift with AppKit | |
| 58 | +| Windows | ✅ Ready | C++ with CMake | |
| 59 | +| Linux | ✅ Ready | C with GObject | |
| 60 | + |
| 61 | +#### Technical Specifications |
| 62 | + |
| 63 | +**Code Metrics:** |
| 64 | +- Dart core: 1,500+ lines |
| 65 | +- Android Kotlin: 1,000+ lines |
| 66 | +- iOS/macOS Swift: 800+ lines |
| 67 | +- Windows C++: 300+ lines |
| 68 | +- Linux C: 250+ lines |
| 69 | +- Test coverage: Comprehensive unit tests |
| 70 | +- **Total: 3,850+ lines** |
| 71 | + |
| 72 | +**Architecture Highlights:** |
| 73 | +- Clean separation between platform-agnostic and platform-specific code |
| 74 | +- Factory pattern for engine instantiation |
| 75 | +- Observer pattern for event handling |
| 76 | +- Strategy pattern for platform-specific implementations |
| 77 | +- Plugin architecture for extensibility |
| 78 | + |
| 79 | +#### Dependencies |
| 80 | + |
| 81 | +```yaml |
| 82 | +dependencies: |
| 83 | + flutter: ">=3.3.0" |
| 84 | + plugin_platform_interface: ^2.0.2 |
| 85 | + flutter_plugin_android_lifecycle: ^2.0.17 |
| 86 | + |
| 87 | +environment: |
| 88 | + sdk: '>=3.6.0 <4.0.0' |
| 89 | +``` |
| 90 | +
|
| 91 | +#### Companion Packages |
| 92 | +
|
| 93 | +This core framework is designed to work with engine-specific implementations: |
| 94 | +- `gameframework_unity` - Unity Engine integration |
| 95 | +- `gameframework_unreal` - Unreal Engine integration |
| 96 | + |
| 97 | +#### Usage Example |
| 98 | + |
| 99 | +```dart |
| 100 | +import 'package:gameframework/gameframework.dart'; |
| 101 | +
|
| 102 | +// Create a game widget |
| 103 | +GameWidget( |
| 104 | + engineType: GameEngineType.unity, |
| 105 | + config: GameEngineConfig( |
| 106 | + androidPlatformViewMode: AndroidPlatformViewMode.hybrid, |
| 107 | + enableLogging: true, |
| 108 | + ), |
| 109 | + onEngineReady: (controller) { |
| 110 | + print('Engine initialized!'); |
| 111 | + }, |
| 112 | + onMessage: (message) { |
| 113 | + print('Received: ${message.data}'); |
| 114 | + }, |
| 115 | +) |
| 116 | +``` |
| 117 | + |
| 118 | +#### Development Tools |
| 119 | + |
| 120 | +**Scripts:** |
| 121 | +- `dev.sh` - Development environment setup and testing |
| 122 | +- `fix_unity_embedding.sh` - Unity-specific embedding fixes |
| 123 | +- `test_unity_embedding.sh` - Unity integration testing |
| 124 | + |
| 125 | +#### Breaking Changes |
| 126 | + |
| 127 | +None - Initial release. |
| 128 | + |
| 129 | +#### Known Limitations |
| 130 | + |
| 131 | +- Web platform support planned for future releases |
| 132 | +- Game engine implementations require companion packages |
| 133 | +- Platform-specific features may vary by engine |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## [Unreleased] |
| 138 | + |
| 139 | +### Planned Features |
| 140 | + |
| 141 | +**v0.1.0 - Enhanced Core:** |
| 142 | +- Web platform support (WebGL/Pixel Streaming) |
| 143 | +- Enhanced error handling and recovery |
| 144 | +- Performance profiling APIs |
| 145 | +- Advanced lifecycle hooks |
| 146 | + |
| 147 | +**v0.2.0 - Developer Experience:** |
| 148 | +- DevTools integration |
| 149 | +- Hot reload support for game content |
| 150 | +- Debugging utilities |
| 151 | +- Example applications |
| 152 | + |
| 153 | +**v0.3.0 - Advanced Features:** |
| 154 | +- Multi-engine support in single app |
| 155 | +- State persistence and restoration |
| 156 | +- Advanced memory management |
| 157 | +- Background execution support |
| 158 | + |
| 159 | +**v1.0.0 - Production Release:** |
| 160 | +- Complete platform coverage |
| 161 | +- Full test suite (95%+ coverage) |
| 162 | +- Comprehensive documentation |
| 163 | +- Migration guides |
| 164 | +- Performance benchmarks |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +## Release Notes Format |
| 169 | + |
| 170 | +For future releases: |
| 171 | + |
| 172 | +### Added |
| 173 | +- New features |
| 174 | + |
| 175 | +### Changed |
| 176 | +- Changes in existing functionality |
| 177 | + |
| 178 | +### Deprecated |
| 179 | +- Soon-to-be removed features |
| 180 | + |
| 181 | +### Removed |
| 182 | +- Removed features |
| 183 | + |
| 184 | +### Fixed |
| 185 | +- Bug fixes |
| 186 | + |
| 187 | +### Security |
| 188 | +- Security improvements |
| 189 | + |
| 190 | +--- |
| 191 | + |
| 192 | +**Semantic Versioning:** |
| 193 | +- **Major (X.0.0):** Breaking changes |
| 194 | +- **Minor (0.X.0):** New features, backward compatible |
| 195 | +- **Patch (0.0.X):** Bug fixes, backward compatible |
| 196 | + |
| 197 | +--- |
| 198 | + |
| 199 | +## Links |
| 200 | + |
| 201 | +- [GitHub Repository](https://github.com/xraph/gameframework) |
| 202 | +- [Issue Tracker](https://github.com/xraph/gameframework/issues) |
| 203 | +- [Discussions](https://github.com/xraph/gameframework/discussions) |
| 204 | +- [pub.dev Package](https://pub.dev/packages/gameframework) |
| 205 | + |
| 206 | +--- |
| 207 | + |
| 208 | +**Last Updated:** 2026-02-06 |
0 commit comments