欢迎来到 Mario Forever 百科!编辑前请创建一个账号,或使用现有的账号登录;并认真阅读用户须知

自2020年7月14日起,未验证邮箱的用户将无法编辑页面。请前往参数设置验证邮箱,谢谢您的配合。

Geography Engine

来自Mario Forever 百科
跳到导航 跳到搜索

Geography Engine 地理引擎
Geography Logo.png
引擎作者 雨树·电童
开发环境 Clickteam Fusion Developer 2.5+
发布时间 2020年11月14日
最新版本 0.5
下载地址 点我下载,提取码:genb

引擎介绍

Geography Engine 是吧友 雨树·电童 于2020年10月14日开工的第二个1.5次开发引擎,也是该作者第一个几乎完全从零开工的引擎。

相较于其另外两个开源引擎——Cauldron Engine(旧版本称Mario Forever Engine Everybody)和Star Engine,Geography Engine 既保留了CaE的RE式编写操作,同时又吸收了SE的接口操作精髓,一定程度上可以说是CaE和SE的混血体引擎。

引擎优劣点

优点:

  • 保留了Rainbow Engine式的编写风格,但又有Star Engine式的接口操作的特色。
  • 最大限度地不使用CTF自带运动和Every计时器,以保证在低帧率条件下最大限度地减少因计时器与帧率异步而导致的一系列bug
  • 原生支持带彩条的反重力,这一点SE和RE都是没有的,完全属于作者自摸
  • 踩平台更加精确,更不易出现因平台纵向速率过大而导致的错位bug
  • 平台边界非常灵活,你甚至可以做出一定形状或一定范围内运动的平台。原生自带圆周运动平台
  • 同SE一样支持添加多角色
  • HUD的数字更加紧凑,且最大限度不占用其他player以记录玩家金币数和时间
  • 马里奥的彩条判定更加精确可靠,与磁铁墙彻底 bye bye
  • 滚屏简单易用:确定滚屏左上角和滚屏右下角,配合刷新滚屏控件即可。
  • 奖励可通过在编辑器中与问号块完全重叠而实现

缺陷

  • 由于功能太多,接口处理部分过于复杂,对一些自创要求高的作者可能需要消耗一定精力去消化有关代码
  • 编写量巨大,且每个功能/组可能与其他功能/组密不可分,对用户会一定程度地造成使用上的不便
  • 由于编写时采用了大量的快速循环和遍历筛选循环,因而会导致在游玩时会出现局部卡顿从而影响整体流畅体验
  • 强制滚屏虽然比RE更直观易用,但必须配合强制滚屏节点使用,否则滚屏失效
  • 一部分物件的行为在物理性质上与MF不相符:如火球在弹起时如果上侧碰墙则不会爆炸
  • 圆周平台无法使马里奥的y位置得到补正(纯属技术力有限)
  • 运动类型为general的物件的水平速度在不希望出bug的情况下必须且只能为8的整数倍

引擎作者的话

编写这个引擎的初衷,是因为看到很多玩家使用RE时出现许许多多问题,包括磁铁墙和有缺陷的平台补正。为了弥补这两个问题,也因受到das无彩条判定的启发,加之之前对于Star Engine的处理,我于是在10月14日晚,打开电脑,打开我的CTF2.5+,开始着手研究……从最初的“应用程序1”,到后来的“Geography Engine”,截至11月15日,已经工作了近四周的时间,每天至少4小时都在这上面。也因此,我这段时间每天晚上熬到几乎12点才会上床……

然而,开发的过程十分坎坷。因为是第一次尝试几乎从0开发,我就利用我那三脚猫的代码功夫,按着那疯狂的想法,挖起了这浩然一坑。谁知,原本我认为的理想仍旧还是理想,现实却更是比理想出人意料:大量的bug层出不穷,大量的代码从头重写,大代码阅读量让人难以忍受……可是,即便如此,我还是觉得,如果这个坑半途而废了,那我这几(十)天的努力也就随波东流了。为此,我还要特别感谢das,在我开发前期,我向他求助,他基本上都接受,帮助我修bug、调试代码……在如此高压的学习环境中能抽空帮忙,我觉得是可恨可喜的——可恨的,是我伤害了我开发路上的“先贤”的学习之树;可喜的,则是我在他的帮助与自己的无限努力尝试中,得到了升华。

终于,在2020年的11月14日,GE华丽现身。

希望我这个用心且几乎从0开发的引擎能够帮助更多的MF作者实现他们的MF梦。

更新一览

更新一览
版本 更新日期 更新内容
0.1 2020.11.14 加入基本元素
0.2 2020.11.15 修复bugs:
  • 龟壳无法连击
  • 水管传送错误

改动:

  • 加入布布鬼和乌贼
  • 加入门传送
0.3 2020.11.17 修复Bugs:
  • 库巴运动不正常
  • 食人花在马里奥出水管时无法自动缩回

改动:

  • 添加了全跟踪炮弹,补充上绿游鱼生成事件
  • 现在含有general运动类型的instance可以走得更精确了
  • 马里奥跳跃手感更加复原MF了(不使用TimerX)
0.4 2020.11.19 改动:
  • 控件稳定优化——为了进一步防止ctf2.5+ r292.22的用户在使用时会概率性崩溃,此次将控件所持有的分组上限缩小为3个,因此新增控件:平台,负责防止马里奥踩平台时出现漏判
  • 将地面与背景按需加入并同时条理化(此处指采用统一格式并进行适当整理)
0.5 2020.11.21 修复Bugs:
  • 马里奥过关后按住方向键会出现走动
  • 过关后time左侧秒表仍在运动
  • 强制滚屏相关控件没有隐形
  • 火球系实例无法击碎冰块
  • 库巴打死后,若未放置停止滚屏,则会继续滚屏

改动:

  • 压顶刺(事件控制)
0.6 2020.11.25 改动:
  • 补入链条
0.7 2020.12.4 修复Bugs:
  • 冰块无法被很好地击碎
  • 冰球龟无法冻结金币
  • 部分敌人横向运动抽风
  • 马里奥跳跃时若顶到角落则可能会二段跳而导致其向上卡出天花板
  • 跳乌龟会概率性向上卡出天花板

改动:

  • 修改了实例组的运动方式,现在实例组的任何运动都支持子像素(小数速度)运动
  • 实例组新增字符串变量B和C这两个string:String B:负责控制实例类型,一般为空或者bullet;String C:负责控制实例(在 String B 的情况下)的子类型/额外属性,所有弹性火球均为fire。
  • 特别提醒:新改写过的代码在对火球适用时会极小概率触发向下穿墙的bug,估测概率为0.1%