对偶性-Windows下简易快速的igrostroy引擎(扩展)

问候,读者。

该出版物将侧重于一个有前途且还很年轻的游戏引擎,而该引擎却毫无保留地被Unity或Unreal Engine等巨头所掩盖。

开发人员是由亚当的巢穴领导的爱好者协会。

正如官方网站告诉我们的那样:“ Duality是一个模块化2D游戏引擎,它带有自己的编辑器。 它很容易扩展,用C#编写,并使用OpenGL显示图形。” 对偶使用流行的面向组件的体系结构来编写逻辑。 我们编写了一个组件,将其附加到游戏对象上,一切正常,从而完全避免了程序员的日常工作。 另一个优势是对插件的支持,任何人都可以创建并连接到他们的项目。

你说:“经典”,你会说对的。 对偶性并不比其他工具差,它还控制资源,提供I / O子系统,图形,音频和物理仿真。 如果在其中添加方便的编辑器Dualitor,则可以为开发独立游戏提供良好的环境。

那么,当有更广泛的解决方案(如Unity)时,为什么需要双重性?


  • 免费(MIT许可证)。 您无需付费,发布源代码或执行其他限制您创造力的操作。 双重来源也可以在GitHub上获得。
  • 轻便。 编辑器的重量约为100 mb,完全正常运行的游戏的重量约为7 mb。
  • 性能。 在最新的当前版本v3中,已经完成了引擎的大规模优化。 在为估计的工作量执行的测试中,最坏情况下的呈现时间不超过6毫秒,并且每分钟执行大约5次垃圾回收。
  • 简单性。 如果您熟悉相同的Unity或Unreal Engine,那么您可以毫无问题地掌握Duality。 该API有充分的文档说明,并提供了方便的接口,因此程序员不会因低级操作而分心。
  • 社区。 也许它不在成千上万的用户中,但是它包含专门的开发人员,他们亲自帮助新手掌握引擎。 非常友好和及时。 此外,还创建了各种教程,并打开了一个包含大量有用信息的论坛。

也许值得一试


我想您想看看一切。

编辑。 简单但实用。 它显示了熟悉的场景视图,项目视图,检查器和摄像机视图。 下面是一个隐藏的日志面板。

双重监控器


这是控制宇宙飞船运动的组件代码示例。

代号
using Duality; using Duality.Components.Physics; using Duality.Input; namespace Duality_ { [RequiredComponent(typeof(RigidBody))] public class Player : Component, ICmpUpdatable { public void OnUpdate() { RigidBody rb = GameObj.GetComponent<RigidBody>(); if (DualityApp.Keyboard[Key.Left]) rb.ApplyLocalForce(-0.001f * rb.Inertia); else if (DualityApp.Keyboard[Key.Right]) rb.ApplyLocalForce(0.001f * rb.Inertia); else rb.AngularVelocity -= rb.AngularVelocity * Time.TimeMult * 0.1f; if (DualityApp.Keyboard[Key.Up]) rb.ApplyLocalForce(Vector2.UnitY * rb.Mass * -0.2f); else if (DualityApp.Keyboard[Key.Down]) rb.ApplyLocalForce(Vector2.UnitY * rb.Mass * 0.2f); } } } 



我不认识你,但是我对这个框架的简单性感到惊讶。 顺便说一句,引擎成功的一个指标就是在其上进行的游戏。 由于它是由小型团队使用的,因此游戏也不会以AAA级别发布。 因此,没有什么值得吹嘘的。 在此站点上,您可以观看现成的游戏
我也知道一个正在开发并发布在Steam上的重要项目,但是最好再写一次。

对偶不应该带来什么


跨平台引擎是其弱点之一。 仅完全支持Windows操作系统系列,其余的要么由第三方开发人员支持,要么完全不支持。 也没有内置的UI实现,但是由于Duality是模块化引擎,因此有一些插件可以消除此缺点。
下一个主要缺点是网络API问题。 目前,没有插件或内核模块可以实现多人游戏功能。
引擎输给竞争对手的主要原因是小社区。 开发这种好工具的人很少。

引擎的主要特点:


  • 基于Farseer物理引擎的2D物理。 在内置组件中,有一个功能性的刚体,它涵盖了物理对象的基本要求。
  • 使用AnimSpriteRenderer组件的2D动画。 与简单的用户输入系统一起,您可以轻松为任何角色设置动画。
  • 支持顶点和片段着色器。 如果这还不够,那么您可以实现自己的渲染组件。
  • 预制件,包括嵌套件,因此在购买游戏物体时不会有问题。
  • 方便的内容管理器。 资源链接自动维护并易于在代码中使用。
  • TileMaps是作为一个单独的插件创建的,但是它们充分利用了引擎的功能以实现最佳性能。
  • 编辑器可扩展性。 您可以将自己的功能添加到编辑器中,编写专用于您的任务的命令和插件。


总结一下,在此总结一下,我想说还有很多其他的游戏引擎可能并不逊色于此,这很好。 当然,我不敦促您放弃已经使用的所有内容,但我提请您注意一个高质量的项目。 如果您是一个孤独的开发人员或小型团队,希望找到足够简单和强大的功能,请尝试双重性。

官方网站。

Source: https://habr.com/ru/post/zh-CN441608/


All Articles