Tag Archives: 游戏

【转载】魔兽争霸 vs. 星际争霸 vs. 红色警戒

魔兽娱乐性强 比较搞笑 你常常越玩越轻松
星际竞技性强 比较严肃 你常常越玩越紧张
红警政治性强 比较偏激 你常常越玩越气愤

玩魔兽 就像唱卡拉ok 普通人练一首歌半个月 已经能赢得同伴的掌声
玩星际 就像唱京戏 曲不离口的练上一年 可能还唱不上调子
玩红警 就像说话 不用练就差不多水平 练了很多年说话的水平不见得高多少

学习魔兽 你能打赢两家疯狂电脑的时候 你和真人打就能取胜了
学习星际 你能打赢七家电脑 你还纳闷怎么还打不过真人
学习红警 你能打赢七家电脑 1000000 次 不见得和真人玩过

学习魔兽 两个小时你能死在相同的战术上八次 毫无还手之力
学习星际 两个小时你能死在迥异的战术上八次 毫无还手之力
学习红警 两年你都死在相同的得战术上无数次 毫无还手之力

魔兽里面 你专心练一个族往往就能够应付对同族异族4种情况打法
星际里面 人打虫的高手往往曾经就是虫打人的高手
红警里面 你学会一个国家就等于学会了所有国家

魔兽里面 熟练了几种套路就可以取胜
星际里面 熟练了几种套路还是被随机应变的对手牵着鼻子走
红警里面 熟练了几种套路,你会发现根本没用,只要熟练一种就可以了

魔兽里面 你利用计谋伏击或者包围了对方主力 对方却掏出回程扬长而走
星际里面 你会发现不仅有游击战还有阵地战、伏击战、空投战……
红警里面 你会发现什么战都是多余的,人多才是硬道理

魔兽里面 敌人无论离家多远都可以十秒内回救被你偷袭的基地
星际里面 你稍不留神就中了声东击西的诡计
红警里面 你必须时刻留神你得矿车

魔兽里面 你 5 分钟侦察一次还能对敌人兵种搭配了如指掌
星际里面 你 5 分钟侦察五次说不定得到的还是假情报
红警里面 你 5 分钟侦查一次,然后就再也用不着侦查了

魔兽里面 5 分钟不侦察你还能猜出来敌人部队构成
星际里面 3 分钟不侦察出门就可能全是克制你的兵种
红警里面 不用你去侦查地图上就能看见敌人的情况

魔兽里面 赢了一场大战就可以松口气 因为几乎稳操胜券
星际里面 赢了一场大战 正得意一下却发现刚刚大战中被一支奇兵偷袭得经济全毁
红警里面 赢了一场大战 你会觉得很幸运 你好多天都没有打过大战了。

魔兽里面 大战对决常常形势一边倒
星际里面 大战对决常常双方两败俱伤
红警里面 大战对决常常就像已经知道了结局颁奖典礼

魔兽里面 一次全军覆没 99% 可以打 GG
星际里面 十次全军覆说不定都不知鹿死谁手
红警里面 经常全军覆没是一种战斗方式

魔兽里面 你郁闷于虽然有顽强精神却在难以劣势中翻盘
星际里面 你郁闷于虽然有优势却被有顽强精神的对手翻盘
红警里面 你郁闷于必须有对方不知道的战术才能翻盘

魔兽里面 录像看到一半往往能知道结局
星际里面 录像看到结局你才发现开始的判断错了
红警里面 录像是什么都不知道

魔兽里面 初始的基地被拆毁就失去了希望
星际里面 两个人鏖战到调换基地位置甚至四海为家也不稀奇
红警里面 初始基地不仅可以被拆 还可以被占 被偷 被炸 自己还可以逃跑

魔兽里面 初始矿采完基本胜负就见分晓
星际里面 全地图的资源耗尽说不定才换来一个平局
红警里面 大家一直在抢资源很少出现平局

魔兽里面 你可以龟缩防守、偏安一隅
星际里面 你如果%

Quake III Arena 源代码在 Win32 下的编译

按照 John Carmack 的承诺 Quake III Arena 也终于开源了!在 Id Software 的网站上下就能购下载到。

不过似乎网上更流行的版本是从这里能够得到的一个名为 quake3-1.32b-.source.zip 的 5.45M 的压缩包,里面括了相对较全的内容,有 Q3A 的全部源码,lcc, q3asm, q3map 和 q3radiant 等工具的源代码。最主要的是它还包含了 vs.net 2003 的工程文件,使得编译变简单了许多。

我最早就是用这个版本编译通过的,不过后来发现在官方网站上放出的版本和这个不太一样,本想想继续尝试编译后者,并且根据其结果来写这篇网志的,不过遗憾的是,按照说明上的指导,编译不能成功。会出现找不到文件的错误,估计是 Id 官方的编译器本身配置有些问题,我没看源码也没有深入研究,希望有兴趣的朋友能告诉我原因和解决办法。

