Skip to content
@civ-clone

Civ Clone

Organisation for the project civ-clone which aims to be a plugin-based, open-source recreation of every version of the Civilization series of games.

civ-clone

Open source, plugin-driven, Civilization clone, written in TypeScript.

Play online at https://civ.one/ (Original game files required!)

Aims

The aims for this project are to:

  • build a working clone of the original Civilization.
  • make the engine extensible enough that concepts from any Civilization game can be written and included or excluded.
  • make the engine decoupled from a renderer so that it's possible to run a headless, AI-driven game, as well as a single or multi-player game driven via either a rich GUI or even command-line.
  • allow third-party contributed plugins to augment the game.

Current State

This originally started as: @dom111/civ-clone. The historical commits here will provide insight into where a lot of the core concepts have originated and might be interest.

All plugins are written in TypeScript and future ones will be too. An Electron renderer has been started and is in a working state. The Clients are set up in such a way that adding a networked client should be possible (ignoring all the potential networking specific problems!). The assets are currently generated using the original game's assets.

The current flow is that a string of dependencies are utilised so that, for example, civ-clone-electron would depend on electron-renderer and the civ1-* packages and would be able to give an experience that's comparable with the original Civilization. Then the aim would be to make similar packages for the other Civilization games so that all the core concepts and functionality can be easily transplanted to older games. Like Civ1 but want to add religion? Done. Want to add custom units for the Mongols? Easy.

The world generation is currently pretty rudimentary, but would be easy to replace with something else in the future.

Screenshots

Main menu City screen City screen showing build options Game map showing a notification after capturing an enemy city Game map showing the Adjust Trade Rates menu Game map with civ reports visible

Missing features

  • Diplomats, Caravans and trade routes
  • Save and load
  • Choosing the worked tiles in a city and employing entertainers/tax men/scientists
  • Selling city improvements
  • Victory conditions
  • Palace
  • GoTo for Units
  • No save/load functionality.
  • Pollution isn't implemented.
  • Probably a bunch more stuff

Broken features

  • There's no Anarchy period when changing governments.
  • Some of the Wonders don't actually do anything yet.

Currently available

  • Move units
  • Build cities and irrigate, mine, road the terrain
  • Build units, city improvements and wonders
  • Attack enemies and capture cities
  • Discover Advances
  • Unit obsolescence
  • Goody huts (Gold, Advance, Unit - Horseman or Swordman, Advanced Tribe)
  • All 14 Civilizations from the original game (with "modern" city names - where applicable)
  • Civ 5-style notification system for delaying choosing advances/choosing what to build in cities
  • Change governments and utilise the features of each
  • Change the Tax, Research, Luxuries rates
  • Play on Earth
  • Some charts and civilization-wide breakdowns/info
  • Diplomatic negotiations with AI players (very basic, peace is always accepted and adhered to)

Get in touch

Feel free to ask anything in the discussions section of the organisation:

https://github.com/civ-clone/civ-clone/discussions/new/choose

I'm also trying to post updates when there are any interesting changes, and I'll post screenshots of anything fun at the following thread:

https://forums.civfanatics.com/threads/yet-anther-clone.680494/latest

You can also follow this project to see when updates are made.

The web-renderer available at https://civ-clone.github.io/ shows a simple changelog when clicking on the version in the corner of the main menu too.

How to get this running

The Electron renderer is currently decommissioned, but only whilst I'm working on the web-renderer. The aim is that the web-renderer will be split out separating the UI from the Engine further.

The web-renderer is available to play online via:

https://civ-clone.github.io/

You currently need a copy of the original game files (TER257.PIC and SP257.PIC) to provide the basic assets.

Core Concepts

Packages

The entirety of the logic for a component is provided via a stand-alone package, some are core or base which are the primary components of the game itself and would need a suitable replacement to be removed, but should be possible to augment as required. core-* packages only expose base classes/interfaces which base-* packages implement and extend.

Rules

Rules should control all the interactions from how resources are counted and accumulated, to what governments are available, to A/D/M/V values for Units etc.

TODO

Loads! See TODO for the bigger ideas that are outstanding as well as looking for // TODO in the codebase.

Contributing

To contribute to the project, fork the relevant repo, create a branch and make your changes. Once you are happy with them, ensure that npm run build (or yarn build) runs successfully and open a PR!

Pinned Loading

  1. civ-clone civ-clone Public

    Open source, plugin-driven, Civilization clone, written in TypeScript.

    13

  2. web-renderer web-renderer Public

    Forked from civ-clone/electron-renderer

    A web-based game renderer

    TypeScript 1

  3. civ1-asset-extractor civ1-asset-extractor Public

    TypeScript 3

  4. civ-clone.github.io civ-clone.github.io Public

    HTML 2

  5. civ1-unit civ1-unit Public

    TypeScript

  6. civ1-player civ1-player Public

    TypeScript

Repositories

Showing 10 of 345 repositories
  • civ-clone/civ1-unit’s past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 14, 2023
  • civ-clone/core-unit’s past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 14, 2023
  • library-unit Public

    A library containing any useful `Unit`-related value objects (`Unit`s, `Action`s, types, etc)

    civ-clone/library-unit’s past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 14, 2023
  • civ-clone/simple-ai-client’s past year of commit activity
    TypeScript 1 MIT 0 1 0 Updated May 14, 2023
  • civ-clone/civ1-player’s past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 13, 2023
  • civ-clone/civ-clone.github.io’s past year of commit activity
    HTML 2 0 0 0 Updated May 12, 2023
  • web-renderer Public Forked from civ-clone/electron-renderer

    A web-based game renderer

    civ-clone/web-renderer’s past year of commit activity
    TypeScript 1 MIT 1 0 0 Updated May 12, 2023
  • core-strategy Public

    A model for representing CPU-player strategies

    civ-clone/core-strategy’s past year of commit activity
    TypeScript 0 MIT 0 1 0 Updated May 12, 2023
  • civ-clone/base-unit-action-goto’s past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 12, 2023
  • civ-clone/simple-world-path’s past year of commit activity
    TypeScript 0 MIT 0 0 0 Updated May 11, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…