ByGoalZ 8124651382 Change BorderTiles from Array to Set (#230)
Changed border constant from Array to Set, to avoid potential
duplicates.
2025-03-13 06:05:10 -07:00
2025-03-07 15:45:29 +00:00
2025-03-06 15:50:29 -08:00
2025-03-11 15:44:45 -07:00
2025-02-12 08:38:56 -08:00
2025-03-07 16:37:39 +00:00
2025-03-05 08:04:12 -08:00
2025-03-06 15:50:29 -08:00
2025-02-18 17:23:37 -08:00
2025-03-07 16:51:15 +00:00
2025-03-06 20:52:40 -08:00
2025-02-12 08:38:56 -08:00
2025-02-14 14:03:22 -05:00
2025-03-12 12:29:08 -07:00
2025-02-12 08:38:56 -08:00
2025-03-10 19:46:51 -07:00
2025-03-07 15:53:23 +00:00
2025-02-20 00:48:45 +02:00
2025-02-12 08:38:56 -08:00
2025-03-06 09:41:28 -08:00

OpenFrontIO

OpenFrontIO Logo

Prettier Check

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 (v1.2.4 or higher)
  • A modern web browser (Chrome, Firefox, Edge, etc.)

🚀 Installation

  1. Clone the repository

    git clone https://github.com/openfrontio/OpenFrontIO.git
    cd OpenFrontIO
    
  2. Install dependencies

    bun i
    

🎮 Running the Game

Development Mode

Run both the client and server in development mode with live reloading:

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:

bun run start:client

Server Only

To run just the server with development settings:

bun run start:server-dev

🛠️ Development Tools

  • Format code:

    bun run format
    
  • Lint code:

    npm run lint
    
  • Lint and fix code:

    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 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
S
Description
Languages
TypeScript 91.3%
GLSL 2.6%
JavaScript 1.9%
HTML 1.7%
CSS 1%
Other 1.5%