02 Nov 2018 02:23
标签 gms 脚本库 震雷霆
已在论坛发布,这是地址。
为什么要建这个脚本库
你是否讨厌不停的造轮子?
你是否需要更精巧,经过优化和测试的脚本?
你是否需要一个成熟的游戏框架?
这个脚本库将会“慢慢的”满足你的要求,你只要完成游戏的核心功能代码和游戏设计就足够了。
脚本库的构成
脚本库的初始部分来自deciia以前的项目和日常的收集,之后的部分将由使用这个脚本库的开发者一起协作完善。
这个脚本库将包括以下几个部分:
- 数据处理,包括数学,字符串,数组,数据转换,数据结构,文件处理等相关脚本库函数,补充系统函数缺失的部分。
- 事件处理,事件传递和触发,设置与获取,计时器与时间轴处理,相机与视野,碰撞,输入,声音处理,检测等相关事件的处理,改善和优化开发引擎的事件处理方式。
- 绘制处理,包括精灵,文本,特效,3d,着色器,图元,形状等相关的绘制函数,简化绘制的设置,通过少量的脚本库函数完成精美而又复杂的的效果。
- 功能引擎,对话,动画,UI,本地化,调试等基础功能引擎,针对游戏开发常用到的功能开发通用的、完整的功能引擎,方便快速调用。
- 游戏玩法,根据玩法类型的不同设计的一系列脚本。
脚本库的未来规划
通过论坛的活动开放给少部分人体验。
邀请一部分体验者成为脚本库的协作者。
代码基本稳定之时开源给所有的开发者使用。
脚本库的开源协议:
LICENSE-CC
LICENSE-LGPL
允许商业使用,但必须署名。
如果修改本代码库的内容并进行二次发布,则必须开源。
帖文预览:
关闭预览脚本库的命名规范
[x]让所有的资源和脚本符合命名规范
[ ]测试脚本的功能在gms2中是否可用
[ ]将部分gms1兼容脚本的库功能改写为gms2的形式
[x]给复杂脚本添加 #region #regionend,让代码结构更清晰
[x]建立脚本的JsDoc说明
[ ]为稳定的功能创建扩展,提升加载速度
[x]在libconGame中添加单obj逻辑,不改变游戏结构的情况下,方便快速建立demo测试玩法
自用的,没有lib前缀,公用的,有lib前缀。
命名中包含属性,比如libspr_enemy_big的big属性
命名中不包含属性的,比如libsprEnemy01
公共部分:
自定义部分:
冲突的解决方案
本地变量如果可能会与资源名发生冲突加“i”作为前缀
部分局部变量如果能会与本地变量和资源名发生冲突,加"v"作为前缀
脚本内部调用的脚本加“__”作为前缀(减少自动显示的条目数),如__lib_sth_sth。
因为未来,请尊重现实,或忘掉现实自由地幻想。