言归正传,其实这个版本里面的信息还是足够丰富的,很容易编译,只在个别地方有些小问题。不过我还要唠叨一下,我不是一个 Quake 玩家,所以对其中的很多术语不是很清楚,也不了解整个游戏的结构,只是出于好奇尝试了一下,有问题的话还请大家多多拍砖!

代码结构

从说明文件来看,这份代码主要包含了这些部分:

  • code/ – Quake III Arena source code (renderer, game code, OS layer etc.)
  • code/bspc – bot routes compiler source code
  • code/game – governs the game, runs on the server side
  • code/ui – handles the ui on the client side
  • lcc/ – the retargetable C compiler (produces assembly to be turned into qvm bytecode by q3asm)
  • q3asm/ – assembly to qvm bytecode compiler
  • q3map/ – map compiler ( .map -> .bsp ) – this is the version that comes with Q3Radiant 200f
  • q3radiant/ – Q3Radiant map editor build 200f (common/ and libs/ are support dirs for radiant)

编译 Quake III Arena

我指的是编译 Quake III 唯一的那个可执行文件。

在 code 目录下面能够找到 quake3.sln 这个 vs.net 2003 的解决方案文件,你尽可以打开它看看到底都有些什么东西,不过我在这里只谈编译,所以就拿它当个黑盒,直接编译了。

编译 Quake 需要 DirectX SDK 的支持,因为看游戏目录中包含的是 DirectX 7.0 所以我估计 7.0 的 SDK 就可以了,不过我仍然用了最新的 DirectX 9.0c 2005 年六月的那个版本,可以到微软的网站上去下载。不过我一直不理解的是,据说 Quake 是一个纯 OpenGL 的游戏,怎么它的编译要用到 DirectX 呢?无论如何安装好 DirectX SDK 之后,就可以编译了,不过在此之前要确保你的机器里已经安装了 vs.net 2003,并且 devenv.exe 这个文件在你的 path 环境变量中。(devenv.exe 就是 vs.net 集成开发环境的可执行文件,一般的安装目录在 %ProgramFiles%\Microsoft Visual Studio .NET 2003\Common7\IDE 里面。)打开命令窗口,进入 code 目录,运行命令:

不出意外的话,编译会顺利完成,其中会有几个警告,不过不影响结果。之后你会在 release 目录中找到一大堆编译好的二进制文件,不过有用的似乎只有那个 quake3.exe。

安装 Quake III Arena

只是因为在 code 目录下面有一个 installrelease.bat 文件,所以这一步就姑且叫做安装吧。在进行这一步之前,还是要准备一下环境变量,将 code\win32\mod-sdk-setup\bin 这个路径加入到 path 中,因为需要用到 lcc 和 q3asm 两个编译工具。然后打开 intallrelease.bat 这个文件,注释掉最后一行和倒数第三行,并且将倒数第二行中的 “_ta” 和 “g:” 去掉,使得最后三行变为这样:

为什么要这样做,仔细看看也就明白了。首先是根本就没有 closefiles.bat 这个文件,然后将 release 目录下的 quake3.exe 拷贝到根目录下的 quake3 子目录中。最后的 installvms.bat 只不过是做了一个移动操作,没有什么用处,因此只样改过的 intallrelease.bat 文件就可以很好的工作了。最后还要确保在根目录中没不存在 quake3 这样的目录。

好了,这个时候,只要简单的执行一下这个文件,待结束后看看根目录下是否多了一个 quake3 的目录,里面包含了 baseq3 和 missionpack 两个子目录,具体的目录结果如下:

仔细的看一下输出的日志,就可以明白为什么会产生这些文件了。

运行 Quake III Arena

想必你已经能够猜到,只要运行 code 目录下的那个 runrelease.bat 就可以了。不过有两点要注意,这样运行 quake3.exe 需要两个参数,一个是 fs_basepath 是要指向 quake3 这个目录,而另一个 fs_cdpath 则需要指向 Quake III Arena 的原始光盘,因为需要从里面读取资源文件。保证这两个参数都没有问题了,你应该就能够看到熟悉的 Quake III Arena 的画面了,否则会出现 Couldn’t load default.cfg 的错误。

其他问题

如果你在运行编译好的结果时出现了如下的问题 User interfaces is version 3, expected version 6,请到 Id 的官方网站去下载最新的 Point Release,安装之后就可以正常运行了。

怎么样,还是足够简单的,至少比我想象的要简单,还是那句话,这只是一个黑盒编译,希望熟悉 Quake 游戏的人们能够深入的解释一下得到的结果,算是抛砖引玉了……