mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 09:30:45 +00:00
116 lines
2.8 KiB
Markdown
116 lines
2.8 KiB
Markdown
# OpenFrontIO
|
|
|
|
<p align="center">
|
|
<picture>
|
|
<source media="(prefers-color-scheme: dark)" srcset="resources/images/OpenFrontLogoDark.svg">
|
|
<source media="(prefers-color-scheme: light)" srcset="resources/images/OpenFrontLogo.svg">
|
|
<img src="resources/images/OpenFrontLogo.svg" alt="OpenFrontIO Logo" width="300">
|
|
</picture>
|
|
</p>
|
|
|
|

|
|
|
|
OpenFront 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.
|
|
|
|
This is a fork/rewrite of WarFront.io. Credit to https://github.com/WarFrontIO.
|
|
|
|
## 🌟 Features
|
|
|
|
- **Real-time Strategy Gameplay**: Expand your territory and engage in strategic battles
|
|
- **Alliance System**: Form alliances with other players for mutual defense
|
|
- **Multiple Maps**: Play across various geographical regions including Europe, Asia, Africa, and more
|
|
- **Resource Management**: Balance your expansion with defensive capabilities
|
|
- **Cross-platform**: Play in any modern web browser
|
|
|
|
## 📋 Prerequisites
|
|
|
|
- [Bun.js](https://bun.sh/) (v1.2.4 or higher)
|
|
- A modern web browser (Chrome, Firefox, Edge, etc.)
|
|
|
|
## 🚀 Installation
|
|
|
|
1. **Clone the repository**
|
|
|
|
```bash
|
|
git clone https://github.com/openfrontio/OpenFrontIO.git
|
|
cd OpenFrontIO
|
|
```
|
|
|
|
2. **Install dependencies**
|
|
|
|
```bash
|
|
bun i
|
|
```
|
|
|
|
## 🎮 Running the Game
|
|
|
|
### Development Mode
|
|
|
|
Run both the client and server in development mode with live reloading:
|
|
|
|
```bash
|
|
bun run dev
|
|
```
|
|
|
|
This will:
|
|
|
|
- Start the webpack dev server for the client
|
|
- Launch the game server with development settings
|
|
- Open the game in your default browser
|
|
|
|
### Client Only
|
|
|
|
To run just the client with hot reloading:
|
|
|
|
```bash
|
|
bun run start:client
|
|
```
|
|
|
|
### Server Only
|
|
|
|
To run just the server with development settings:
|
|
|
|
```bash
|
|
bun run start:server-dev
|
|
```
|
|
|
|
## 🛠️ Development Tools
|
|
|
|
- **Format code**:
|
|
|
|
```bash
|
|
bun run format
|
|
```
|
|
|
|
- **Lint code**:
|
|
|
|
```bash
|
|
npm run lint
|
|
```
|
|
|
|
- **Lint and fix code**:
|
|
```bash
|
|
npm run lint:fix
|
|
```
|
|
|
|
## 🏗️ Project Structure
|
|
|
|
- `/src/client` - Frontend game client
|
|
- `/src/core` - Shared game logic
|
|
- `/src/server` - Backend game server
|
|
- `/resources` - Static assets (images, maps, etc.)
|
|
|
|
## 📝 License
|
|
|
|
This project is licensed under the terms found in the [LICENSE](LICENSE) file.
|
|
|
|
## 🤝 Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
1. Fork the repository
|
|
2. Create your feature branch (`git checkout -b amazing-feature`)
|
|
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
4. Push to the branch (`git push origin amazing-feature`)
|
|
5. Open a Pull Request
|