TAGS: Heroes3, vcmi, opensource
DATE: 2013-08-23

vcmi是什么?

vcmi 是经典的 SLG 英雄无敌3 的开源游戏引擎。原来的英雄无敌3只能在Windows上玩, 现在通过 vcmi,我们也可以在 Unix/Linux, 苹果等其它系统上玩了。目前手机和平 板上的英雄无敌3就是用的这个项目的成果。 而手机和平板上的英雄无敌2的出现,是因为另一个开源项目 fheroes2 。

vcmi 和 fheroes2 的另一个好处就是降低了CPU的消耗,以前的Windows游戏估计 是为了获得及时的响应,都是100%地利用CPU,即使没什么需要计算的,也让CPU不停地 空循环。而 vcmi 和 fheroes2 都很环保,CPU占用率极低。本来一个游戏的计算 量很小,何必占用100%的CPU呢。

说到英雄无敌3,我特别地有感情,我喜欢这个游戏胜过 魔兽争霸。俺还用它的地图编 辑器自己编辑过地图,用它的战役编辑器自己编辑过战役呢。想想一个秋日的午后,和 你的好朋友,花上半天时间,一边喝茶,一边像下棋一样玩一局英雄无敌3,该是多么 惬意的事情啊。

如果你像我一样对英雄无敌3情有独钟,可以访问vcmi的主页: http://forum.vcmi.eu/portal.php

为什么要编译安装?

  • 学习源代码,如果有可能,加入这个开源项目。
  • 因为现在的vcmi不支持中文版的死亡阴影,我要修改源代码,让它支持中文的正常显 示。(目前手机上的英雄无敌2和英雄无敌3也都是英文版,就是因为原项目没提供中 文支持。大陆一些发布手机包的这些人就知道拿来人家的东西,植入广告,鄙视)
  • 如果你并不想学习和修改代码,还是直接安装官网上提供的二进制包吧。

获取vcmi源码

下载最新的源码包:http://download.vcmi.eu/vcmi-0.93.tar.gz 。 下载完解压到某处。

编译安装

在开始编译之前说一下我的环境: arch Linux。下面的步骤大部分和你用什么Linux发 行版没有关系,如果涉及因发行版而不同的命令,我会特别说明。

  1. 进入源码目录。
  2. 建立一个build目录。
    mkdir build
    
  3. 用cmake检查编译环境,生成 makefile。
    cmake ..
    

    如果已经安装好 SDL 和 Boost 的开发库,应该没有问题。

    一开始我没有安装 Boost 的开发库, cmake 没有成功,报错: error found. Boost_INCLUDE_DIR not defined. 。于是我安装boost的开发库, sudo pacman -S boost (如果你用的是别的Linux发行版,请用相应的包管理器安装), cmake 就成功了。

  4. 开始编译。
    make -j2
    

    j2表示针对双核CPU编译,也可以不要这个选项。等吧,我的2.3G双核CPU,编译了 15分钟。

  5. 安装。
    make install
    

安装数据

先看一下游戏的安装目录,通过命令行执行:

vcmiclient -v

我的结果如下:

Starting...
VCMI 0.93
data directory: /usr/local/share/vcmi
library directory: /usr/local/lib/vcmi
path to server: /usr/local/bin/vcmiserver

数据目录是 =/usr/local/share/vcmi/=,然后我们要把原版游戏的Data, Maps, Mp3目 录拷贝到这个目录下。 如果不想拷贝,也可以建立符号链接。我是这样做的:

cd /usr/local/share/vcmi
sudo ln -sf /path/to/Heroes3-Shadow-of-Death/Data .
sudo ln -sf /path/to/Heroes3-Shadow-of-Death/Mp3 .
sudo ln -sf /path/to/Heroes3-Shadow-of-Death/Maps .

现在你已经可以玩了。

注意 :你应该安装英文版游戏的数据。如果你用的是中文版游戏的数据,画面上会显示乱码。 不要着急,我已经开始修改源代码,让vcmi支持中文,可以等 我的修改版 啊。

可选的数据包 :

官网上还提供了两个数据包下载,都是游戏的Mod。 什么是Mod呢,估计类似“死亡阴影”的资料片吧。我暂时没有下载。

这两个数据包的安装方法就是解压到游戏的数据目录,以 core 为例:

cd /usr/local/share/vcmi
sudo unzip /path/to/core.zip

开始玩吧

在命令行输入: vcmiclient ,游戏就启动了。其实英文版的也蛮好,可以练练英语。 如果你执意要玩中文版的,等我修改的版本吧。

其它废话

  1. 对于Windows系统,源码中包含Visual Studio的工程文件,只要配置好SDL, Boost 库,编译应该很顺利。另一个方案是,在windows下安装mingw,然后像在Linux下一样去make。
  2. 对于Mac OS,我一点都不熟悉,但我想应该也是直接cmake和make即可。因为它也是 Unix like OS,它的shell使用起来和Linux没什么差别(如果说得不对,请尽情地喷我)。补充一下,我发现源码包中有xcode的工程文件。
  3. 如果你不是想修改游戏引擎,你大可不必编译安装。对于 Debian/ubuntu/Fedora Linux,都可以直接从软件仓库安装;对于小众的 arch Linux, 可以从 AUR 安装。 对于Windows 和Mac OS,都有编译好的二进制包下载。 请参考项目主页

