[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73938":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},73938,"OpenFrontIO","openfrontio\u002FOpenFrontIO","openfrontio","Online browser-based RTS game","https:\u002F\u002Fopenfront.io\u002F",null,"TypeScript",2216,1112,13,200,0,33,74,163,99,31.14,"GNU Affero General Public License v3.0",false,"main",[26,27,28,29,30],"browser-game","game","io-game","rts","rts-game","2026-06-12 02:03:20","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"proprietary\u002Fimages\u002FOpenFrontLogoDark.svg\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"proprietary\u002Fimages\u002FOpenFrontLogo.svg\">\n    \u003Cimg src=\"proprietary\u002Fimages\u002FOpenFrontLogo.svg\" alt=\"OpenFrontIO Logo\" width=\"300\">\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n[OpenFront.io](https:\u002F\u002Fopenfront.io\u002F) is an online real-time strategy game focused on territorial control and alliance building. Players compete to expand their territory, build structures, and form strategic alliances in various maps based on real-world geography.\n\nThis is a fork\u002Frewrite of WarFront.io. Credit to https:\u002F\u002Fgithub.com\u002FWarFrontIO.\n\n![CI](https:\u002F\u002Fgithub.com\u002Fopenfrontio\u002FOpenFrontIO\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)\n[![Crowdin](https:\u002F\u002Fbadges.crowdin.net\u002Fopenfront-mls\u002Flocalized.svg)](https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fopenfront-mls)\n[![CLA assistant](https:\u002F\u002Fcla-assistant.io\u002Freadme\u002Fbadge\u002Fopenfrontio\u002FOpenFrontIO)](https:\u002F\u002Fcla-assistant.io\u002Fopenfrontio\u002FOpenFrontIO)\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL%20v3-blue.svg)](https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fagpl-3.0)\n[![Assets: CC BY-SA 4.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAssets-CC%20BY--SA%204.0-lightgrey.svg)](https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-sa\u002F4.0\u002F)\n\n## License\n\nOpenFront source code is licensed under the **GNU Affero General Public License v3.0**\n\nCurrent copyright notices appear in:\n\n- Footer: \"© OpenFront and Contributors\"\n- Loading screen: \"© OpenFront and Contributors\"\n\nModified versions must preserve these notices in reasonably visible locations.\n\nSee the [LICENSE](LICENSE) for complete requirements.\n\nFor asset licensing, see [LICENSE-ASSETS](LICENSE-ASSETS).  \nFor license history, see [LICENSING.md](LICENSING.md).\n\n## 🌟 Features\n\n- **Real-time Strategy Gameplay**: Expand your territory and engage in strategic battles\n- **Alliance System**: Form alliances with other players for mutual defense\n- **Multiple Maps**: Play across various geographical regions including Europe, Asia, Africa, and more\n- **Resource Management**: Balance your expansion with defensive capabilities\n- **Cross-platform**: Play in any modern web browser\n\n## 📋 Prerequisites\n\n- [npm](https:\u002F\u002Fwww.npmjs.com\u002F) (v10.9.2 or higher)\n- A modern web browser (Chrome, Firefox, Edge, etc.)\n\n## 🚀 Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fopenfrontio\u002FOpenFrontIO.git\n   cd OpenFrontIO\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   npm run inst\n   ```\n\n   Do NOT use `npm install` nor `npm i` but instead use our `npm run inst`. It runs the safer `npm ci --ignore-scripts` to install dependencies exactly according to the versions in `package-lock.json` and doesn't run scripts. This can prevent being hit by a supply chain attack.\n\n## 🎮 Running the Game\n\n### Development Mode\n\nRun both the client and server in development mode with live reloading:\n\n```bash\nnpm run dev\n```\n\nThis will:\n\n- Start the webpack dev server for the client\n- Launch the game server with development settings\n- Open the game in your default browser (to disable this behavior, set `SKIP_BROWSER_OPEN=true` in your environment)\n\n### Client Only\n\nTo run just the client with hot reloading:\n\n```bash\nnpm run start:client\n```\n\n### Server Only\n\nTo run just the server with development settings:\n\n```bash\nnpm run start:server-dev\n```\n\n### Connecting to staging or production backends\n\nSometimes it's useful to connect to production servers when replaying a game, testing user profiles, purchases, or login flow.\n\n> To replay a production game, make sure you're on the same commit that the game you want to replay was executed on, you can find the `gitCommit` value via `https:\u002F\u002Fapi.openfront.io\u002Fgame\u002F[gameId]`.\n> Unfinished games cannot be replayed on localhost.\n\nTo connect to staging api servers:\n\n```bash\nnpm run dev:staging\n```\n\nTo connect to production api servers:\n\n```bash\nnpm run dev:prod\n```\n\n## 🛠️ Development Tools\n\n- **Format code**:\n\n  ```bash\n  npm run format\n  ```\n\n- **Lint code**:\n\n  ```bash\n  npm run lint\n  ```\n\n- **Lint and fix code**:\n\n  ```bash\n  npm run lint:fix\n  ```\n\n- **Testing**\n  ```bash\n  npm test\n  ```\n\n## 🏗️ Project Structure\n\n- `\u002Fsrc\u002Fclient` - Frontend game client\n- `\u002Fsrc\u002Fcore` - Shared game logic\n- `\u002Fsrc\u002Fserver` - Backend game server\n- `\u002Fresources` - Static assets (images, maps, etc.)\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Request to join the development [Discord](https:\u002F\u002Fdiscord.gg\u002FK9zernJB5z).\n1. Fork the repository\n1. Create your feature branch (`git checkout -b amazing-feature`)\n1. Commit your changes (`git commit -m 'Add some amazing feature'`)\n1. Push to the branch (`git push origin amazing-feature`)\n1. Open a Pull Request\n\n## 🌐 Translation\n\nTranslators are welcome! Please feel free to help translate into your language.\nHow to help?\n\n1. Join the translation [Discord](https:\u002F\u002Fdiscord.gg\u002F3zZzacjWFr)\n2. Go to the project's Crowdin translation page: [https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fopenfront-mls](https:\u002F\u002Fcrowdin.com\u002Fproject\u002Fopenfront-mls)\n3. Login if you already have an account \u002F Sign up if you don't have one\n4. Join the project\n5. Select the language you want to translate in. If your language isn't on the list, click the \"Request New Language\" button and enter the language you want added there.\n6. Translate the strings\n\nFeel free to ask questions in the translation Discord server!\n\n### Project Governance\n\n- The project maintainer ([evan](https:\u002F\u002Fgithub.com\u002Fevanpelle)) has final authority on all code changes and design decisions\n- All pull requests require maintainer approval before merging\n- The maintainer reserves the right to reject contributions that don't align with the project's vision or quality standards\n\n### Contribution Path for New Contributors\n\nTo ensure code quality and project stability, we use a progressive contribution system:\n\n1. **New Contributors**: Limited to UI improvements and small bug fixes only\n   - This helps you become familiar with the codebase\n   - UI changes are easier to review and less likely to break core functionality\n   - Small, focused PRs have a higher chance of being accepted\n\n2. **Established Contributors**: After several successful PRs and demonstrating understanding of the codebase, you may work on more complex features\n\n3. **Core Contributors**: Only those with extensive experience with the project may modify critical game systems\n\n### How to Contribute Successfully\n\n1. **Before Starting Work**:\n   - Open an issue describing what you want to contribute\n   - Wait for maintainer feedback before investing significant time\n   - Small improvements can proceed directly to PR stage\n\n2. **Code Quality Requirements**:\n   - All code must be well-commented and follow existing style patterns\n   - New features should not break existing functionality\n   - Code should be thoroughly tested before submission\n   - All code changes in src\u002Fcore _MUST_ be tested.\n\n3. **Pull Request Process**:\n   - Keep PRs focused on a single feature or bug fix\n   - Include screenshots for UI changes\n   - Describe what testing you've performed\n   - Be responsive to feedback and requested changes\n\n4. **Testing Requirements**:\n   - Verify your changes work as expected\n   - Test on multiple systems\u002Fbrowsers if applicable\n   - Document your testing process in the PR\n\n### Communication\n\n- Be respectful and constructive in all project interactions\n- Questions are welcome, but please search existing issues first\n- For major changes, discuss in an issue before starting work\n\n### Final Notes\n\nRemember that maintaining this project requires significant effort. The maintainer appreciates your contributions but must prioritize long-term project health and stability. Not all contributions will be accepted, and that's okay.\n\nThank you for helping make OpenFront better!\n","OpenFront.io 是一个基于浏览器的在线即时战略游戏，专注于领土控制和联盟建设。玩家可以在基于真实世界地理的地图上竞争扩展领土、建造结构并形成战略联盟。项目采用 TypeScript 编写，具备实时策略玩法、联盟系统、多地图选择以及资源管理等核心功能。它支持跨平台，在任何现代网页浏览器中均可运行，适合喜欢策略游戏和团队合作的玩家。此外，该项目开源且遵循 GNU Affero General Public License v3.0 许可证，鼓励社区参与贡献。",2,"2026-06-11 03:47:58","high_star"]