原文地址:dev.to/fireslime/f…
原文作者:dev.to/luanpotter
发布时间:2020年9月5日 ・5分钟阅读
最后有一个TL;DR,所以至少你要滚动,看看你错过了什么。
嗨,伙计们!我们有一些激动人心的变化要谈,还有一些更大的变化在地平线上,所以我决定写下这篇文章,来告诉大家。我们有一些激动人心的变化要谈,还有一些更大的变化即将到来,所以我决定写下这篇文章来分享Flame最近发生的事情(最后有一个大的公告!)。
你们中的一些人可能已经看到了GitHub上的活动,你们中的一些人也一直在积极地帮助,所以我想我们在不久的将来有向Flame 1.0迈进的计划也就不足为奇了! 从我创建Flame引擎开始,这几年来已经走过了漫长的历程。从那时起,很多来自社区的了不起的人主动帮助我们发展这个平台,但我们始终将它保持在v0(0.x版本)。这让我们能够 "快速行动,打破东西",尽管我们在最初的几个版本后主动避免了大的突破性改变。
但这样一个广泛的、乐于助人的、善良的社区带来的一个重要的副作用是,我们学习和发现了很多关于Flame、Flutter中的游戏,以及如何让我们的生活更加轻松。所以我们收集了很多反馈和想法,决定是时候到v1.最终推出Flame 1.0,一个更加成熟和强大的API。
会有什么变化?我们不想白白打破一切。另外,我们仍然致力于我们的核心价值,也就是这个repo里从第一天开始的第一句话:一个简单的、模块化的游戏引擎。所以其实没有什么巨大的变化。但我们会打破一些东西。我们要借此机会做一些我们一直想做的改动,但不想给从0.x迁移到0.(x+1)的人造成混乱。但现在是1.0,我们允许自己做一些改变。
当然,你可以在GitHub上偷看这些变化 -- 我鼓励你这样做,我真的很兴奋。我们也想借此机会征求一下其他的想法。如果你有什么想法是一个突破性的改变,但你认为值得添加到v1中,请打开一个问题来讨论(只要确保它还没有被讨论或实施)。
但我想在这里特别谈谈一个变化,这个变化是我们在一定程度上推广到0.x的,也一定会是最明显的一个变化。一开始,在我看来,我们添加到Flame中的所有东西都是创建游戏的必要构件;从最简单的到最高级的。不过随着时间的推移,我们开始添加一些更边缘的功能。这与我们的模块化方法是一致的--我们从来没有把任何东西作为强制性的或 "碍事 "的东西。但是对于一些东西,我们决定制作独立的包。例如,我们有flame_gamepad来支持游戏手柄,但box2d的支持是 "包含 "在flame包中的。没有特别的规则导致我们做出这个决定(我们不希望Flame本身有任何原生代码,但这从未阻止Flame依赖有原生代码的插件)。另外,dart和pub有一个非常好的树形摇动算法,所以我们认为这并不重要。
现在,对于1.0,经过大量的讨论,我们决定转向更多的包分离的方式。我们希望所有不是绝对核心的东西都能成为自己的包。这样,Flame就不会有很多(如果有的话)依赖性。它永远不会有任何本地代码。而任何与其他东西集成的东西都应该是独立的插件。
这些插件将被称为flame_*,并将生活在我们的GitHub/pub组织中。它们仍然可以由我们来构建和维护,但也可以有其他完全由社区开发的新插件(比如说很棒的包bonfire,一定要去看看)。
这将使Flame更简单精干,有更少的依赖性(因此有更少的断点)。我们计划提取的包有。
flame_audioflame_flare(和flame_rive)flame_box2dflame_tiled
这些插件将对等地依赖于flame,并拥有我们习惯的那些好的助手。例如,我们也恰好维护了我们的box2d.dart包的fork,这是一个与火焰无关的box2d到dart的移植。Flame同样也不会对box2d有任何了解。而flame_box2d将拥有所有的绑定代码、Box2dComponents、连接、帮助程序来使其工作。同样,flame_audio将依赖于audioplayers(也可能是其他音频库),并提供flame目前添加的所有关于声音的东西(比如AudioPool)。以此类推。
我们已经开始这样做的一个原因是由于一些技术上的困难,特别是依赖他人的插件。例如,tiled包被更新为使用新的Flutter版本,迫使依赖它的Flame也这样做。在这个改变之后,flame_tiled将只负责更新tiled并保持它的兼容性。没有一个不使用tiled的人将不得不关心这个特殊的问题。
为了保持一致性,我们将创建一个全新的flame_example,它将包含所有的flame包,并使用Dashbook来提供我们现在在doc/examples上的所有例子,以及更多的例子,确保它们都能很好地一起工作。
我们希望这个变化能让我们的生活更容易维护我们的包,同时也让大家的生活更容易,因为它让你可以简单地 "选择 "你需要的模块,而不关心其他的模块。
现在,让我们先把1.0的炒作放在一边,这样我们就可以进入剩下的新闻,我们的第二个大公告。
我们也很高兴地告诉大家,我们将举办一个专注于Flame社区的定期在线活动:FlameCon.
我们的计划是创造一个空间,让人们分享他们用Flame做的很棒的东西,它将对每个人开放,既可以展示,也可以观看。
第一期将于UTC时间9月16日20:00举行,将举办两场讲座。
- 用Bonfire构建RPG游戏,Bonfire的作者Rafael Barbosa将介绍这个建立在Flame之上的超赞RPG引擎。
- 使用Fire Atlas优化精灵的使用,Erick Zanardo将展示这个工具是什么,以及它如何帮助你优化和组织你的Flame游戏中的精灵。
要参加这次活动,请查看我们的官方页面,并一定要加入我们的MeetUp小组;所有需要的信息都会在这些链接上提供。
就到这里吧,各位! 我们真的很兴奋,并努力将v1.0带入成果,我们真的,真的很兴奋能够举办我们的第一次FlameCon!
TL;DR: Flame 1.0已经在制作中,第一届Flamecon将于9月16日20:00 UTC举行。
通过www.DeepL.com/Translator(免费版)翻译