Date: 2013-08-24T20:32+0800

Author: Jiqing Wu

Org version 7.9.3f with Emacs version 24

英雄无敌3开源引擎vcmi的编译安装的更多相关文章

  1. vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译

    vcmi源码编译 windows+cmake+mingw ##1 准备 HoMM3 gog.com CMake 官网 vcmi 源码 下载 QT5 with mingw 官网 Boost 源码1.55 ...

  2. 让vcmi支持英雄无敌3中文版

    Table of Contents 1 Hack 日志 2 Changes 3 Install by compiling 4 reply of Ivan 1 Hack 日志 8月22日开始动手修改改v ...

  3. 黑科技项目:英雄无敌III Mod <<Fallen Angel>>介绍

    英雄无敌三简介(Heroes of Might and Magic III) 英3是1999年由New World Computing在Windows平台上开发的回合制策略魔幻游戏,其出版商是3DO. ...

  4. 开源服务专题之--------mysql的编译安装

    为什么选择MySQL 1:mysql性能卓越,服务稳定,很少出现异常宕机 2:mysql开源免费,无版权制约,自主性及使用成本低 3:产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是ph ...

  5. 英雄无敌HoMM3-死亡阴影SOD-神之苏醒WOG-封神NABI-MOD等相关文件

    英雄无敌HoMM3:死亡阴影SOD 英雄无敌3之死亡阴影(Heroes of Might and Magic III: Shadow of Death,简记为HoMM III: SOD)发行于1999 ...

  6. SpiderMonkey js引擎的静态编译与使用, SpiderMonkey的使用

    SpiderMonkey js引擎的静态编译与使用 2017年10月02日 02:51:22 yaolixing01 阅读数:536   原文出处: http://yaolixing.oltag.co ...

  7. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  8. Android二维码识别 开源项目ZXing的编译

    Android二维码识别 开源项目ZXing的编译 Android端的条形码/二维码识别功能 因为手机端的输入不是很方便,所以条形码/二维码的扫描是一种很有效的解决手段. 比较流行的手机应用中,常用的 ...

  9. 利用开源项目jadx反编译Android应用

    原文转自:http://bbs.itheima.com/thread-200475-1-1.html 利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex ...

随机推荐

  1. Internet History, Technology and Security (Week 1)

    Week 1 History: Dawn of Electronic Computing Welcome to Week 1! This week, we'll be covering the ear ...

  2. canvas制作原生的百分比圆形比例等

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. 在Android上使用Socket

    原文地址:http://www.cnblogs.com/kross/p/3621952.html 考虑到以后可能要用到这方面的知识,就来写个Demo尝试下,其实以前学过,但不记得了……(用不到的东西各 ...

  4. ACM数论之旅9---中国剩余定理(CRT)(壮哉我大中华╰(*°▽°*)╯)

    中国剩余定理,又名孙子定理o(*≧▽≦)ツ 能求解什么问题呢? 问题: 一堆物品 3个3个分剩2个 5个5个分剩3个 7个7个分剩2个 问这个物品有多少个 解这题,我们需要构造一个答案 我们需要构造这 ...

  5. 半夜思考, 为什么建议重写 equals() 方法时, 也要重写 hashCode() 方法

    我说的半夜, 并不是真正的半夜, 指的是在我一个人的时候, 我会去思考一些奇怪的问题. 要理解 hashCode() 需要理解下面三个点: hash契约 哈希冲突 哈希可变 第一点: hash 契约指 ...

  6. bzoj2302-Problem c

    题意 有 \(n\) 个人,从 1 到 \(i\) 编号.给每个人一个值 \(a_i\) ,他们会按编号从小到大进行如下操作:查看 \(a_i\) 有没有人,若没有就坐进去,否则查看 \(a_i+1\ ...

  7. NOI2017 退役记

    OI生涯最后一篇游记写点不开心的让大家开心一下 Day -2(7.16) 上午的模拟赛奥妙重重. 下午也没怎么改题,看了一些新题,发现都不会,都看了下题解,发现大部分没看懂,好慌. 发现板子还没怎么复 ...

  8. BZOJ4561 JLOI2016圆的异或并(扫描线+平衡树)

    考虑一条扫描线从左到右扫过这些圆.观察某一时刻直线与这些圆的交点,可以发现构成一个类似括号序列的东西,括号的包含关系与圆的包含关系是相同的.并且当扫描线逐渐移动时,括号间的相对顺序不变.于是考虑用se ...

  9. wazhu之agent功能详解

      一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日志,这对防火墙和其他此类设备 ...

  10. c++11 时间类 std::chrono

    概念: chrono库:主要包含了三种类型:时间间隔Duration.时钟Clocks和时间点Time point. Duration:表示一段时间间隔,用来记录时间长度,可以表示几秒钟.几分钟或者几 ...