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. datatables 排序 如何禁止

    $.extend( true, $.fn.dataTable.defaults, {     "searching": false,     "ordering" ...

  2. Java并发编程之线程安全、线程通信

    Java多线程开发中最重要的一点就是线程安全的实现了.所谓Java线程安全,可以简单理解为当多个线程访问同一个共享资源时产生的数据不一致问题.为此,Java提供了一系列方法来解决线程安全问题. syn ...

  3. how to show video in website

    how to show video in website old version browsers https://www.computerhope.com/issues/ch000591.htm h ...

  4. [BinaryTree] AVL树、红黑树、B/B+树和Trie树的比较

    转自:AVL树.红黑树.B/B+树和Trie树的比较 AVL树 最早的平衡二叉树之一.AVL是一种高度平衡的二叉树,所以通常的结果是,维护这种高度平衡所付出的代价比从中获得的效率收益还大,故而实际的应 ...

  5. VS2012 Nuget 安装 AutoMapper时报错的解决方法

    VS2012 在.net 4.0下安装AutoMapper时,会报以下错误: “AutoMapper”已拥有为“Standard.Library”定义的依赖项. 'AutoMapper' alread ...

  6. 基于element-ui的后台系统表格、dialog、筛选、自定义按钮、分页的一次性封装

    方便基础业务开发封装的一套组件,基于vue2.5.x和element-ui,可以通过配置自动生成表格展示,表格新增.编辑功能.分页.筛选项.自定义显示表格数据等功能. 先上演示图片 --------- ...

  7. 【原创】查询某个SQL在Oracle的会话

    select sql_Text,last_active_time from v$sql where sql_text like '%sql语句%'order by last_active_time

  8. 【线段树】【P4198】 楼房重建

    Description 小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度.如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没 ...

  9. C++ explicit constructor/copy constructor note

    C++:explict 作用显示声明构造函数只能被显示调用从而阻止编译器的隐式转换,类似只能用()显示调用,而不能=或者隐式调用 #include <iostream> #include ...

  10. mac 10.13 build 一个 redis desktop manager

    build 的东西比较多,性能差的电脑编译会很久. 下载地址:https://redisdesktop.com/download 本来想下载一个,但是发现只有 windows 是免费的,不过官网提供了 ...