GMS2开发通用函数库 脚本
断水 发表于 2018-12-07 02:11:18 845

为什么要建这个脚本库

你是否讨厌不停的造轮子?
你是否需要更精巧,经过优化和测试的脚本?
你是否需要一个成熟的游戏框架?
这个脚本库将会“慢慢的”满足你的要求,你只要完成游戏的核心功能代码和游戏设计就足够了。

脚本库的构成

脚本库的初始部分来自deciia以前的项目和日常的收集,之后的部分将由使用这个脚本库的开发者一起协作完善。

这个脚本库将包括以下几个部分:

  • 数据处理,包括数学,字符串,数组,数据转换,数据结构,文件处理等相关脚本库函数,补充系统函数缺失的部分。
  • 事件处理,事件传递和触发,设置与获取,计时器与时间轴处理,相机与视野,碰撞,输入,声音处理,检测等相关事件的处理,改善和优化开发引擎的事件处理方式。
  • 绘制处理,包括精灵,文本,特效,3d,着色器,图元,形状等相关的绘制函数,简化绘制的设置,通过少量的脚本库函数完成精美而又复杂的的效果。
  • 功能引擎,对话,动画,UI,本地化,调试等基础功能引擎,针对游戏开发常用到的功能开发通用的、完整的功能引擎,方便快速调用。
  • 游戏玩法,根据玩法类型的不同设计的一系列脚本。

脚本库的未来规划

通过论坛的活动开放给少部分人体验。
邀请一部分体验者成为脚本库的协作者。
代码基本稳定之时开源给所有的开发者使用。

未来脚本库将采用以下开源协议:
LICENSE-CC LICENSE-LGPL
允许商业使用,但必须署名。
如果修改本代码库的内容并进行二次发布,则必须开源。


最后于 4月前 被断水编辑 ,原因:
最新回复 (5)
  • yunzl 发表于 2018-12-07 03:40:10
    0 2
    问题是,索引啊
  • 断水 发表于 2018-12-07 04:20:03
    0 3
    现在内容还不稳定
  • JH_Poem 发表于 2018-12-14 09:49:05
    0 4
    支持
  • 断水 发表于 2018-12-21 09:41:10
    0 5

    由于使用到了一些付费的插件,脚本库取消开源计划,除非获得原开发者的授权。

    目前仅为方便个人使用,并作为活动奖品提供限有限数目的分享。

    由于使用门槛提高了,为避免新手领取后而增加过多的技术支持,提高兑换的挑战积分,并在脚本库更新后通过少量的积分获得最新的版本。

    最终生成脚本库之后的版本更新会在本贴中说明。

  • 断水 发表于 2018-12-29 07:02:48
    0 6
    第一部分 数据处理
    1 将数学函数分为实数,矢量,几何,其中实数部分包括随机,权重,角度,round系列,选择,趋近(tween, approach),范围,计算,bits, 线性函数,spline曲线等。矢量部分是直接借用了市场上的一个插件 TMC vectors。
    2 字符串处理,包括字符串编辑,子字符获取,格式化处理,字符识别,字符串作为参数,字符串应用(比如直接计算字符串中的表达式)。
    3 数组数据,数组模拟列表和优先列表,数组创建和编辑,数组建立属性表等。
    4 数据结构,包括列表模拟优先序列、优先序列、堆栈,网格编辑,快速创建数据,数据转换,编码转换。树形图(ds_tree)和数据库(db系列)是市场插件。
    5 预设置功能,是市场插件。
    6 xml读取与编辑,是市场插件,我作了整理。
    7 迭代器,市场插件
    8 语言本地化,我作了扩展
    第二部分 事件处理
    1 万能的运行功能,结合ARG_EXT插件,可以运行字符串,数组,maplist数据 
    2 控制台,TDD调试(来自tweenline插件)
    3 我在单Obj活动中开发的单obj模拟的系列函数,一般不推荐用,主要是集成脚本库功能
    4 分层状态机,简单而又强大的状态,可以扩展
    5 行为树AI,没有做太多测试,可能会存在bug,之后会结ds_tree重新开发
    6 计时器,包括动态计时器,分组计时器,单个计时器,动态计时器由exTimer插件修改而成。
    7 碰撞函数,没有整理完
    8 声音播放,没有扩展开
    9 输入控制,之后会加入以前动作游戏项目中的按键序列功能
    第三部分 绘制处理
    1 绘制函数,主要包括精灵绘制,图形绘制,文本绘制,其它的后续再添加
    2 一种使用着色器的方法,更多的着色器脚本也会添加进来
    3 结合tweenline开发的相机处理函数,一个脚本实现tween移动,放大,角转动,震屏,闪屏,淡入淡出
    4 使用物体实例开发的粒子池系列函数
    5 简单的vertex buffer使用方法
    6 帧区间动画,将单个精灵的不同帧区间设计为不同的角色状态
    7 扩展zui的一系列脚本
    第四部分 玩法引擎
    1 tweenline2 ,来自市场,已经整合到插件里
    2 《梅林》项目中使用的对话与事件处理的引擎