A next-generation browser-based MMO game built with Babylon.js, Vue 3, and Vite.
Real-time 3D battles, persistent worlds, and modular architecture — all powered by modern web technology.
- TypeScript-powered, clean and scalable codebase
- Modular Babylon.js game engine
- Fast builds and hot reloads with Vite
- Reactive UI built using Vue 3 + Pinia
- Automated releases with Semantic Release
- Commit message linting with Commitlint + Husky
- Extensible architecture for multiplayer gameplay
| Category | Technology |
|---|---|
| 3D Engine | Babylon.js |
| Frontend | Vue 3 + Vite |
| State Management | Pinia |
| Language | TypeScript |
| CI/CD | GitHub Actions |
| Release System | Semantic Release |
| Linting | Commitlint, ESLint, Prettier |
git clone https://github.com/theycantrevealus/eager-wing.git
cd eager-wingpnpm install
# or
npm installpnpm dev
# or
npm run devThen open your browser at http://localhost:5173
| Command | Description |
|---|---|
dev |
Start local dev server |
build |
Build production bundle |
preview |
Preview built app locally |
lint |
Lint code using ESLint |
release |
Trigger semantic release pipeline |
eager-wing/
├── src/
│ ├── assets/ # Static assets (models, textures, sounds)
│ ├── components/ # Vue components
│ ├── core/ # Game engine logic (BabylonJS scenes, systems)
│ ├── stores/ # Pinia stores
│ ├── utils/ # Helper functions
│ ├── App.vue # Root Vue component
│ └── main.ts # Entry point
├── public/
├── package.json
├── vite.config.ts
└── tsconfig.json
This project follows the Conventional Commits specification.
All commit messages must use the following format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
feat(core): add spaceship movement system
fix(ui): correct minimap scaling issue
docs(readme): update contributing guide
refactor(engine): optimize collision detection
chore(release): 1.2.0
| Type | Description | Release Impact |
|---|---|---|
| feat | Introduce a new feature | Minor (1.x.0) |
| fix | Fix a bug | Patch (1.0.x) |
| perf | Improve performance | Patch (1.0.x) |
| docs | Documentation-only changes | None |
| style | Code style or formatting changes (no logic) | None |
| refactor | Code refactor without new features or fixes | None |
| test | Add or fix tests | None |
| build | Changes to build system or dependencies | None |
| ci | Changes to CI/CD configuration | None |
| chore | Maintenance or tooling updates | None |
| revert | Revert a previous commit | Depends on context |
If a commit introduces a breaking change, include a footer line starting with BREAKING CHANGE:.
Example:
feat(api): change player login structure
BREAKING CHANGE: The /login endpoint now requires a token parameter.
This will automatically trigger a major version bump (1.x.x → 2.0.0) by Semantic Release.
- Use
pnpm commitornpm run commitif Commitizen is installed. - Keep descriptions short and meaningful.
- Use present tense (“add feature” not “added feature”).
- Avoid punctuation at the end of the description.
Properly formatted commits allow automatic changelog generation and semantic versioning 🚀
Semantic Release automatically:
- Analyzes commit messages
- Bumps version numbers
- Publishes new releases on GitHub
- Updates changelogs
Build and preview the production version:
pnpm build
pnpm previewOutput files will be generated in the /dist directory.
Contributions, issues, and feature requests are welcome!
Check the issues page.
How to contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit changes following Conventional Commits
- Open a Pull Request
Eager Wing Team
- GitHub: @theycantrevealus
This project is licensed under the MIT License.
- Babylon.js
- Vue.js
- Vite
- Open source community ❤️
"Fly beyond the horizon — the world awaits the eager."
