A powerful and flexible Node.js library for launching and managing game processes across different platforms
- ๐ฅ๏ธ Cross-Platform Support - Works seamlessly on Windows, macOS, and Linux
- ๐ฎ Process Management - Launch, monitor, and control game processes with precision
- โก Event-Driven Architecture - Real-time events for complete game lifecycle tracking
- ๐ฏ Steam Integration - Built-in support for Steam games and platform detection
- ๐ท Proton Integration - Native support for running Windows games on Linux via Proton
- โ๏ธ Configuration Management - Flexible, environment-aware configuration system
- ๐ TypeScript Support - Full TypeScript definitions and IntelliSense support
- ๐ก๏ธ Error Handling - Robust error handling and automatic recovery mechanisms
- ๐ Resource Monitoring - Track memory, CPU usage, and system resources
- ๐ Hot Reloading - Dynamic configuration updates without restarts
- ๐จ Extensible Architecture - Plugin-friendly design for custom implementations
# Using npm
npm install @team-falkor/game-launcher
# Using yarn
yarn add @team-falkor/game-launcher
# Using bun
bun add @team-falkor/game-launcherimport { GameLauncher } from '@team-falkor/game-launcher';
// Create a new launcher instance
const launcher = new GameLauncher({
verbose: true
});
// Launch a game
const gameId = await launcher.launchGame({
gameId: 'my-awesome-game',
executable: '/path/to/game.exe',
args: ['--windowed', '--resolution=1920x1080']
});
console.log(`๐ฎ Game launched with ID: ${gameId}`);
// Set up event listeners
launcher.on('launched', (event) => {
console.log(`โ
Game ${event.gameId} started successfully`);
});
launcher.on('closed', (event) => {
console.log(`๐ด Game ${event.gameId} closed (exit code: ${event.exitCode})`);
});
launcher.on('error', (event) => {
console.error(`โ Game ${event.gameId} encountered an error:`, event.error);
});import { GameLauncher } from '@team-falkor/game-launcher';
const launcher = new GameLauncher({
verbose: true,
maxConcurrentGames: 3
});
// Launch multiple games with different configurations
const games = [
{
gameId: 'steam-game',
executable: 'steam://rungameid/123456',
timeout: 30000
},
{
gameId: 'local-game',
executable: './games/local-game.exe',
args: ['--debug'],
cwd: './games',
env: { GAME_MODE: 'development' }
}
];
for (const game of games) {
try {
const gameId = await launcher.launchGame(game);
console.log(`๐ Launched ${game.gameId}: ${gameId}`);
} catch (error) {
console.error(`๐ฅ Failed to launch ${game.gameId}:`, error.message);
}
}
// Monitor running games
setInterval(() => {
const runningGames = launcher.getRunningGames();
console.log(`๐ Currently running: ${runningGames.length} games`);
}, 5000);Explore our comprehensive documentation for detailed guides, examples, and API references:
- ๐ Getting Started Guide - Complete setup and usage walkthrough
- โ๏ธ Configuration Guide - Configuration options and patterns
- ๐ Best Practices - Recommended patterns and practices
- ๐ API Overview - Complete API documentation
- ๐ฎ GameLauncher Class - Main launcher class reference
- ๐ก Events System - Event types and handling
- ๐ Type Definitions - TypeScript interfaces and types
- ๐ ๏ธ Utilities - Helper functions and utilities
- ๐ Examples Overview - All available examples
- ๐ฎ Simple Launcher - Basic game launching
- ๐ก Event Handling - Advanced event patterns
- ๐ฏ Steam Integration - Steam platform integration
- ๐ช Multiple Games - Managing multiple games
- โฑ๏ธ Playtime Tracker - Track and analyze playtime
- ๐ Game Library Manager - Comprehensive library management
- ๐ Cross-Platform - Platform compatibility handling
- ๐ท Proton Integration - Running Windows games on Linux
- โ๏ธ Configuration Management - Advanced configuration patterns
Build custom game launcher applications with modern UI frameworks like Electron, Tauri, or web-based interfaces.
Organize and launch extensive game collections with metadata, categories, and search functionality.
Create development and testing tools for game developers, including automated testing and deployment pipelines.
Automate game testing, performance benchmarking, and continuous integration workflows.
Track game performance, usage statistics, and system resource consumption for optimization.
Integrate games into larger applications, Discord bots, streaming platforms, or content management systems.
| Platform | Status | Features | Notes |
|---|---|---|---|
| Windows | โ Full Support | Native process management, Registry integration, UAC handling | Supports .exe, .bat, .cmd files |
| macOS | โ Full Support | App bundle support, Permission handling, Spotlight integration | Supports .app bundles, .command files |
| Linux | โ Full Support | AppImage support, Desktop entries, Display server detection | Supports AppImage, .desktop files |
- Windows: Registry game detection, Windows Store app support, UAC elevation
- macOS: Info.plist parsing, Gatekeeper compatibility, Accessibility permissions
- Linux: Desktop file parsing, Wayland/X11 detection, Flatpak/Snap support, Proton integration for Windows games
We actively welcome and encourage contributions from the community! Whether you're a seasoned developer or just getting started, there are many ways to help improve the Game Launcher library.
- Use our issue templates for consistent reporting
- Provide detailed reproduction steps and system information
- Include logs, error messages, and expected vs. actual behavior
- Search existing issues before creating new ones
- Bug fixes - Help resolve open issues
- New features - Implement requested functionality
- Performance improvements - Optimize existing code
- Platform support - Enhance cross-platform compatibility
- Test coverage - Add unit, integration, or end-to-end tests
- Improve existing documentation clarity
- Add new examples and use cases
- Create tutorials and guides
- Fix typos and formatting issues
- Translate documentation to other languages
- Help answer questions in discussions
- Review pull requests
- Share your projects using the library
- Provide feedback on proposed changes
Look for issues labeled good first issue or help wanted - these are perfect starting points!
# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR-USERNAME/game-launcher.git
cd game-launcher
# Install dependencies
npm install
# Create a new branch for your feature/fix
git checkout -b feature/your-feature-name
# Make your changes and test them
npm test
npm run build
# Commit your changes with a descriptive message
git commit -m "feat: add support for new game platform"
# Push to your fork and create a pull request
git push origin feature/your-feature-name- Follow the existing code style and conventions
- Write clear, self-documenting code with appropriate comments
- Ensure all tests pass and add new tests for your changes
- Update documentation for any API changes
- Fork the repository and create a feature branch
- Make your changes with clear, atomic commits
- Test your changes thoroughly across platforms
- Update documentation and examples if needed
- Submit a pull request with a clear description
- Respond to feedback and iterate as needed
We use Conventional Commits:
type(scope): description
feat(launcher): add Steam game detection
fix(process): resolve memory leak in game monitoring
docs(examples): add cross-platform configuration guide
We're especially looking for help with:
- ๐ฅ๏ธ Platform-specific optimizations (Windows, macOS, Linux)
- ๐ฎ Game platform integrations (Epic Games, GOG, etc.)
- ๐งช Test coverage improvements
- ๐ Documentation and examples
- ๐ Internationalization support
- โฟ Accessibility features
Don't hesitate to ask! We're here to help:
- ๐ญ Start a Discussion for general questions
- ๐ Open an Issue for bugs or feature requests
- ๐ง Reach out to maintainers for guidance on larger contributions
Thank you for considering contributing to Game Launcher! Every contribution, no matter how small, helps make this library better for everyone. ๐
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
- ๐ Documentation: ./docs/
- ๐ Issues: GitHub Issues
- ๐ญ Discussions: GitHub Discussions
- ๐ฆ npm Package: https://www.npmjs.com/package/@team-falkor/game-launcher
- ๐ GitHub: https://github.com/team-falkor/game-launcher
Built with โค๏ธ for the gaming community
Empowering developers to create amazing game management experiences