惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Jina AI
Jina AI
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
美团技术团队
腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
aimingoo的专栏
aimingoo的专栏
博客园_首页
V
V2EX
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次
Unciv:开源跨平台的文明V重制版,用LibGDX打造怀旧4X策略游戏
Cheman · 2026-06-18 · via BlogFinder

今天在 GitHub Trending 上看到一个有意思的项目:Unciv,这是一款用 LibGDX 开发的开源文明V重制版,能在 Android 和桌面端流畅运行,特别适合怀旧玩家和模改爱好者。

一、项目概述

Unciv 是一个开源的、专注于模改(moddability)的 Android 和桌面端文明V重制版,使用 LibGDX 游戏开发框架构建。项目的核心理念是打造一个轻量、快速、可模改、开源且深度的 4X 策略游戏,即使是在低配置设备上也能流畅运行。

核心特性:

  • 跨平台支持:Android、Linux、Windows、macOS、Raspberry Pi 全覆盖
  • 开源免费:完全开源,无广告,无内购
  • 模改友好:强大的模改系统,玩家可以自定义文明、单位、建筑等
  • 轻量高效:相比原版 Civ V,资源占用极低,启动速度快
  • 多语言支持:通过社区翻译,支持多种语言

项目在 GitHub 上获得了广泛的关注,支持通过 Google Play、F-Droid、itch.io、Flathub、AUR、Homebrew、Chocolatey 等多种方式安装。

二、技术原理

架构设计

Unciv 基于 LibGDX 框架开发,这是一个成熟的跨平台 Java 游戏开发框架,支持 Windows、Linux、macOS、Android、iOS 和 Web 平台。项目采用典型的 LibGDX 多层架构:

├── core/          # 核心游戏逻辑(平台无关)
├── desktop/       # 桌面端启动器和打包配置
├── android/       # Android 平台特定代码
├── ios/           # iOS 平台特定代码(未活跃维护)
└── assets/        # 游戏资源(JSON 配置、图像、音频)

核心技术栈与选型理由

LibGDX 是项目的技术基石,选型理由包括:

  • 跨平台能力:一套代码编译到多个平台,降低维护成本
  • 成熟稳定:拥有丰富的生态系统和社区支持
  • 性能优秀:基于 OpenGL ES,渲染性能出色
  • Java 生态:便于利用现有的 Java 库和工具链

JSON 驱动的配置系统是 Unciv 模改系统的核心。游戏的所有规则、文明、单位、建筑、科技树等都以 JSON 文件定义,存放在 android/assets/jsons/ 目录下。这种设计使得玩家无需编写代码即可创建复杂的模改。

关键算法与设计模式

  1. 状态模式(State Pattern):游戏中的单位和城市都有复杂的状态管理,使用状态模式清晰地处理不同状态下的行为。

  2. 观察者模式(Observer Pattern):用于实现事件系统和 UI 更新机制,当游戏状态变化时自动通知相关组件。

  3. 策略模式(Strategy Pattern):AI 决策系统使用策略模式,不同的 AI 难度和风格采用不同的决策策略。

数据流分析

游戏的数据流主要围绕 GameInfo 对象展开,这是整个游戏状态的核心数据结构:

// 核心游戏状态结构
class GameInfo {
    val civilizations: MutableList<Civilization> = mutableListOf()
    val cities: MutableList<City> = mutableListOf()
    val tiles: MutableList<Tile> = mutableListOf()
    val units: MutableList<MapUnit> = mutableListOf()
    val difficulty: Difficulty = Difficulty.None
    val gameParameters: GameParameters = GameParameters()
    // ...
}

所有游戏操作都会修改 GameInfo 或其子对象,然后通过序列化保存到本地或用于多人游戏同步。

三、安装与快速开始

环境要求

  • Android 5.0+
  • 桌面端:Java 11+(推荐 OpenJDK 11 或 17)
  • 磁盘空间:至少 100MB 可用空间

安装步骤

Android 设备:

# 通过 Google Play 安装
# 或下载 F-Droid 版本
# 或从 GitHub Releases 下载 APK

Linux 桌面:

# Flatpak 安装(推荐)
flatpak install flathub io.github.yairm210.unciv

# 或从 AUR 安装(Arch Linux)
yay -S unciv-bin

# 或下载 Jar 文件运行
java -jar Unciv.jar

Windows:

# 下载安装 MSI
# 或从 Chocolatey 安装
choco install unciv

# 或下载 Jar 文件运行
java -jar Unciv.jar

macOS:

# 使用 Homebrew 安装
brew update && brew install unciv

# 或下载 Jar 文件运行
java -jar Unciv.jar

最简运行示例

桌面端运行 Jar(所有平台通用):

# 下载最新 Release 的 Jar 文件
wget https://github.com/yairm210/Unciv/releases/latest/download/Unciv.jar

# 运行游戏
java -jar Unciv.jar

Docker 运行(实验性):

# 拉取并运行 Docker 镜像
docker run -d -p 6901:6901 -p 5901:5901 ghcr.io/yairm210/unciv

# 在浏览器中访问
# http://localhost:6901/vnc.html?password=headless

四、使用方法与实战

