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

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

Geography Engine

来自Mario Forever 百科
马里奥X7讨论 | 贡献2021年7月25日 (日) 16:08的版本 →‎更新一览
跳到导航 跳到搜索

是时候该来一个让用户都能说灵活且好用的引擎了 ——作者

Geography Engine 地理引擎
Logo Remade.png
引擎作者 电童Isamo
开发环境 Clickteam Fusion Developer 2.5+
发布时间 2020年11月14日(旧版)
2021年5月14日(新版)
最新版本 b0.4
下载地址 点我下载,提取码:genb

引擎介绍

Geography Engine 是电童lsamo(原名:马力欧X7)于2020年10月14日开工,2020年11月14日完成的第二个1.5次开发引擎,也是该作者第一个几乎完全从零开工的引擎。

相较于其另外两个开源引擎——Cauldron Engine(旧版本称Mario Forever Engine Everybody)和Star Engine,Geography Engine 既保留了CaE的RE式编写操作,同时又吸收了其他引擎的接口操作与模块化处理,使得本引擎在制作DIY物品时简便灵活。

2021年三月,由于 Geography Engine 的大量不尽人意的缺陷,作者重写了这款引擎,于2020年5月14日发布 Geogrpahy Engine Remade 公测版。

然而,由于CTF2.5+的一严重bug,导致之前版本的大部分obj都暂时无法完善其中一部分机能,待CTF修复后将会尽快恢复。

引擎优劣点

优点:

  • 保留了Rainbow Engine式的行为编写风格,但又有自己独特的模块化操作。
  • 基本不使用CTF自带运动和Every计时器,以保证在低帧率条件下最大限度地减少因计时器与帧率异步而导致的一系列bug
  • 原生支持带彩条的反重力,这一点SE和RE都是没有的,完全属于作者自摸(出于各种因素的考虑,在GER里反重力在核心引擎中被取消,但保留了其接口,届时可以从模组包中获得反重力效果)
  • 踩平台更加精确,更不易出现玩家错位bug
  • 平台边界非常灵活,你甚至可以做出一定形状或一定范围内运动的平台(注意:若是渐变转向的平台,请勿将速度调太大,以免导致因转向不及时造成出界)。原生自带圆周运动平台
  • 同SE一样支持添加多角色
  • 不再使用 Player 2 和 Player 3 来记录玩家积分等数据,多人游戏可能(你想多了= =)
  • 角色的彩条判定更加精确可靠,彻底解决了磁铁墙问题
  • 滚屏简单易用:确定滚屏左上角和滚屏右下角,配合刷新滚屏控件即可。(为了增强实用性和便捷性,在GER中则转换为了UEL式滚屏放置)
  • 奖励可通过在编辑器中与问号块完全重叠而实现
  • 通过大小通关器的位置关系而自动确定左右过关方式,通过角色触发过关变量时其与通关停止点的位置关系而确定过关行走方向
  • 彻底避免卡机高跳,同时又给该引擎增加了原版所没有的特性

