Entitas CookBook 翻译 - 000_Introd
译者注
Entitas CookBook是一本讲述ECS的基本概念以及Entitas使用方法(教程)的说明书,其中很多内容都是对于刚刚接触ECS的同学有帮助的。所以我决定将这手册翻译一下让更多的人能了解ECS、Entitas。即使你不用Entitas,你也可以学习他的概念、实现方法。
介绍
Hi 👋,
我是Maxim(CookBook作者),一个软件工程师。2012年下半年在Wooga(一个柏林的悠闲游戏工作室)工作时,我偶尔发现了 ECS(Entity Component System)和 Entitas (ECS的一种实现) 。自从那时候开始,我便帮助改良Entitas以及将其移植至其他语言。我自己也使用Entitas制作了一些游戏以及应用。
老实说,写着本书不是我的想法,Entitas交流论坛的好人们推了我一把并且承诺会帮助我一起完成。当我写着第一个章节的时候,我依然非常希望获得帮助 😀。
这书是干嘛的?
这本书会覆盖基础的ECS 概念、这些概念如果在Entitas中实现的、我们构建的什么工具可以让Entitas获得更好的体验。以及使用Entitas来制作游戏与应用的方法食谱。
如果你是ECS新手,并且想了解它是什么?这本书是给你的。
如果你了解ECS,但想知道如何使用Entitas构建软件?这本书是给你的。
如果你了解Entitas并希望浏览关于如何将其应用于不同用例的想法?这本书是给你的。
如果您已经对Entitas有所了解,并希望为其构建一些工具以使您的生活更轻松?这本书是给你的。
如果您想将Entitas移植到其他语言?这本书是给你的。
如果你认为Entitas是垃圾,你想实施自己的ECS框架?即使在这种情况下,这本书也适合你!
书本架构
此书共分为三个部分。
1. 原料(Ingredients)
本节将包含ECS概念及其在Entitas-CSharp中的实现。由于本书的思想源于Entitas-CSharp社区,代码示例将使用C#。但是我可能会添加一些关于如何在Entitas家族的其他成员中实施相同概念的附注。
2. 器具 (Appliances)
器具是我们为了配合原料而实施的工具。我将介绍已经建立的工具;也会泄露一些可能很酷的东西的想法,但仍然处于早期开发阶段;或者只是在过去5年以上的过程中听说过的。也许其中一些会激励你实施它们或者有另一个更酷的想法。
3. 配方(Recipes)
本节将介绍真实开发中的问题以及Entitas如何解决这些问题。在这里,您将学习如何使用原料和器具制作可口的饭菜。本部分可能会有最高的章节数量,并将持续进行中的工作。我们还会为配方评分并定义这个配方的理念有多好。
我为什么要使用ECS?
实体组件系统(Entity Component System)是一种简单的模式,它具有单个核心主体:分离的状态和行为。这个核心原则往往是人们称之为面相数据设计(Data Oriented Design)的前奏。这导致了机制化思路(mechanical empathy)的想法,您需要拥有这些想法来执行高效的性能优化。
然而这不是五年前ECS吸引我的地方。我发现令人着迷的是组成事物(compose thins)的能力。在ECS中,您正在撰写状态(state),并且正在撰写行为(behavior)。您的应用程序设计成为一套可以粘在一起的乐高件。如果缺少某些东西,您可以轻松创建专门的部分来缩小差距。这种方法可以帮助你即兴创作。它使您能够以“是的...并且...(Yes and...)”的方式实施软件。 是的,这东西是一辆汽车 并且因为我们收集了一个特殊的能量,它可以飞行。 是的这个应用程序将所有数据存储在光盘上,并且还可以与服务器同步,实时显示用户界面的变化,而无需用户点击按钮。
有句话是这样说的:“除了死亡和交税,没有什么是确定的”。我非常大胆地说,变化就像死亡和交税一样确定。特别是当涉及到软件和游戏开发时。我们需要能够即兴创作和尝试,以获得最佳的用户体验。这正是我发现ECS如此有用的原因。它可以帮助我建立生产工业级别的快速原型(rapid prototypes),并在工业化工程中依然保证简单的原型制作(prototyping)。我也觉得它很有趣,系统思维如何帮助我以最简单的方式对难题进行建模和解决,并将它们集成到现有解决方案之上。