终端界面
默认使用 ncurses 用户界面,在终端中运行,README 将其描述为节奏较快的动作策略游戏。
curseofwar · a-nikolaev/curseofwar
Curse of War 是一款用 C 语言编写、面向 Linux 的实时战略游戏,运行于 ncurses 终端界面。与多数 RTS 不同,玩家不直接操控单位,而是专注高层战略:建造基础设施、争夺资源、调动军队。README 称其核心机制接近一战至二战式战争,但未...
Curse of War 是一款面向 Linux 的实时战略(RTS)游戏,使用 C 语言实现,界面基于 ncurses 终端库。它由 Alexey Nikolaev 开发,版权年份为 2013 年,采用 GNU GPL v3 或更高版本发布。
与常见 RTS 不同,玩家并不直接操控具体单位,而是把注意力放在高层战略规划上:建设基础设施、确保资源、调动军队。README 指出,其核心机制“相当接近一战至二战类型的战争”,但游戏并不对应任何具体历史时期,也没有历史背景设定。
项目同时提供 ncurses 与 SDL 两种构建方式,并支持通过 CMake 在 Linux 或 Windows 上编译。
README 给出了适合上手的启动方式:
$ curseofwar -i4 -q1 -dee
或使用更小的地图:
$ curseofwar -i4 -q1 -dee -W16 -H16
通常游戏从地图四角的 4 个小国开始,玩家扮演绿色国家的统治者,目标是征服整张地图。
人口在地块上的显示方式如下(草地地块):
. 表示 1–3 名居民,.. 表示 4–6,... 表示 7–12: 表示 13–25,.: 表示 26–50,.:. 表示 51–100:: 表示 101–200,.:: 表示 201–400,::: 表示 400–499人口会从高密度地块向低密度地块迁移;人口只在城市中增长,每个模拟步按村庄 10%、城镇 20%、要塞 30% 增长。控制城市即控制其周边领土。
玩家旗帜显示为地块右侧的白色“P”,电脑对手旗帜显示为左侧的“x”。
操作方式:
默认使用 ncurses 用户界面,在终端中运行,README 将其描述为节奏较快的动作策略游戏。
玩家不控制单位,而是通过基础设施、资源与军队调动来推进战局。
地图由六边形地块构成,支持菱形、矩形、六边形三种地图形状;菱形与矩形最多 4 个国家,六边形最多 6 个。
人口是首要资源,人口兴旺是取胜关键。每个地块最多容纳每个国家 499 人;多国人口出现在同一地块时会交战,人口最多的一方成为地块所有者。
山地与金矿不可居住;金矿是国家黄金来源,需要用军队包围才能控制;村庄、城镇、要塞分别提供 +10%、+20%、+30% 的人口增长;草地是普通可居住区域。
每个国家可在地图上放置旗帜,改变人口迁移速率,使本国人口向旗帜所在地聚集,可用于提升己方城市人口或征服他国领土。
争夺城市时,若守方军队受损严重,城市可能被摧毁——要塞降为城镇,城镇降为村庄,村庄被入侵者彻底烧毁。
电脑对手具有不同“性格”,会影响其作战方式。
通过 UDP 进行客户端-服务器通信,支持服务器与客户端启动参数。
README 提供两条构建路径:
$ make$ make SDL=yesmake install,需定义 DESTDIR 变量,详见 INSTALL 文件从 README 可确认的技术信息包括:C 语言实现、ncurses 终端 UI、可选 SDL 构建、CMake 构建支持、六边形地块地图、基于人口迁移与增长的模拟规则、旗帜影响迁移速率、AI 对手个性差异,以及基于 UDP 的客户端-服务器联机。
适合学习的方向:
README 列出了较完整的启动参数:
-W width / -H height:地图宽高,默认均为 21-S [rhombus|rect|hex]:地图形状,默认矩形-l [2|3| ... N]:国家数量,默认为最大值 N-i [0|1|2|3|4]:国家间不平等程度,0 最低、4 最高-q [1|2| ... L]:按质量选择玩家位置,1 为地图上最好位置,L 为最差,仅单人模式-r:完全随机初始条件,覆盖 -l、-i、-q-d [ee|e|n|h|hh]:AI 难度,从最易到最难,默认普通-s [p|sss|ss|s|n|f|ff|fff]:游戏速度,从最慢到最快,默认普通-R seed:指定地图生成的随机种子-T:显示时间线-E [1|2| ... L]:启动服务器,最多容纳 L 个客户端-e port:服务器端口,默认 19140-C IP:启动客户端并连接指定服务器 IP-c port:客户端端口,默认 19150-v:显示版本号;-h:显示帮助启动一个供两名玩家使用的服务器:
$ ./curseofwar -E 2
客户端连接:
$ ./curseofwar -C <server's IP>
服务器默认端口 19140,客户端默认端口 19150,可用 -e 与 -c 分别指定。地图等选项必须在启动服务器时设置,连接后地图与数据会传给客户端。游戏速度不能由客户端修改,必须由服务器初始设定;并非所有数据都会发送给客户端(例如人口信息不会完整发送)。
README 明确说明多人模式仍处于相对早期开发阶段,可能随时变化;联机双方应使用相同版本的游戏,所有通信通过 UDP 完成,并欢迎报告多人模式问题。
项目以 GNU GPL v3 或更高版本发布,源代码位于 https://github.com/a-nikolaev/curseofwar 。开发邮件列表为 curseofwar-dev@googlegroups.com,IRC 频道为 irc.freenode.net 上的 #curseofwar。
Hypersomnia 是 TeamHypersomnia 用 C++ 从零编写的一款多人俯视角(top-down...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
micropolisJS 是把 Micropolis(开源版《模拟城市》类城市模拟游戏)移植到 J...