缺陷

  • 由于功能太多,接口处理部分过于复杂,对一些自创要求高的作者可能需要消耗一定精力去消化有关代码
  • 编写量巨大,且每个功能/组可能与其他功能/组密不可分,对用户会一定程度地造成使用上的不便
  • 强制滚屏虽然比RE更直观易用,但必须配合强制滚屏节点使用,否则滚屏失效(在GER中通过打开Flag31就可以防止强制滚屏自动追踪下一个目标
  • 莫名原因导致本人端ctf2.5不定期崩溃(具体请见简介,目前已通过一些特殊方式暂时性修复,尚不确定其稳定性)

引擎作者的话

编写这个引擎的初衷,是因为看到很多玩家使用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%
0.7.1 2020.12.6 修复Bugs:
  • 进一步修正了马力欧的运动手感
  • 石盾震屏中心不当
  • 绿飞龟踩不死
  • 多个【?】砖相距甚远时无法被顶
  • 红果、绿果出问号块以后穿墙
0.7.2 2020.12.14 修复Bugs:
  • 音乐会被多次加载(即每次碰到音乐对象就会(重)加载一次)
  • 马力欧死亡后不会再加载音乐
  • 暂停时不暂停音乐的bug
  • 马力欧在开始转向时如果松开与其运动方向相反的按键,则会继续按照转向处理速度
  • 忘记关掉显示彩条及判定
  • 马力欧无法跟随圆周平台,且之前版本中马力欧的y平台站位有问题
  • 有些敌人不会被龟壳打死但会被判定奖分
  • 黄飞龟没有运动迹象
  • 食人花运动抽风
  • 如果马力欧踩上静止的龟壳,有概率跳起
  • 喷火花火球落地太快,且喷火速度与原版误差较大
  • general运动物体如果刚开始靠墙则可能会被卡上墙
  • 无敌星撞墙不会反向
  • 有些飞龟踩掉后方向有误
  • 若存在多个飞鱼生成范围,则可能导致生成错误
  • 马力欧站在平台实心块上位置错误
  • 多平台概率性抽风
  • 链条无音效

改动:

  • 全跟踪炮弹现在默认速度为36
  • 圆周平台角速度现在默认速度为1
  • 现在悬浮平台会随着玩家的反重力状态而决定掉落方向
  • 新功能:主音乐,即无需音乐控件就能自动播放的音乐,在“场景事件控制”里找到“主音乐名”并赋值即可,需要带上后缀名。恢复时只需要使用“还原主音乐”即可
0.8 2020.12.17 修复Bugs:
  • 马力欧无法在一格高的空隙中跳跃
  • 过关后玩家子弹只有火球会结算成分数
  • 马力欧部分动画出错
  • 武器龟冰球无伤害

改动:

  • 集中化了马力欧的代码,现在用户调用/修改起来更方便
  • 加入啃脚地鼠lol
  • 对过关设置进行了修改,加入了一部分全局功能,为以后加入大地图的完整版提供接口
0.8.1 2020.12.21 修复Bugs:
  • 库巴尸体掉落缓慢
  • 漩涡在水平方向上吸不动马力欧
  • 滚屏关卡如果马力欧在一侧防走出滚屏外同时碰墙则会导致卡墙循环卡死游戏,同时优化了滚屏时的卡墙
  • 部分平台标记可能对平台不起作用
  • 平台渐变转向有问题
  • 死亡后音乐不再播放
  • 坦克滚屏马力欧不会跟随地面,且会拖死马力欧
  • 大量foreach导致卡顿
  • instance对象顶头判定无效
  • 马力欧从右侧悬崖贴墙下落时向左卡出墙

改动:

  • 重写了平台运动与实例运动:取消了大量的foreach,使游戏运行更加流畅。为此,本人进行了RE与GE关于20*13个板栗的实验:同样是板栗,在20*13的板栗方阵中,允许6*13个刚开始就在游戏窗口内部,其余在外部。经测试,待运行稳定后,RE与GE的帧率均保持在50fps左右
  • 精确化了马力欧的彩条位置
0.8.2 2020.12.25 修复Bugs:
  • 马力欧顶头卡死
  • 锤子龟运动方向错误
  • 火球在屏外发射时不激活
  • 有一个实例的尸体出屏后,其余所有的实例尸体均不掉落
  • 连跳的代码中条件不检测蹲下的状态
  • 跳乌龟、红果会黏在天花板上
  • 红果、绿果顶出后没有音效,且红果不会反向运动
  • 单次隐藏问号砖在玩家死亡后失效时,奖励反而不会销毁
  • 绿果、红果屏外反弹会出音效

改动:

  • 集中化奖励代码
  • 加入四种不同风格的地刺(有害方块),电珊瑚现在属于此类
  • 对奖励代码进行解读
  • 经本人考证后决定,马力欧的默认转向减速度现在为4而不再是3(W10E中马力欧在转向的同时也触发了不按运动键时减速,由于转向时减速3单位,不按键减速为1单位,则一共减速4单位)
0.9 2021.2.1 修复bug:
  • 若在强制滚屏关卡内马力欧碰到边缘,则其判定会有错位
  • 库巴运动不正常
  • 压顶刺事件不隐藏,且压顶刺不跟随屏幕运动
  • 玩家踩不上实例和玩家共用平台
  • 敌人顶不死
  • 喷火花同时喷火时会出问题
  • 震屏位置不对
  • 玩家运动手感在起步时有问题
  • 反向石盾在当下方(其头顶)有障碍物时不会向上砸(但是也使得其初坐标被迫向上平移1像素)
  • 武器龟被冰球冻结后的冰块大小不正确

改动:

  • 再次校正马力欧碰屏幕边缘的停止范围
  • 物件文件夹加入英文注释,方便国际友人快速理解与寻找
  • 玩家左右卡墙判定与踩平台判定加粗,同时对左右卡墙判定的热点进行了校正
  • 新加入“元素”组,负责集中处理冰火碰撞的事件,同时对碎冰事件进行改写
  • 再度改写敌人受伤,同时做出妥协:锤子不再可以得到连击奖励
  • 食人花伸出判定调整
0.9.1 废弃 修复bug:
  • 火球龟/冰球龟在与冰块完全重叠后发子弹会使子弹瞬移。且火球会在瞬移过程中消除冰块且不会爆炸,待瞬移结束后立即爆炸。
  • 松开开火键以后马力欧不会减速
  • 滚屏中心的位置只能锁定于(320,240)

改动:

  • 删除了一些无用的控件,同时修改了初始化事件
  • 马力欧的“重力矢量倍数”改名为“重力方向倍数”
  • 去除了其他组的父类,同时增加了水实心块
b0.1 2021.5.14 重写 Geography Engine,并添加后缀名 Remade,从此版本开始,上述所有版本均不再更新,Remade版版本号以b和r开头
b0.2 2021.6.2 机能重写
  • 部分物件使用低配版坐标位移运算,以减小 run & build 时软件崩溃的概率
  • 踩踏判定等价重写,保证精确度,防止误判

修复bugs

  • 部分可踩死的敌人踩死后不消失
b0.3 2021.6.16 机能重写
  • 平台运动代码规范化重写

物件添加

  • 加入平台传送控件与平台销毁控件

修复bugs

  • 过关与发炮弹时都会触发两次音效
  • 玩家站在缓慢转向的平台或圆周运动平台时会发生抖动
  • 部分奖励物导致软件崩溃(受软件版本原因,该bug可能还会持续)
  • 玩家火球等子弹缺失运动
b0.4 2021.6.25 机能重写
  • 敌人判定接口全面修改,回归至GE时代类型。

机能性BUG修复:

  • 大量地在行为中使用分组导致软件崩溃,现在能不使用分组的地方尽量使用foreach或对象解决
b0.4.1 2021.7.15 机能更新
  • 更新了check point的编号存储方式
  • 更新了与RE和World10E的兼容方式
b0.4.2 2021.7.18 修复bugs
  • 平台反向运动组件失效(经典运动与圆周运动均失效)
  • 滚屏时如果贴近滚屏所朝向的边缘跳跃时会导致游戏卡死
  • 乌龟系敌人概率性判定为踩踏失败(下方给出此bug的解决方法)
  • 单格砖无法被低速通过(被修复后产生可在缝隙上跳跃的不妥操作)

机能修改

  • 敌人组:新增700号变量,作用为敌人的踩踏判定偏移量(单位:pix),表示从敌人中心开始往下(正值)或往上(负值)偏移判定(修复第三个bug用)
b0.4.3 2021.7.19 补正修复bug
  • 单格砖现在以一种新的方式被修复
b0.5 2021.7.25 底层修改
  • 删去了马力欧在出水管时的彩条位移

机能修改

  • 物理运动组:新增409号变量,用于决定该物件的恒常方向,不需要调用任何函数即可生效;新增了410号变量,用于决定是否自动根据玩家与该物件的位置关系来设置该物件方向,在修改410号变量后调用其“INIT DIR”函数来使其生效;新增“INTERACT”内部函数,用于处理玩家与该对象重叠时的动作。上述更新已应用于大部分有关对象当中

底板优化

  • 将大部分子弹类与特效类对象的属性调整为:距离窗口过远即消失或自动不激活,以最大限度地降低内存开销

修复Bugs(加#表示上个版本未被修复但上上个版本已存在的bug,加$表示自发布以来一直未被修复)

  • #食人花喷出的火球的最大横向速度偏高,现已作出调整
  • $金币不能被顶掉
  • 链条容易在狭窄的转弯处抽风
  • #debug mode默认为开启
  • 圆周探照灯只有灯芯
  • #玩家扔出的甜菜没有重力
  • #顶出来的甜菜瞬移会问号砖内(消失)