@civ-clone/core-game

中文文档
0.1.15发布于 2026/10/24MITTypeScriptCommonJS近 30 天下载 1948

Everything one game owns: 43 registries plus its turn, year and random number generator.

原始使用文档

@civ-clone/core-game

Everything one game owns: 43 registries plus its turn, year and random number generator.

import { Game } from '@civ-clone/core-game';

const game = new Game();

game.players.register(new Player(game.rules));

Two Games in one process share nothing, which is what makes a host able to run two matches, a test able to skip its beforeEach reset, and a save able to load into a fresh context beside the running one.

defaultGame

The engine's registries have always been module-level singletons. defaultGame adopts them rather than constructing its own:

import { defaultGame } from '@civ-clone/core-game';
import { instance as cityRegistryInstance } from '@civ-clone/core-city/CityRegistry';

defaultGame.cities === cityRegistryInstance; // true

That is what lets packages migrate one at a time. A package still importing instance and one using game.cities see the same registry, so a half-migrated engine does not quietly disagree with itself — which would show up as a rule not firing rather than as an error.

Every other new Game() gets its own of everything.

Why this is not in core-engine

Game imports every registry, and the seventeen packages with a registerRules.ts will import Game. Putting it in a package those registries already depend on would make a cycle. Nothing Game imports imports Game: the registry owners are all core-*, the registrars are all plugins.

Plugin registries stay out for the same reason and one more — core-game should not depend on a particular ruleset.

版本与发布记录

@civ-clone/core-game 共发布 16 个版本,首次发布于 2026/09/13;过去 12 个月发布了 16 个版本。

版本发布日期距今
0.1.15latest2026/10/2416 天前
0.1.142026/10/2317 天前
0.1.132026/10/2317 天前
0.1.122026/10/2219 天前
0.1.112026/10/2120 天前
0.1.102026/10/2120 天前

关于 @civ-clone/core-game 的常见问题

@civ-clone/core-game 是什么?

Everything one game owns: 43 registries plus its turn, year and random number generator.

如何安装 @civ-clone/core-game?

在项目目录运行 npm install @civ-clone/core-game,或使用 pnpm add / yarn add / bun add。

@civ-clone/core-game 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@civ-clone/core-game 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@civ-clone/core-game 可以商用吗?

@civ-clone/core-game 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@civ-clone/core-game 的下载量有多少?

根据 npm 官方下载统计,@civ-clone/core-game 在 2026/10/10 – 2026/11/08 这 30 天内被下载 1,948 次,日均约 65 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@civ-clone/core-game 还在维护吗?

最新版本 0.1.15 发布于 2026/10/24(16 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/09/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。