游戏脚本语言KongFuScript | 您所在的位置:网站首页 › 游戏脚本编程入门先学什么 › 游戏脚本语言KongFuScript |
一切要从这本书《游戏脚本高级编程》说起,2006年我在上海一家公司找到了第一份游戏开发的工作,当时我问了老师一个问题,能不能把游戏中的逻辑,放在外面,游戏运行时才确定游戏里的对白,逻辑。老师说“不能”。但我还是很疑惑,因为在1997年的时候,我买了一盘游戏卡带,名字叫《亚瑟传说》,那是一个MD的RPG角色扮演游戏,把游戏中大量的逻辑和对白直接写在程序中,代码一定特别的乱,开发也会特别的费劲,我总感觉一定有其他的方法来开发RPG游戏。 后来遇到了这本书,解答了我心中的疑惑。 这么说很抽象,我们先看两张图片, 这是写在游戏引擎外面的脚本部分, api的函数是游戏引擎提供的函数,下面的runStage1是脚本自定义函数, 我们接着看第一关的游戏内容, 我将游戏设置了三个难度, 游戏刚开始,生成三个敌人在屏幕左方,等待一秒后,在屏幕右侧再生成另外三种敌人。 游戏引擎写好后程序就可以先不用动了,策划可以通过脚本编写游戏里的关卡设置, 动作游戏也好,飞行射击游戏也好,还是剧情庞大的RPG游戏, 都可以通过这种方式,让游戏内容和游戏引擎相分离, 实现方法是,写一个编译器,将脚本的内容编译成字节码(汇编码), 在游戏引擎中写一个虚拟机(汇编码解释器),这里对应的是kongfuScript文件夹内的部分, 游戏的内容是通过动态读取外部文件获得的, 所以修改游戏内容,游戏引擎不需要重新编译,完全不需要动。 这就好比是 磁带和录音机之间的关系,游戏内容是磁带,游戏引擎是录音机。 这种开发方式很节约成本,而且确实有效。 比如说,一个游戏公司开发了一款叫《火焰纹章》的GBA游戏, 那么在开发续作的时候,不需要重零开始,再写一遍游戏引擎。 更多的工作内容是修改游戏中的剧情内容。 我在kongfuScript中使用的关键字有 true,void,else,while,number,if,default,do,continue,case,string switch,bool,break,false,for,return 后来在开发unity项目的时候,又加入了一维数组。 做了这么多年游戏编程, 使用了各种各样的语言, 其实做游戏还挺有意思的, 但说实话,即使我这么努力了, 十几年下来,还是买不起北京的房子, 我少算一点,就算5万一平米, 买个一百平的房子,500万, 我最多时,一个月顶天能存下一万多点,一年能存十万都不善不善了。 这就是现实,当我有一天突然意识到自己没法在北京安家时, 我已经浪费了十多年的时间, 而在这十多年里,我同寝室的人 大多已经在当地站稳了脚跟,事业上有了一定的发展。 很多时候,选择比努力要重要的多。 我是不推荐大学刚毕业的人走游戏开发这条路, 要不停的学习新的东西, 之前学过的东西过了几年就不会再用了, 十年过后,突然又出现了一个新技术, 你被迫和其他人,又回到了同一起跑线, 好比你寝室里一个是有十年经验的医生, 另一个是是有十年教学经验的老师, 而你,却因为今年刚出现的一种新的编程技术, 要用35岁的年龄,跟25岁的人一起抢一个饭碗, 当出现这种情况的时候, 面试管一看到35岁,眉头都不免一皱, 心想 “大爷,您都该退休了怎么还在这发挥余热呢?” 年轻人,我劝你好自为之,不要走游戏开发这条路。 |
CopyRight 2018-2019 实验室设备网 版权所有 |