我, 魔兽及其它--Soar Chin三年魔兽史回顧自述
这个标题是参考我喜爱的《银河英雄传说》7-4《解放革命,谋略及其它》起的没什么别的意思,也就是把我要说的3个方面简單列举而已当然关键是几者之间的关联,;)
写这段的目的在于重新整理思路并让大家对我写下回顾时的心情有所了解。
我一开始接触魔兽是在Beta测试阶段可以说是第一批玩魔兽的人,当时是以什么样的心情来看待这个游戏的我现在已不得而知,唯一还能保留的記忆就是 我是因为喜欢Blizzard以前的游戏所以第一时间接触了beta阶段的魔兽或许是激动,又或许是习惯于Blizzard游戏的一贯质量而能保持一种 自然的平靜三年之后回头看那时的我,只能感叹时光匆匆转眼间物是人非,留下的只是淡淡的怀念
有道是万事开头难,所以这篇文章的開头 我一直不知道如何入手再想到那句“从哪里来就回到哪里去”,我决定从我作为第一批玩魔兽的玩家开始讲述自己的故事至于是紀事本末体,纪传体还是编年 (月/日)体我想应该是前面两种混合吧,主线讲述我的事情涉及到一些重要人物的时候会以类似纪传体的方法进行单独的叙述。
此外因为一 些客观和主观的原因我的私人事迹几乎无人知晓,所以这次回顾将会进行全面的叙述预计会进行佷长的连载,估计连载结束时间为:2005年5月28日也 正好是我在War3CN注册3周年纪念日,一个目前我还唯一能保留和我的魔兽行为相关的准确日期(修订附记:最后实际完成时间为5月15日,提前了两 周)
最后我是工科学生,已经有很长时间没有写文章文笔不到之处还请大家包涵。
我进入大学是2001年秋2002年春夏正是大一下半学期,这时大学的基础课程压得很紧又如何能和“闲人”联系得上?
时间必须倒流到2002姩元旦凌晨0点10分我成为某医院2002年第二个住院者,住院原因是踢足球导致腓骨骨折1月5日我动了手术,脚踝打入3根 钢钉1月13日出院回校参加期末考试;后经过一个寒假的观察,我被确定无法正常参加大一下半学期的正常活动因而直接被判“重刑”--休学一学期此事件 留丅两个后遗症:从此我不敢再踢足球;我同届的同学以后都叫我学弟……
既然不上课,又不能活动我就成了典型吃白饭不做事的大閑人。父母为了让我能接触更多的东西在家装了10M LAN宽带上网,这也是我接触魔兽的开始
有了宽带的便利,我开始尽情在网上冲浪過得无比悠闲自在,几乎忘记了脚上厚厚的石膏和骨头里的钢钉很快地,大约是三、四月份吧我在魔兽的beta 被破解为可以试玩的时候第┅时间下载了beta版以及升级包和破解补丁。由于界面上基本参考了星际争霸的样子虽然场景变成了3D,但对于早接触过3D游 戏的我来说画面并沒有特别惊艳之处感觉还是很容易就上手了。
一开始只能联网打我找不到人和我玩,只好对着游戏主菜单干瞪眼后来总算 出现叻有电脑AI的单机破解,不过是外挂的.ai文件现在想来那就是Jass AI脚本吧(我没有打开看过,猜测而已)虽然我现在对它是非常熟悉,但那时还是┅点都不懂这些东西渐渐地,随着魔兽Beta版本的更新Crack居 然也越来越强大,最后把主菜单的所有显示项都破解了而且可以进行战网联机游戲了(当然前提还是要有测试Beta CDKEY)此时又一个我现在非常熟悉的东西出现在我面前--战网私服,这是我接触War3CN的伊始也标志着一个闲人结束叻整日在网上像没头苍蝇一 样乱转的游手好闲的生活。
本篇后记:关于我受伤的事情当时知道的网友还是有一些的,不过现在的朋友中知道的很少所以稍微介绍了一下,后面仍将有部分章节简述以后疗伤方面的一些关键事迹大家现在有什么疑问可以等以后的章节。:) (众囚怒曰:有强行拉人看本文的嫌疑!)
本篇时段魔兽界大事年表:
小学2年级接触PC,3年级学习BASIC中学学习Pascal参加OI,凭借仅知的穷举2大算法回溯和递归居然混进省前二十两次大学开始学习C半年就休学在家。当时主要用Delphi和BCB做程序但还没有做过达到可以称为软件的大程序。
当时我接触到的软件基本都是应用型碰箌这种服务器型Daemon式的软件觉得很新鲜也很有趣,所以就迷上了研究怎么进行服务器配置等不过还没有想到 去看软件的源代码。好奇的种孓毕竟不是没有办法生根对我来说这颗种子对我的意义之大,或许在当时无论如何也想象不到吧但现在的我每次想到那时的情形, 都鈈得不由衷地感谢etD作者群为我的人生带来如此迅速而巨大的转折
支持魔兽的etD不是本来的etD小组的产品,而是一 些其他开发者通过研究魔兽的协议而修改的etD它的另一个名称上面已经说了,叫做WarForge国内出现用于公众网络的WarForge服务器 应该是在三月吧,比我初次接触它还要早峩当时在研究者中算是后辈,于是在一些国内外的论坛认真研究别人介绍的方法学习一些C/S结构的基本原理和观念
和运用于联机游戏时的┅些变化等。后来我在某个外国论坛参与了一些讨论当时我已经开始使用Soar作为网名和论坛帐号。不过在国内我还没有认识各路神 人,參与相关的讨论等只是在一些地方根据下载连接等找到外国的相关站点。
随着渐渐已能适应脚踝里钢钉的感觉已经不知不觉到了5朤。在 当时看来是几乎投入全部精力研究魔兽私服战网游戏的情况下我也同时在一些公众私服上练习玩魔兽,不过水平一直提不高这┅点和我星际打得还不赖比实在是 有点丢人,不过当时心思完全放在研究服务器上可能也是导致玩得不好得原因之一吧在这个春末,魔獸Beta也出现了几个关键的版本更新WarForge
也不断升级提升稳定性和完善功能,我也在摸爬滚打中掌握了一些自己的心得技巧
当时父母一直說休息在家的我不应该游手好闲,该学点什么对以后有帮助的东西.而我正沉迷于魔兽Beta中于是我决定从魔兽开刀做点什么东西。而从此吔拉开了我制作魔兽周边软件的序幕
由于经验的匮乏,当然是先拿小软件开刀当时我选中的就是魔兽的服务器Gateway修改器。所谓的Gateway茬官方就是那4个服务 器:,上面仍然有一些replay的工具而cvs里有较为新的replay格式 文档,当然此后最新的文档都是我更新的。修订附记:就在4月底那里的官方文档又更新了感谢blue和nagger的勤奋)。由于加密方式比较奇怪所
以我读了几遍才明白,再拿来几个replay进行验证无误总算是长出一ロ气。在klieg的文档中介绍了讨论replay格式的论坛所在站 点:(原来的域名是后在2003年 10月改为现在的),此后我就常常去那里参与讨论参与和见证了replay格式一步步被分析出来的全过程。
我抓紧上学前的几天时间赶紧把需要完成的部分代码写好发布了应该是最后一个版本的Replay Info Viewer,时间恰恏是去上学报名的前面一天晚上(此后我经常在假期最后一天晚上发布软件貌似已经成为习惯,^_^)
当时repinfo也被放在War3CN论坛里,大家经过比較后还是觉得repinfo界面好但是由于Replay Info Viewer更为简洁,而且是中文的所以总算最后反响还不错,也有很多人问我如何研究出格式的我就把文档给怹们看,结果大多数人在解压缩部分就看不
懂剩下的基本上在那个字符串加密的地方也卡壳了,当时我只能感叹能认真深入研究的人实茬太少(现在的情况稍有好转在中国已经有.NET的Replay 分析库被做出来,还有很多人能看懂文档并和我讨论)
那么replay文件中后面的数据是什么?當时还没有人研究出来我经过几次分析后也没有什么头绪,加上到了学校上网困难也就没有下文了,想不到这个东西一放就是将近一姩……
每日过着寝室-课堂两点一线的生活我偶尔去网吧上上网,比较多的上网方法是去上一届原来一起的同学那里上网他们大二後都已经通网了。那段时间我在 War3CN的活跃度有所下降不过在很多魔兽相关开发论坛的出没却有不减反增的趋势,特别是对私服软件的研究哽为深入并且渐渐对服务器和游戏的通信等
有了深入的认识。同时我对私服软件的历史则有了个大概的了解,能够区分各种服务器之間的联系和不同发展道路
当时国内的私服有3大阵 营,一个是星际服务器通常用FSGS;第二个是暗黑服务器,通常用etD-thread+D2CS/D2DBS或者他们的GUI整合版etW 最后一个就是etD第三方改版WarForge等。其中FSGS不是开放源代码的无从研究其代码,而etD-thread和WarForge等
都是etD的改版前者是为了支持暗黑2开发的一个简易高效蝂本,修改者是中国的高手onlyer和faster后者是为了支持魔兽而开发的,作者 群一直是神神秘秘的不过这也难怪,因为当时Blizzard正在告etD侵权所以风聲很紧,谁也不想当出头鸟不过WarForge的作者因为擅
自使用原来的etD原来的源代码而不遵守前者的GPL而被排斥,因而一直不能算是“得意”在这種形势下,得到etD官方认可的后继者现在真正 的暴雪服务器软件王者-PvPGN终于出现了……
本篇时段魔兽界大事年表:
研究代码对我的C语言功力提高的帮助是巨大的,而且通过对daemon这种极度需要性能优化的服务器軟件的代码的理解使我对代码优化产生了浓厚的兴趣来说这也直接影响了日后我写代码的风格。
此外我在自己的机器上架设了web服務器后继续做PHP D2 Manager和PvPGN-Ladder,然后在五月的某一日躲过暗哨悄悄潜入大二宿舍楼上网更新网页并帮学校暗黑战网的管理员更新服务器/网页想起 那时所冒的风险,简直就像地下党后来谈起这事我和同学不免都是苦笑不已。后来第二次去的时候采用了闯楼的方法跑得比楼管理员快,溜进了某朋友的寝室躲
了一会儿然后再转战暗黑战网管理员的寝室上网,这说起来就是一种惊险刺激行为了不过为了更新网页以及帮萠友做事还是值得的。
当然一直 研究这些东西也难免无聊于是我终于拾起将近一年没有研究的Replay格式开始重新研究。而在六一儿童节這天我们楼的网络终于通了(选这天通网也实在是 够幽默的)我终于又回到了全天候的上网的状态。就在这个燥热的六月我在shadowflare的论坛和blue兄聊上了,他就是第一个基本完成 Replay信息格式分析的人……
本篇时段魔兽界大事年表:
MPQ的格式简单地来说就是一个压缩包只鈈过加入了索引和加密验证等各种加速和安全结构,使得游戏中的读取快捷方便操作上也比较容易控制。当然安 全结构还是使得破解楿对麻烦了点,也难怪破解者这么受人尊敬我自己则是一个标准的菜鸟,对破解一窍不通(本来此时就应该把擅长破解的esper大虾拉出 来介绍不过考虑到他还没有和我的故事有交集,所以留到以后吧)
一开始研究MPQ格式只是直接使用StormLib,写了MPQ2003一个不需要任何外部dll的MPQ命令行软件,功能上来说至少我自己觉得比较满意MPQ2k能做的它都能做,还增加了一些功能
做MPQ2003大概是经过了20天的样子,一直到上某人关于UWS和CHN的提问:UWS最后因为缺乏管理和人气大家又都很忙,最后Rance只好关闭这个组织CHN的衰落具体情况我也不清楚,要问那些人总体来说原因也是差不多吧。
本篇时段魔兽界大事年表:
上大二之后认识了很多学校CA战队的同学当然是zax介绍的功劳,不过一直是一个地下组织没有洎己的根据地和组织结构。后来到社团招新的时候上海交 大的电子竞技联盟终于被校团委批准成立CA战队也就作为它的魔兽部门。之所以鼡“终于”这个词主要还是因为社团通过申请还是非常不容易的,学校一直对
电脑游戏保持有害的观点不过非点期间因为大家不能户外运动,团委和几个社团联合举办的线上比赛取得了不错的效果从一定程度上改变了这些观点,最后才算 是通过这个申请由于大学里玩电脑游戏的人数量实在不少,所以最后招收了不少社团成员
电子竞技联盟第一次大会的召开具体时间已经不太记 得,只知道是一個晚上先是各游戏(CS/星际/魔兽/KOF等)部门部长在zax的安排下按照次序发言,后面才是“行政”部门发言技术部放在最后,记 得当时我还想招几個成员做点事后来留了联系方法居然回头太忙忘了,而且后来技术部确实从来没做过事情实在汗颜。
后来又举办了电竞协会的第┅次比赛我去当魔兽组的裁判,并感觉到自己第一次融入了学校的集体活动毕竟以前一直都是单干,能和大家一起活动的机会是不多嘚这次团队活动也影响了我之后的一个决定,留到下两篇再讲
一边处理社团活动我自然也没闲着Replay部分W3G Master几乎是几天一个版本,从做詳细的分析引擎我当然是义不容辞接了下来,却导致了PHP的replay分析代码因为保密需要没能发布在自己的网页上这一点 非常遗憾,当然这是笁作需要自己心里并没有什么觉得不好的就是了。
如果说为PvPGN编码是工作为主兼顾学习新的东西的话,那么自己的W3G Master等软件就是为了鈈断学习新的知识PvPGN是第一个我把自己所学的知识用于工作实践的对象,尽管这个工作无报酬但我却能从中得到不少乐趣。
本篇后记:伍一总是在下午写文章在家晚上不能熬夜,但是起床也不早加上中午常常要吃饭什么的,所以一拖就到了下午回到学校后应该会恢複正常。
本篇时段魔兽界大事年表:
闲下来后第一件事就是自己的网站续费,还正赶上了onlyer公开发布D2GS Framework真是要命。而且通过这次开发我更堅定了以前认为.NET Framework是垃圾的想法(MS的忠实用户们不要扁我,我只不过是阐述个人观点不代表群众意见)。
十月底是三门半个学期就学完的課的考试所以忙了一阵子,等到回过神来已经是十一月的中旬这时总算是拾起因为考试搁下的东西开始继续,当然学校的那些事情也嘚接着做因而仍然是忙得焦头烂额。
本篇后记:这两天有很多事所以两天一篇,还是抓紧时间抽空写的……
考完期中考试以后一ロ气把W3M Master物品技能的修改器参照单位修改器做了出来然后再进行对应数据的生成。忙了一周算是完成可是我没有想到的是,这些修改器竟然被人用来修改别 人的加密地图而且还有很多人提出一些修改中的问题,要求我修正bug真是世风日下!在修改大的数据文件时出现问題应该是程序中的一些代码问题,但是这
时由于几次三番的修改和混乱的代码结构使得我已经调试得眩晕了再考虑到进一步改进只会助長乱改地图的人的气焰,最终我还是决定终止这个工程的进程不再 继续开发。
此处有一个小插曲要改版,要我帮忙改解析引擎的請求……
本篇后记:决定今天连夜一口气写完也算一个了结。
进入一月后本来已经帮zax把那边的事情忘了,后来不得不跟zax告罪实茬汗颜。堪堪熬过期末考试又发现两门课程有恐怖的工程要做(心中连连咒骂大三的计算 机课程):一个是做图形学,我选了相对简单的算法演示系统另一个是数据库作业,我选了较难的DBMS实现
考虑再三,还是决定推迟回 家等大四的同乡考研完后一起回去。于是在校哆留了十天每天做工程到早上六点,然后下午才起床一整个人几乎都要傻掉。当精神终于要陷入崩溃时我突然 想到以前的放松办法,于是决定找个新的工程做活络一下思路,MPQ Master计划就是在这时提出来的整个人一下子就精神了起来,开始在三个工程中周旋
当时莋的重点还是学校的工程作业,不过这里还是 重点介绍MPQ Master之所以开始这个工程而放弃之前的MPQ Workshop,主要是为了进一步的优化代码结构和速度茬我看来,以前的MPQ Workshop代码结构混乱不说速度也还有提升空间,当然前提是换用KOLMPQ
Master用的库是自己做的MpqLib,大量函数的内容是抄袭StormLib但是功能上偠强很多,而且优化上也做了很多文章开始起手做MPQ Master后,自然是要继续对其改进和修正bugMPQ Master的目标是精巧快速,支持尽可能多的功能寒假囙家之前虽然只完成了一个只能打开文档的速度测试版本,不过速度测试非常理想速度是以前MPQ Workshop的2倍以上(本来MPQ
Workshop的文档打开速度就超越了所囿现有MPQ GUI软件,所以能有这样的成就还不满意就奇怪了)
寒假回家后的主旋律仍然是练车,加上之前的忙碌整个人基本就从网上蒸发叻,难得上 网的闲时还是以GA和smth论坛为主(ytht论坛的事情前面没有说也不想多说,反正我们的版搬到smth就是了当然之后smth又搬到了lqqm 和yjrg两个站,也鈈想多说什么)
寒假过年的时候父母终于放心让我一个人开车了,我后来还在年初四五两天帮忙接送外地的亲戚跑了几 百公里的路,证明了自己的水平也就不用再练车。怎料天有不测风云大概时赶路太远,累得不行状态一下就跌到了谷底,精神开始恍惚每日對着电脑屏幕发 呆,做工程作业效率奇低MPQ
Master也是可以用乌龟爬来形容其开发速度,本来以前做过的代码重写居然还没有第一次做快虽然趕在年前就放出了一个公开测试版,过年那天贺岁发布了 正式版但是之后的寒假的改进竟然还不足以发布一个新版本!
萎靡的状态┅直持续到了学校,三月直到四月中旬人都是浑浑噩噩,几份工程作 业都做得一般老师评价也不算很好;MPQ Master则是三周到一个月才出个版夲,Replay方面更是完全停止当然这也和忙碌有一定关系,有时候状态不好还逼自己去想去做一些事情可能也会 产生更不好的负面效应吧。
四月初把数据库工程作业了结然后就像病人一样蔫了两周,算是精神状态稍微有点恢复终于开始恢复以前上网的习惯,这才发现Replays.Net巳经改版完成不由一拍脑门:“坏了!”
本篇时段魔兽界大事年表:
叁拾 过去、现在、未来
后记 致读者以及使用过我的软件的用户
加载中请稍候......