A modern, Material Design-based WPF application for managing and launching your game library with a clean, professional interface.
- Modern UI: Clean Material Design interface with intuitive navigation
- Game Library Management: Add, edit, and organize your game collection with full CRUD operations
- Advanced Game Launch System:
- Comprehensive game validation before launch
- Support for custom launch arguments and working directories
- Profile-based launching with companion applications
- Launch history tracking with performance metrics
- Real-time launcher window with progress monitoring
- Automatic Game Detection:
- Comprehensive game signatures database with 500+ games
- Intelligent game scanning with configurable search paths
- Game verification and duplicate detection
- Progress tracking during scan operations
- Game Signatures Management:
- Built-in database of popular games with metadata
- Custom signature creation and management
- Signature-based automatic game identification
- Import/export signature functionality
- Companion Applications:
- Launch supporting applications alongside games
- Companion app management and configuration
- Integration with game profiles for automated launching
- Multiple Navigation Options:
- Enhanced sidebar with Signatures and Companions views
- Top menu bar with keyboard shortcuts
- Keyboard shortcuts (
Ctrl+1for Home,Ctrl+2for Games,Ctrl+3for Signatures,Ctrl+4for Companions,Ctrl+5for Launcher,F5for Refresh)
- Add/Edit Game Dialog:
- Form validation with real-time feedback
- Auto-generation of short names
- Browse functionality for game folders and executables
- Keyboard shortcuts for quick actions
- Games View:
- Professional card-based game display
- Advanced search and filtering capabilities
- Launch, edit, and delete game actions
- Empty state guidance for new users
- Loading states with progress indicators
- Launcher Window (Opens automatically on game launch):
- Real-time monitoring of running games
- Process performance statistics (CPU, memory usage)
- Game session tracking with play time
- Window management controls (minimize, bring to front, stop)
- Recent sessions history
- Separate window for better monitoring experience
- Profile System:
- Create custom launch profiles with specific arguments
- Companion application support (launch related tools with games)
- Profile-specific game configurations
- Launch History & Analytics:
- Comprehensive tracking of all game launches
- Success/failure logging with detailed error messages
- Performance metrics (memory usage, session duration)
- Launch statistics and trends
- Game Categories & Tags: Organize games with custom categories
- Custom Game Icons: Support for custom game artwork
- Import/Export: Backup and restore your game library
- Steam Integration: Import games from Steam library
- Enhanced Analytics: Advanced play time statistics and trends
- Cloud Sync: Synchronize game library across devices
- Framework: .NET 8.0 with WPF
- UI Framework: Material Design In XAML Toolkit
- Architecture: MVVM pattern with CommunityToolkit.Mvvm
- Database: SQLite with Entity Framework Core
- Dependency Injection: Microsoft.Extensions.Hosting
- Logging: Serilog
- .NET 8.0 SDK or later
- Windows 10/11 (WPF requirement)
- Visual Studio 2022 or JetBrains Rider (recommended for development)
-
Clone the repository:
git clone <repository-url> cd ALGAE
-
Restore dependencies:
dotnet restore
-
Build the application:
dotnet build
-
Run the application:
dotnet run --project ALGAE
- Launch the application
- Click "Add Game" to start building your library
- Use the browse buttons to select game folders and executables
- Fill in game details (name, publisher, version, description)
- Save and launch your games!
ALGAE/
โโโ ALGAE/ # Main WPF application
โ โโโ Views/ # XAML views and code-behind
โ โ โโโ MainWindow.xaml # Main application window
โ โ โโโ HomeView.xaml # Home/dashboard view
โ โ โโโ GamesView.xaml # Games library view
โ โ โโโ GameSignaturesView.xaml # Game signatures management
โ โ โโโ CompanionsView.xaml # Companion applications management
โ โ โโโ LauncherView.xaml # Game launcher/monitor view
โ โ โโโ LauncherWindow.xaml # Separate launcher window
โ โ โโโ GameScanProgressDialog.xaml # Game scanning progress
โ โ โโโ GameVerificationDialog.xaml # Game verification results
โ โ โโโ AddEditGameDialog.xaml # Add/edit game dialog
โ โโโ ViewModels/ # MVVM view models
โ โ โโโ MainViewModel.cs # Main navigation logic
โ โ โโโ HomeViewModel.cs # Home view logic
โ โ โโโ GamesViewModel.cs # Games management logic
โ โ โโโ GameSignaturesViewModel.cs # Game signatures management
โ โ โโโ CompanionsViewModel.cs # Companion applications logic
โ โ โโโ GameScanProgressViewModel.cs # Game scanning progress
โ โ โโโ GameVerificationViewModel.cs # Game verification logic
โ โ โโโ LauncherViewModel.cs # Game launcher/monitor logic
โ โ โโโ GameDetailViewModel.cs # Game details and profiles
โ โโโ Services/ # Application services
โ โ โโโ IGameLaunchService.cs # Game launching interface
โ โ โโโ GameLaunchService.cs # Game launching implementation
โ โ โโโ IGameDetectionService.cs # Game detection interface
โ โ โโโ GameDetectionService.cs # Automatic game detection
โ โ โโโ IGameSignatureService.cs # Game signatures interface
โ โ โโโ GameSignatureService.cs # Game signature management
โ โ โโโ GameProcessMonitorService.cs # Process monitoring
โ โ โโโ LauncherWindowManager.cs # Launcher window management
โ โ โโโ NotificationService.cs # UI notifications
โ โโโ Converters/ # XAML value converters
โ โโโ App.xaml # Application resources and startup
โโโ ALGAE.Core/ # Core business logic
โโโ ALGAE.DAL/ # Data access layer
โ โโโ Models/ # Entity models
โ โ โโโ Game.cs # Game entity
โ โ โโโ GameSignature.cs # Game signature entity
โ โ โโโ SearchPath.cs # Search path configuration
โ โ โโโ Profile.cs # Launch profile entity
โ โ โโโ Companion.cs # Companion app entity
โ โ โโโ LaunchHistory.cs # Launch tracking entity
โ โโโ Repositories/ # Data repositories
โ โ โโโ IGameRepository.cs # Game data interface
โ โ โโโ ILaunchHistoryRepository.cs # Launch history interface
โ โ โโโ [Other repositories] # Additional data access
โ โโโ DatabaseContext.cs # EF Core context
โโโ ALGAE.Tests/ # Unit and integration tests
โโโ README.md # This file
ALGAE includes comprehensive unit tests covering critical business logic:
- 24 unit tests covering game launch validation, ViewModel logic, and services
- Test data builders for consistent test setup
- Mock-based testing with AutoMocker for dependency isolation
- Arrange-Act-Assert pattern for readable tests
# Run all tests
dotnet test ALGAE.Tests
# Run with detailed output
dotnet test ALGAE.Tests --logger console --verbosity normalโ Current Coverage (24 Tests)
- GameLaunchService (validation, file system, launch logic)
- GamesViewModel (data loading, search, launch commands)
- Test data builders and mock infrastructure
- Service layer integration testing
๐ Planned Coverage
- Additional ViewModels (GameDetailViewModel, LauncherViewModel, GameSignaturesViewModel)
- Repository integration tests
- Game detection and signature services
- Companion application services
For detailed testing information, see TESTING.md.
The application automatically creates a SQLite database:
- Development:
ALGAE-dev.dbin the project folder - Production:
%AppData%/AlgaeApp/Database/ALGAE.db
Logs are stored in:
- Development:
logs/development-log.txtin the project folder - Production:
%AppData%/AlgaeApp/Logs/ALGAE-Log.txt
Ctrl+1- Navigate to HomeCtrl+2- Navigate to GamesCtrl+3- Navigate to SignaturesCtrl+4- Navigate to CompanionsCtrl+5- Navigate to LauncherF5- Refresh current viewCtrl+N- Add new game (in Games view)Enter- Save (in dialogs)Escape- Cancel (in dialogs)
- Ensure you have .NET 8.0 SDK installed
- Clone the repository
- Open in Visual Studio or your preferred IDE
- Build and run the solution
The application follows MVVM (Model-View-ViewModel) architecture:
- Models: Located in ALGAE.DAL, represent data entities
- Views: XAML files defining the UI layout
- ViewModels: Handle UI logic and data binding
- Services: Business logic and data access (in ALGAE.Core and ALGAE.DAL)
MaterialDesignThemes.Wpf- Material Design UI componentsCommunityToolkit.Mvvm- MVVM helpers and source generatorsMicrosoft.EntityFrameworkCore.Sqlite- Database accessSerilog- Logging framework
Application won't start
- Ensure .NET 8.0 runtime is installed
- Check for missing dependencies with
dotnet restore
Games view not showing
- This was a known issue caused by missing value converters, now resolved
Database errors
- Delete the database file to reset (will lose all data)
- Check write permissions in the application data folder
Check the log files for detailed error information:
- Development:
logs/development-log.txt - Production:
%AppData%/AlgaeApp/Logs/ALGAE-Log.txt
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
- Follow MVVM pattern for new features
- Use Material Design components where possible
- Add appropriate logging for new functionality
- Include XML documentation for public methods
- Test thoroughly before submitting PRs
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the troubleshooting section above
- Look through existing GitHub issues
- Create a new issue with detailed information about the problem
- Steam library integration
- Automatic game detection and scanning
- Custom game categories and tagging
- Game statistics and analytics
- Custom themes and appearance options
- Export/import functionality
- Multi-language support
ALGAE - Making game management simple and beautiful! ๐ฎโจ