发布

QQ登录

只需一步,快速开始

【译文】David第22号开发日志:Mine-imator 2.0 in C++!?

 / 倒序浏览   © 文章版权由 干二大日天 解释,禁止匿名转载

#楼主# 2022-4-23

跳转到指定楼层
原文链接
值此Mine-imator十周年到来之际,我(David)决定暂时地回到开发团队,并添加一些长久以来被要求的功能,您很快就可以在即将到来的2.0预发布版中下载,该版本将于5月底或6月初发布!
Nimi已经在新功能方面做了不少出色的工作,但是所使用的图像引擎(GameMaker)一直是优化软件,确保帧率,和占用内存的巨大障碍。 因此,我主动提供帮助,并最终成功地将Mine-imator迁移到使用c++编程语言的新图形引擎上,以增加性能、优化内存(x64)和多平台支持。 所有的技术细节见文章的底部。
您多年来的支持,创建和分享内容,提供建议,报告错误,特别是捐款,我们都非常感激!这都是为了Mine-imator的开发。Mine-imator在过去的10年里一直是完全免费的,并且将继续保持免费,但是您的捐赠帮助它保持了服务器的成本,并直接资助了2.0版本的开发(比如说David必须为这次更新购买一台MacBook)如果您还没有捐赠给开发团队或希望继续支持我们,请点击下面的链接:点击这里给Mine-imator开发者捐款!先不说这些,让我们先来看看第一个2.0预发布版中的新功能,有Nimi的UI修改、动画改进、和渲染特性的版本会逐渐呈上!(参见Nimi第21号开发日志/译文
燥起来。
  • 注意:下述新功能均会在即将到来的Mine-imator2.0.0预发布版本中呈现,(之后预备和Nimi添置的新功能整合,)敬请关注!
    新功能1/7:从小巧实用的一个开始,现在点击程序右上角X后可以通过‘取消’或者X按钮真的取消这次操作。【译者注:差错预防是评估软件可用性的重要标准。】
  • 新功能2/7:如果您不幸地有多余的显示器,那您大概要爽死了。现在支持用户把可分离的预览窗口和时间轴窗口拖曳到第二屏幕,具体见下图。【译者注:这将有助于围观者们监督动画师的进程。】
  • 新功能3/7:在下一个版本中,场景加载速度将提高10倍;优化以减少内存占用;同时还将允许更大的区域! 此外,此外,风景将会被缓存,在重启项目时会立即加载(不用再读条了)。【译者注:不知道这对于模块化场景的未来意味着什么。】
  • 新功能4/7:Mine-imator将有能力处理更复杂的项目。在渲染多个对象时,速度将比老版本提高3-5倍。您现在可以整更大的活儿,在动画内添置更多的角色,方块,粒子和细致的模型!【译者注:我们坐在高高的骨灰旁边,听妈妈讲那玉米的故事。】
  • 新功能5/7:Linux用户已经有10年没有使用Mine-imator了,但到此为止了! 2.0版将在Debian/Ubuntu操作系统上完美运行,具有完全相同的功能!  (附注:如果您有其他喜欢的Linux发行版,请告诉我们)【译者注:现在压力给到Mac操作系统的用户。】
  • 新功能6/7:您们可能已经猜到啦,Mac OS操作系统的用户也可以在下一个2.0预发布版本中使用Mine-imator。【译者注:嘿,Siri,帮我渲染一下动画。】
  • 新功能7/7:全新的3D世界导入器等等。进一步内容请看论坛新贴

以下是有关2.0的C++移植幕后细节:
(警告,以下是比较单调的技术性内容)
在过去我们已经多次尝试将Mine-imator从GameMaker中移植出去,这是一项非常费力且复杂的任务,如果是手动尝试,肯定会花费数年时间。 作为参考,目前的代码库超过90000行(把每一行看作是一条指令,每个特性都由数千行交织在一起的网络组成),这对任何人来说都是一个巨大的任务,因为所有特性都是由多个开发人员在10年多的时间里添加的。 这还不包括填补GameMaker功能空白所需要的额外代码,如绘制GUI,处理键盘/鼠标输入和使用着色器渲染几何图形。 我们的最终目标是从GameMaker语言(GML)切换到具有更高性能、内存管理和多平台能力的新编程语言,其中c++是最佳选择。  

考虑到任务的性质,大约3个月前,我决定尝试一种2.0的新方法,让脚本自动读取代码库中的文件,找出所使用的函数和变量,并逐行将其转换为可工作的(且非常优化的)c++代码。 让一个程序作为编译器,并在GML-> c++之间进行转换,也可以让团队继续使用GameMaker作为开发工具(IDE)进行测试,同时让c++在最终版本发布时发挥优势。  

经过一些实验后,我能够使用c#脚本将整个代码库转换为c++,不少于20秒(相比之下,手动转换需要几年时间)。 填写的问题仍然坚持说差距GameMaker功能的大部分剩余的工作在哪里,以及确保转换代码没有错误,取得了同样的行为作为GML通过仔细比较的行为1.2.9 1.2.9和c++版本。  

请参阅下面左边的GML代码片段和右边的转换后的c++代码片段(由脚本在几毫秒内自动创建)。 手动执行此操作并进行测试以确保其工作正常,并修复常见错误导致的错误可能需要花费数小时。

在移植了代码后,我开始着眼于能够在这个新的c++环境中添加一些之前在GameMaker中不可能添加的新功能,包括进一步优化性能,添加多线程,多监视器支持, 更先进的3D渲染(如批量渲染和推动世界进口商)和迫切需要的Mac OS/Linux支持。  

总而言之,经过多年的努力,我终于能够将Mine-imator移植到c++中,这无疑是我所做过的最具挑战性的编程任务,但也让我学到了很多,我希望由此带来的改进和特性能够在未来10年里得到无数动画师的赞赏!  

【译者注:“我看不懂,但我大受震撼。”】
请大家一定要关注即将到来的预发布,关注我们的Twitter页面或加入我们的Discord聊天肯定会很受益。
再次感谢大家多年来的支持,继续为我们热爱的方块儿游戏做动画吧!
大卫


来自群组: 战艺指挥所驻坛议事会
帖子永久地址: 

Mine-imator中文站 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与Mine-imator中文站享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和Mine-imator中文站的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、Mine-imator中文站管理员和版主有权不事先通知发贴者而删除本文

使用道具

B Color Link Quote Code Smilies
干二大日天

超级管理员

  • 主题

    30

  • 帖子

    64

  • 关注者

    8

Copyright © 2001-2020, Tencent Cloud.  Powered by Discuz! X3.4  粤ICP备2020130593号