基础用法

  1. 开始新游戏:启动游戏 → 选择"快速游戏"或"新游戏" → 选择文明 → 配置游戏参数 → 开始

  2. 游戏界面

    • 底部:选中单位的动作栏
    • 右侧:城市和生产信息
    • 顶部:资源栏(金币、科研、文化等)
    • 左侧:游戏速度和菜单
  3. 基本操作

    • 点击单位进行选择
    • 点击目的地移动单位
    • 点击城市查看详情
    • 双指缩放地图

进阶用法

模改安装:

  1. 从社区或 Steam 创意工坊下载模改(JSON 文件或文件夹)
  2. 将模改放入以下目录:
    • Android:/sdcard/Android/data/com.unciv.app/files/mods/
    • 桌面:~/.local/share/unciv/mods/(Linux)或 %APPDATA%\unciv\mods\(Windows)
  3. 在游戏中启用模改:设置 → 模改 → 启用所需模改

自定义文明: 创建 MyCiv.json 文件,定义新文明:

{
  "name": "我的文明",
  "leaderName": "领导者",
  "flags": ["IsCityState", "IsMajorCiv"],
  "uniqueUnits": ["MY_UNIQUE_UNIT"],
  "uniqueBuildings": ["MY_UNIQUE_BUILDING"],
  "startBias": ["Coast", "Luxury"],
  "cityNames": ["首都", "第二城", "第三城"]
}

实际项目示例

场景:创建自定义单位

{
  "name": "激光步兵",
  "unitType": "LandUnit",
  "cost": 150,
  "strength": 40,
  "rangedStrength": 25,
  "range": 2,
  "movement": 2,
  "requiredTech": "LaserTechnology",
  "upgradesTo": "None",
  "uniqueTo": "未来文明",
  "uniques": [
    "3倍伤害对抗机械化单位",
    "+10% 防御在丘陵地形"
  ]
}

五、常见问题与解决方案

安装失败

问题:Android 安装 APK 时提示"解析包错误" 解决方案

  • 检查 Android 版本是否 ≥ 5.0
  • 确保下载的 APK 文件完整(重新下载)
  • 在设置中允许"安装未知来源应用"

问题:桌面端运行 Jar 提示"找不到 Java" 解决方案

# 检查 Java 版本
java -version

# 如果未安装,安装 OpenJDK 11
# Ubuntu/Debian
sudo apt install openjdk-11-jdk

# macOS
brew install openjdk@11

# Windows:从 Adoptium 下载安装

运行时错误

问题:游戏启动后黑屏或崩溃 解决方案

  • 更新显卡驱动
  • 如果是集成显卡,尝试禁用 GPU 加速:在启动参数中添加 --disable-gpu
  • 检查日志文件:~/.local/share/unciv/logs/ 或 Android 的 logcat

问题:游戏卡顿、帧率低下 解决方案

  • 在设置中降低图形质量
  • 关闭动画效果
  • 如果是大地图(巨图),考虑减小地图尺寸
  • 升级设备硬件(推荐 4GB+ RAM)

模改问题

问题:启用的模改没有效果 解决方案

  • 确认模改文件放置在正确目录
  • 检查模改是否兼容当前游戏版本
  • 查看游戏日志中的模改加载错误
  • 尝试禁用其他模改(模改冲突)

问题:自定义文明/单位不显示 解决方案

  • 检查 JSON 语法是否正确(使用 JSON 校验器)
  • 确认所有引用的科技、建筑等存在
  • 查看游戏内的"模改验证"工具的输出

兼容性问题

问题:保存的游戏在新版本中无法加载 解决方案

  • Unciv 通常保持向后兼容,但重大更新可能破坏兼容性
  • 尝试用旧版本加载存档,然后导出游戏状态
  • 关注 GitHub Releases 的更新日志,了解破坏性变更

六、总结

Unciv 是一个令人敬佩的开源项目,它证明了开源社区能够创造出高质量、跨平台的游戏重制版。通过使用 LibGDX 框架和 JSON 驱动的配置系统,项目实现了极高的可移植性和可模改性。

项目亮点:

  • ✅ 完全开源,代码质量高,适合学习 LibGDX 游戏开发
  • ✅ 真正的跨平台,覆盖移动端和桌面端
  • ✅ 强大的模改系统,社区创作活跃
  • ✅ 轻量高效,低配设备也能流畅运行
  • ✅ 持续维护,开发者活跃

适合人群:

  • 文明系列老玩家,想要在移动设备上体验文明V
  • 开源爱好者,想要贡献代码或模改
  • 游戏开发学习者,想要研究 LibGDX 实际项目
  • 4X 策略游戏爱好者,寻找轻量级替代品

如果你怀念文明V的经典玩法,又想要在手机或低配电脑上玩,Unciv 绝对值得一试。而且,作为开源项目,你不仅可以免费游玩,还可以参与到项目的开发和改进中。

相关资源:

  • GitHub 仓库:https://github.com/yairm210/Unciv
  • 在线文档:https://yairm210.github.io/Unciv/
  • Discord 社区:https://discord.gg/bjrB4Xw
  • F-Droid 下载:https://f-droid.org/en/packages/com.unciv.app/