学Zinc的动机应该与Vjass是大同小异的,关于这点,请参考老虎的Vjass教程前言,在读完该前言并且做出深刻体会之前,看本教程是没有任何意义的.
首先,作为一个WEer,为什么要学习Jass,Vjass,Zinc这些看似高端的语法呢?我在这里可以先告诉你们Jass,Vjass,Zinc都不是作图必要掌握的东西,WE(World Editor)已经提供的很好的GUI编辑器(Trigger-触发器编辑器),这个编辑器已经能够满足我们99%的需求了.特别是近段时间everguo等人推出的YDWE又把许多Jass编辑后的功能加入到了GUI编辑器中,现在大家对Jass,Vjass,Zinc的需求又更进一步的下降了.作为一个WEer我们还有什么理由去学习这些看似高端的语言呢?我要给大家说两点,大家请不要轻视这两点的重要性,认真的思考,自己到底应该做一个什么样的WEer.
我想很多人在这个问题上分的并不清楚.好玩并不等于高技术性.目前很多作图的朋友喜欢把地图的系统做的非常复杂,合成装备列成列表的话可以拖拉一大片下来,隐藏元素一个接着一个,操作难度上一个比一个更高,作为一个游戏设计者,对这些元素的控制一定要有度,有清楚的认识.并不是合成越复杂就越好玩,隐藏元素越多乐趣就越多,操作难度越高成就感就越大的.就如同操作系统一般,微软的Windows占领全球90%以上的市场,Mac(苹果)7%左右,而Linux只占1%左右.如果玩过黑客,或者对操作系统有一定了解的人,都知道Linux的安全性比Windows高出若干个等级,技术可以说只高不低,诸多的服务器系统都是Linux.但是Windows这个每隔不到1个星期就爆出几个小漏洞,3个月1个大漏洞的操作系统却牢牢占领着市场主导地位,而Linux或许很多人都不知道.
对于想要做好玩的游戏的朋友,你们要认识到这样一个事实,玩家第一次玩某款游戏,对任何游戏都是陌生的,不理解的,任何游戏对他们来说都是新游戏.如果你的内容越复杂越庞大,他们就越难理解,接受起来就会更加的困难,如果他无法接受游戏内容,无法理解游戏内容,也就无从产生游戏过后的快感.我们不能为了复杂而复杂,而是应该考虑玩家想要的是什么,尽量在不必要的情况下给玩家最简单的内容,循序渐进.你们所需要解决的核心问题是如何让游戏更好玩,而不是如何让游戏更复杂.当然同样的,一个一点复杂度没有,如同挂机式游戏也是无法吸引人的.或许在开始的时候玩家有虐怪的快感,但是随着时间的推移,这种快感势必将越来越少,没有内涵的游戏是无法长远发展的.要在玩家接受的程度上做一些难度上的提高.这个度大家要判断好.
还有一种便是追求技术性地图的WEer,他们可能一开始也是想做一张好玩的地图,结果却被制图技术所吸引.渐渐的开始对WE研究的越来越深,花的时间也越来越多的集中在技术的探索上,而忽略的地图的制作.这就是为什么很多高手却出不了图的原因.因为他们的时间不在制图上,他们的兴趣已经偏向技术方面.或许你可以在各大WE论坛上看见他们的神奇的系统和演示,但是他们却无法交出一个成品地图.
这是大家需要考虑的第一点,你想要的是什么.如果你想要做好玩的地图,并不一定需要去学高端语言.但是同样的,你如果已经学会了Jass,那么你将没有任何理由不学习Vjass和Zinc,因为Vjass和Zinc使用起来更方便,也更加适应人类的思维方式,它可以使一个复杂的问题简单化,逻辑化.当然你也可以从中学到更多,比如解决问题的思路和方法.
我想目前绝大多数玩WE的都是还没有参加工作的,WEer群体极大部分集中在学生这一集团中,我也是从学生时代(好吧…几乎都没有怎么上学…)开始玩WE的,我玩的并不深入,没有深度的钻研什么的东西,但是对于WE对我所产生的影响却是非常非常大的.因为WOW8,因为WE现在我已经进入了游戏公司,做了一个游戏策划,因为我喜欢的东西,而让我的事业顺利展开了.任何自己热爱的东西对于自己都是有帮助的,人们因为兴趣而追求,因为追求而提高,因为提高而获得成就感与满足感,这是一个良性的循环,所以人们常说,要做自己喜欢的东西.
我想很多朋友都会说WE这么小的一个东西会有什么影响呢?是的,很多人对于其他人所热爱的东西都会产生这样一个疑问,你热爱的东西有用么,特别是对于艺术方面,音乐,舞蹈,大家的质疑也是很大的,因为他们会怀疑你能否因此而生存,自己也会怀疑自己的能力,是否能够以此谋生,喜欢跳舞的很多,拿这个东西去生活获得成就的有多少?人们很容易被这种对自我的质疑,对未来的未知感到恐惧,后放弃兴趣.很多大学学的是一种专业,出来以后做的是另一个行业的,这种情况屡见不鲜.是的,大学生都是如此,何况小小的一个WE,一个兴趣能起到什么作用呢?是的,这些东西是渺小的,可是他包含的却不小,只能说自己没有做到,你为你的兴趣做了多少,你从你的兴趣中得到了多少,你了解你兴趣里包含了多少内容么.小小的一个WE,他也可以创造一个游戏,他让你进入了制作游戏的世界,从中你应该学习到的不仅仅只是WE的知识,你应该接触到更多的游戏制作人,你应该了解到如何去做好一个游戏,当你的兴趣产生的影响越来越大,你的成就也就越来越大,在你不断的追求中,这个小小WE已经被你超越,它反映的是你对于游戏的追求,对游戏的热情.即使是暴雪也没有想到一个小小的WE能让IF创造出DOTA,创造出了一个能和魔兽相提并论的魔兽RPG地图.而且游戏是很大的一个范围,游戏即使娱乐,不单单是网络游戏,单机游戏这些,它还包括着伟大的围棋,俄罗斯方块,魔方…这些都是游戏,强大的游戏,再上升一个层次,你要思考你做这些是为什么?为了给大家制造乐趣,遵循这样一个最终的目的,你可以做的更多,追求更加远大的目标.这些是兴趣对于人生产生的影响,它的作用范围并不小,它是广大的.那么即使有如此宏大的思想,那它对于你究竟产生什么改变呢?
从上面的第一点,我说了两种类型的WEer.第一种WEer可以从WE里获得的是,游戏规则的制订,数据的搭配,关卡流程的设计这些知识,这些正是游戏策划人所需要的基本知识,如果你想做一个游戏制作人,可以从这里获得很多很多.我推荐你们把自己的想法写下来.总结自己能够获得更多一倍的提高.你可以略微的学习尝试一下Jass,Vjass和Zinc因为在将来的工作中,你需要程序员的思路,而Jass,Vjass,Zinc与其他的语言也有共同之处,如果有兴趣掌握的话,对将来做一个游戏制作人会感到得心应手.第二类人,比较倾向技术性,应该深度的学习Jass,Vjass,Zinc,因为他们接触的更多的使技术,所以他们可能想做的并不一定是游戏制作者,而是一个高超的技术工作人员,这类人并不一定去做游戏制作人,而可能从事编程,开发之类的工作.Jass,Vjass,Zinc可以让他们在当前的兴趣上更加方便和熟练的学习其他的程序语言.而这其实对于开发人员来说也是很有价值的一件事情,因为你在不断的探索上,对语言了解相当深入,熟练,并且可以当做实际项目来做,对理解其他程序语言有很大的帮助.不是单在学校上学就能达到的高度.而你们也是会在未来超越WE,去做更大的项目,更难的项目.
(Vjass系列教程第一版【TigerCN】, Warft_TigerCN, 休_休, 馄饨, 疯人&衰人, Aeris, 2010-01-05)
Zinc是基于Vjass发展而来的更加像c语言的一种Jass语法,由Vexorian开发.
现在比较完善的Zinc资料,我只能说有一个比较好的语法手册,那么就是Vexorian的原版Zinc Manual,至于中文的Zinc资料,大多数都是翻译的这个文件.
由于本人观察到论坛的一些朋友有需求,本人决定写一个Zinc教程,基于Zinc语法,附带介绍一些Vjass,并且重点将实践,而不是干巴巴的语法.
所以,说这个东西是个Zinc教程,倒不如说是Vjass功能介绍,因为Zinc本来就是c语言风格化的Vjass而已,本教程将以一些大家经常纠结的演示,用Zinc写出来,并且介绍一些有用的库.然后会由浅至深地讲解,从如何写一段Zinc代码到内部实现原理.
本人一介学生,有些东西学的也不扎实,也就是传说中的半吊子,如果在阅读中有发现疑问,我会尽力去帮助解决.
小弟不才,虽然06年就接触WE,但是仅限于改改别人图里面的英雄名字,或者是做一些类似,很多金矿,怪物很强,很多宝物的对战地图.直到07年底.
那时我玩了一张RPG地图,是WOW背景的,由于本人自身就对WOW有很高的热忱,毅然决定开始做一些WOW里面的东西,最开始只是拿T随便做做,期间也会做一些暗黑2的技能啊什么的,后来开始慢慢遇到一些比较难做的东西,比如额外伤害,但是当时一看到JASS就吓跑了.
08年底,决定开始做一张WOW里面的职业VS暗黑2里面的7英雄的竞技场地图,然后开始在GA,WOW8,飞飞,u9等论坛开始活动.下载了上十G的教程,模型,纹理等等等.09年春季,由于种种原因地图流产.
09年中旬,决定做WOW-TBC的祖阿曼,最开始写了12个触发来实现冲锋的多人,过了一段时间发觉这样下去不是个事,然后又要写仇恨系统,需要对数组排序,这个东西用GUI做起来必然很蛋疼,然后开始接触一些JASS的简单语法,比如循环,比如函数,然后觉得有点那个意思,然后就开始看各种Jass教程,直到看到一个RB-GC-TIMER三剑客的教程,恍然大悟,本人正式走上了渣死之路.这里要感谢Everguo的Jass培训班教程,给了我不少帮助.
地图做到09年底,开始发现一些非常模型化的东西,用Jass写起来甚是麻烦,并且由天之涯华引荐进入了以前老虎的群,并很荣幸地认识了老虎,然后我一厢情愿地称之为师傅.在接下来的几个月内,师傅不停地向我灌输Vjass知识,让我学Vjass,开始看了Aeris的Vjass教程,里面是大量的面向对象编程思想,以及对于当时的我来说Vjass高深莫测的语法,于是不以为然,后来老虎也出了Vjass教程,无聊之时一看,发现了一个叫TimerUtils的库,发现计时器原来可以这样绑定数据,10年初,我正式堕落入了Vjasser的行列.
然后后来又被老虎怂恿使用Cjass,10年底又拿着Cjass去wc3c提问结果被告知Cjass在当时有一些未修复Bug,并且那个论坛不支持Cjass,然后在Bribe的推荐下,我又开始使用Zinc.
然而,话说回来,无论Zinc还是Cjass,都是基于Vjass的语法发展而来的,Vjass本身就是一个提供了面向对象编程方式的Jass而已,其解析速度自然比Jass要慢,执行起来往往会比Jass要占用更多的空间,并且如果导入大量的库的话,代码尺寸也会膨胀到一个可观的数字(特别是wc3 1.20那种每个字节都要计算好的版本).
并且现在有了YDWE这么好的工具,逆天存储及其方便易用,中心计时器的效率秒杀一切计时器算法.
那么,Vjass以及其派生物Zinc等的存在意义又是什么?
本教程将通过大量的代码以及详细的注解,带领读者由浅至深地认识Zinc,以及其基本工作原理.
每一章节将会附带演示地图,使用的WE是YDWE1.21修正版,使用该WE的主要目的是为了方便论坛的朋友们,以及对该WE做推广,并且这个WE也是笔者自从不使用NewGen以后一直使用的WE,将它介绍给大家,并无害处.
有些章节末尾附带的库文件,格式为txt,如果点击以后浏览器自动将其打开,读者可以右键点击该链接然后选择链接另存为.
如果对本教程或者是内容有任何疑问,请在该教程原帖留言,或者是发送电子邮件(yatyricky@gmail.com)给作者.
那么,各位准备好了吗?开始Zinc之旅吧.不过,在开始之前,还是要严肃地提醒大家一句,也是老虎,Everguo等人数度提出的问题,学这些东西,最终目的是做图.并且学Vjass以及其派生物的主要好处是方便维护代码,如果读者是图做完就扔一边开始下一张,或者是自己觉得可以很好地管理自己做出来的东西,那么,Vjass等对读者也不是那么有必要,总之,请读者自己权衡吧.
没有他,就没有JassHelper, Vjass, Zinc这些工具以及语法.
他们创造了我到目前为止见过最好的中文WE - YDWE.当然,我正在使用这个WE.
可以说这个论坛给我的帮助比WOW8要大,可能是因为人少吧,在WOW8我总是一不小心就被无视掉了.
笔者最早接触的WE论坛之一,第一个开始认真学习WE而常驻的论坛.
是他们给了我动力写这篇教程.
他们编写的Vjass系列教程第一版【TigerCN】让我走上了Vjass之路.并且休_休的序言是每一个想学Jass, Vjass, Cjass, Zinc的人都应该思考的问题.
该网站提供了免费了网站服务器,以供该教程实现互联网共享.