百科问答小站 logo
百科问答小站 font logo



如何评价《骑马与砍杀》的修改器「魔球」? 第1页

  

user avatar   zhang-she-72-55 网友的相关建议: 
      

我是作者当中的SSgt_Edward。虽然已经不碰骑砍快两年了,魔球也很早就不再开发,但是回答一下这个问题,也算是对一段时光的总结。毕竟曾经为魔球献出了很多精力和时间。

很多人可能知道,我和作者中的Ser_Charles是双胞胎。初中就曾接触过骑砍原版,但因为接受不了那个画面而放弃......高三那年(2010年),正好是战团发布,在电驴上偶然看到便立刻下载下来玩,之后便一发不可收拾.......骑砍独特的格斗、马战系统,一下就把我们这两个之前基本只喜欢枪枪枪的玩家拖下了水。

高考完的那个暑假,我开始跟我哥(Ser_Charles)一起上贴吧。我到的第一个吧就是骑马与砍杀吧,很快就和贴吧里面当时的活跃人物打成一片。

至于开发魔球的动机,一张图就可以说明:

图1. 魔球的起源(2010-11-21)

时间(2010年10月)、地点(骑马与砍杀吧)、人物(我不是个过客、SSgt_Edward)就全齐了。高中就开始编程的我当时很喜欢做点小程序,图中的FileSnap就是当时做了用于对比Mod之间区别的一个小程序(说到底就是文件快照,类似于GitHub的对比功能)。当时大家对这个东西不是很感兴趣,但是可能是出于可怜我,过客就来推荐我尝试移植原版的编辑器(

【1.11.0.16】 部队&兵种&物品 编辑器 支持骑砍1.011版 多语言支持

,俗称美腿修改器)到战团上。

当时原版的编辑器是用Visual Basic 6 (vb6)写的,而vb6也正是我们最早接触的语言,所以很快就上手开始移植。比较难的部分是理解每个机器码的涵义。一上来就是看看美腿源代码,但战团的机器码新添了很多未知项。开始就是连蒙带猜,改一下数值,进骑砍看看变化。后来觉得这样效率太低了,突然想起不如看Module System (MS) Python文件里的注释来了解含义。果然基本MS里每一项数值Python文件里面都有介绍(虽然不是以机器码的形式),再结合MS的编译文件(process_*.py)来对照解析。解析完了,我们再想用方便的形式(控件)来表现给玩家修改。(想了解如何解析的玩家很推荐阅读这篇文章:

Item_kinds1.txt文件解析

于是,边解析边设计程序大概耗费了我们2个月时间。那时候我们刚上大一,课程比较紧张,南京的高校那时候晚上还实行断电(11点左右吧),我们每天基本就是白天上课,晚自习回来断电后搞一两个小时。那时候动机非常强烈,从来不感觉累,好的点子也是一个接一个的来。很快,12月份的时候,第一版魔球就发布了!

图2. 发布魔球(2010-12-26)

说到魔球这个名字,其实魔球里应该是看不到“魔球”这个字眼的。因为最早我们定的名称就是《战团剧本编辑器》。后来过客觉得应该也要和美腿一样有个通俗的叫法,然后加上我当时随便给编辑器弄了个图标(图3),过客就给起了“魔球”这个名字。

图3. 魔球的图标

魔球在中文站发布的第一天下载量就是3000多,这个和过客是分不开的。当时过客是骑砍中文站(

骑马与砍杀|骑砍中文站

)模型区的版主,我们一做出来,他就联系中文站给帖子加高亮,还挂了七天的置顶。现在(也就是今天:D),光中文站魔球下载量就是85w啦(图4)。

图4. 魔球目前下载量(2015-09-01)

第一版魔球对触发器是没有支持的(这里指广义触发器,不仅仅是simple_triggers.py或者triggers.py里的内容,包括物品的触发器),尽管我们也读取相关数据(甚至也解析),但没有提供用户接口来修改他们。我们当然不会放过这个骑砍修改最核心的部分,于是后面的更新主力就是在开发对触发器修改的支持。由于触发器类似于一个小语言(用数字表示的语言),所以如何把内容转换成人可读的(实际上就是反编译MS),并设计用户可以修改的界面(类似于IDE,图5)就是主要问题。也就是在这时候,我们其实已经后悔用vb6来写魔球了。原因有二:

1. 触发器里有大量的长整型(long,64位),而vb6所谓的长整型只有32位。这意味着我们需要自定义数据类型,而自定义数据类型意味着很多基层的操作(包括加减乘除)都要重写。vb6属于高级语言,对基层重写的支持非常差,使得我们自己的64位long运算效率很低。

2. 用于修改触发器的IDE无法直接使用现有控件,需要对现有控件重写。那时候vb6并没有直接对重写控件有支持,而是用Active X来实现。这个技术在当时算是很新颖的,但是兼容性做的并不好,这也是为什么后来的魔球还要装个额外的“运行环境”,其实就是往系统里装一些组件来确保魔球的运行。

图5. 魔球触发器编辑器界面(类似IDE)

一直到大二,魔球基本算是成型了,vb6在那时候也早已落伍,我们在做其他开发的时候也已完全转成C#或者Java,魔球的更新就这样慢了下来。在2013年6月份解决了最后一个问题之后,就完全停止了更新。值得一提的是,我们曾想采用.net构架,重新编写魔球,甚至基本已经完成,就差对触发器支持了,但因为需要准备GRE出国,所以最后并没有发布(试用版:

MOJO.rar_免费高速下载

),很是遗憾!

虽然魔球代码部分主要是我和Ser_Charles完成,但不少人也都为魔球做出过贡献。我不是个过客、鹿过(中文站ID:心中飞翔)、Last_Promise、威尔士游侠,等等。现在离开骑砍社区已经快两年了吧,回想起来却仍然有些心潮澎湃。另外想吹嘘一下,当年我和Ser_Charles联机也算是令人闻风丧胆的标枪步呢!:D

图6. Z队(当时)的Totti前来投降(大雾,其实当晚我们被他大锤子虐了)。原帖地址:

党队的标枪好准啊

最后,我还是想说一下骑砍的MS。虽然python是一个脚本语言,然而骑砍的MS却并没有把python当做脚本语言在用。之所以这么说,是因为骑砍在运行的时候,实际上读取的是txt里的代码而不是py脚本。而骑砍2准备使用C#,有两种可能:一是跟战团一样,C#只是一个编译工具,而实际读取的还是txt码;二是真正在使用C# script (

CS-Script

)。后者(动态语言)是目前的趋势,省时省力,而且扩展性比txt码更强,唯一缺点就是需要编程基础。




  

相关话题

  你在三国志11中打的最漂亮的一场战役是什么? 
  有哪些游戏情节至今无法理解? 
  《刺客信条》中的「信仰之跃」为什么摔不死? 
  有哪些游戏是由文化杂交/融合而来的呢? 
  单机游戏里有哪些匪夷所思的经典隐藏剧情和埋藏信息? 
  机能对于游戏来说究竟有多重要? 
  如何评价《赛博朋克 2077》里竹村五郎这个角色? 
  你第一个真心粉上的游戏帅哥是谁? 
  如何看待世嘉全面战争新作《三国:全面战争》? 
  你们觉得哪里可以称得上「宫崎英高的怜悯」? 

前一个讨论
现代战斗机空中如何作战?
下一个讨论
如何看待山东菏泽老人 27 年前存款 1000 元钱,银行承诺 20 万元最后只给 5000 元?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利