EnTT 实际应用
目录
简介
EnTT 被广泛应用于私人和商业应用程序中。由于我过去在某些文件上签署的保密协议,我甚至无法提及其中的大部分。幸运的是,也有人花时间实现了基于 EnTT 的开源项目,并且在记录它们时毫不吝啬。
以下是一份不完整的游戏、应用程序和文章列表,可作为参考。
带有“据称 (apparently)”字样的地方表示 EnTT 的使用已有记录,但作者并未发表明确声明或未直接与我联系。
如果您知道其他关于 EnTT 的资源,请随时提交 issue 或 PR。我很乐意将它们添加到本页中。
我希望以下列表在未来能够大幅扩充。
EnTT 实际应用
游戏
- Minecraft by Mojang: 当然是 那个 Minecraft,更多详情请参阅开源致谢页面。
- Minecraft Legends by Mojang: 一款动作策略游戏,用户必须战斗以保卫主世界 (Overworld)。
- Minecraft Earth by Mojang: 一款移动端增强现实 (AR) 游戏,让用户将 Minecraft 带入现实世界。
- Ember Sword: 一款现代免费 (Free-to-Play) MMORPG,具有玩家驱动的经济系统、无职业战斗系统以及稀缺且可交易的装饰性收藏品。
- 据称 Diablo II: Resurrected by Blizzard: 怪物、英雄、物品、法术,悉数复活。感谢不知名的内部人士。
- 据称 Call of Duty: Vanguard by Sledgehammer Games: 我无法确认或否认,但在致谢名单中有一个我认识的许可证。
- 据称 D&D Dark Alliance by Wizards of the Coast: 你的小队,他们的葬礼。
- TiltedEvolution by Tilted Phoques: 用于在线游玩的 Skyrim 和 Fallout 4 mod。
- Antkeeper: 一个蚁群模拟 游戏。
- Openblack: 游戏 Black & White (2001) 的开源重写版。
- Land of the Rair: 新时代 复古风格 MUD 的新后端。
- Face Smash: 一款用脸玩的游戏。
- EnTT Pacman: 一个展示如何使用
EnTT制作 Pacman 的示例。 - Wacman: 一个使用 OpenGL 的 pacman 克隆版。
- Classic Tower Defence: 一款带有自制字体的微型塔防游戏。 去看看。
- The Machine: 一款带有逻辑门和其他酷炫元素的推箱子解谜游戏。 去看看。
- EnTTPong: 一个用于展示
EnTT和 C++17 不同部分的基础游戏。 - Randballs: 简单的
SFML和EnTT实验场。 - EnTT Tower Defense: 一个面向数据 (data oriented) 的塔防示例。
- EnTT Breakout: 使用
SDL和EnTT的简单打砖块游戏示例。 - Arcade puzzle game with EnTT:
使用
SDL2和EnTT库在 C++ 中制作的街机解谜游戏。 - Snake with EnTT: 使用
SDL2和EnTT库在 C++ 中制作的简单贪吃蛇游戏。 - Mirrors lasers and robots: 一款基于镜子反射的小型塔防游戏。
- PopHead: 使用 C++ 从零制作的 2D 僵尸 RPG 游戏。
- Robotligan: 多人足球游戏。
- DungeonSlayer: 使用 C++ 从零制作的 2D 游戏。
- 3DGame: 2.5D 俯视角太空射击游戏。
- Pulcher: 受 Quake 启发的 2D 跨平台游戏。
- Destroid: 第 无数 款关于在太空中射击脏岩石的街机游戏,灵感来自 Asteroids。
- Wanderer: 一款 2D 探索类独立游戏。
- Spelunky® Classic remake: 一次真正的多平台体验,从零开始重写。
- CubbyTower: 一款使用 C++ 和实体组件系统 (ECS) 的简单塔防游戏。
- Runeterra: 使用 C++ 和一些强化学习的 Legends of Runeterra 模拟器。
- Black Sun: 驾驶你的飞船穿越庞大的 2D 开放世界。
- PokeMaster: 使用 C++ 和一些强化学习的 Pokémon Battle 模拟器。
- HomeHearth: 选择你的英雄,保护小镇,趁一切还来得及。
- City Builder Game: 一款使用 C++ 和 OpenGL 的简单城市建造游戏。
- BattleSub: 带有部分流体动力学的双人 2D 潜艇游戏。
- Crimson Rush: 一款受地牢探索 (dungeon-crawler) 和 Roguelike 启发的游戏,关于探索并尽可能长久地生存。
- Space Fight: 单屏多人街机射击游戏原型。
- Confetti Party: C++ 示例应用程序,作为使用
EnTT和SDL2的起点。 - Hellbound: 一款俯视角动作 Rogue-like 游戏,在程序生成的地狱关卡中与巨大的恶魔战斗。
- Saurian Sorcery: 一款塔防游戏,组建蜥蜴部落以抵御机器人入侵者。
- robotfindskitten: 在
Notepad.exe中运行的robotfindskitten克隆版,由EnTT提供支持。 - Orion: 外太空研究与星际观测网络(一款太空射击游戏)。
- EnTT Boids: 使用
EnTT和Raylib的简单 Boids(群集行为)实现。 - PalmRide: After Flight: 一款带有复古 Outrun 美学风格的轨道射击游戏。
- Exhibition of Speed: 打造你自己的赛车并参加比赛。
- Lichgate: 俯视角动作 Rogue-like 游戏,用户在其中解锁能力以在无尽的世界中对抗成群的敌人。
- Letalka: 小型演示游戏,屏幕上到处飞舞着飞船和子弹。
- Lichgate: 穿上强大法师的长袍,下定决心阻止无情的亡灵大军。
- You Are Circle: 一款具有高对比度矢量线条美学的 Roguelite 俯视角射击游戏。
- EnTT Dino: 仅使用
SDL2和EnTT在 C++ 中实现的 Dinosaur Game(恐龙小游戏)克隆版。 - Bim!: 一款适用于 Android 的最后一人生存 (last-man-standing) 街机在线游戏。
- MonsterWar: 使用 C++ 结合
SDL3、EnTT及其他几个库开发的塔防游戏。
引擎及类似项目
- Hazel Engine: 由 The Cherno 在其最著名的视频系列之一中创建的正在进行中的引擎。
- Aether Engine v1.1+ by Hadean: 一个专为空间划分基于智能体的模拟 (agent-based simulations) 而设计的库。
- Fling Engine: 一个专注于面向数据设计 (data oriented design) 的 Vulkan 游戏引擎。
- NovusCore: 对 World of Warcraft 模拟器的现代化重塑。
- Chrysalis: 用于 CRYENGINE 游戏的动作 RPG SDK。
- LM-Engine: 游戏引擎界的 Vim。
- Edyn: 一个组织为 ECS 的实时物理引擎。
- MushMachine: 引擎… 轰隆隆。
- Antara Gaming SDK: Komodo 游戏软件开发工具包。
- XVP: 用于 Unreal Engine 的 eXpansive Vehicle Physics 插件。
- 据称 Wisp by Team Wisp: 专为视频游戏艺术家需求构建的高级实时光线追踪渲染器。
- shiva: 具有模块化的现代 C++ 引擎。
- ImGui/EnTT editor:
一个无缝替换 (drop-in)、单文件的
EnTT实体编辑器,使用ImGui作为图形后端(附带 演示代码)。 - SgOgl: 为教育目的开发的 OpenGL 游戏引擎库。
- Lumos: 使用 C++ 以及 OpenGL 和 Vulkan 编写的游戏引擎。
- Silvanus: Silvanus Fusion 360 盒子生成器。
- Lina Engine: 一个开源、模块化、小巧且快速的 C++ 游戏引擎,旨在开发 3D 桌面游戏。
- Spike: 一个甚至能在烤面包机上运行的强大游戏引擎。
- Helena Framework: 一个用于后端开发的现代 C++17 框架。
- Unity/EnTT: 使用
EnTT和Unity作为渲染引擎的原生模拟层技术演示。 - OverEngine: 一个过度工程化 (overengineered) 的游戏引擎。
- Electro: 高度重视渲染的高性能 3D 游戏引擎。
- Kawaii: 一个现代的面向数据的游戏引擎。
- Becketron: 主要使用 C++ 编写的游戏引擎。
- Spatial Engine: 基于 Google Filament 渲染引擎创建的跨平台引擎。
- Kaguya: D3D12 渲染引擎。
- OpenAWE: Alan Wake Engine 的开源实现。
- Nazara Engine: 快速、跨平台、面向对象的 API,旨在帮助开发者的日常工作。
- Billy Engine: 某种基于
SDL2和EnTT的 2D 引擎。 - Ducktape: 一个开源的 C++ 2D 和 3D 游戏引擎,专注于快速和强大。
- The Worst Engine: 一个基于 OpenGL 的游戏引擎。
- Ecsact: 一种旨在描述 ECS 的语言,带有基于
EnTT的 运行时实现。 - AGE (Arc Game Engine): 一个用于构建 2D 和 3D 实时渲染及交互内容的开源引擎。
- Kengine: Koala engine 是一个完全作为 entity-component-system 实现的游戏引擎。
- Scion2D: 附带 YouTube 系列教程 的 2D 游戏引擎。
- EnTT Editor: 一个用于
EnTT库的编辑器,将其内置的反射系统与ImGui结合。 - Era Game Engine: 一个现代的基于 ECS 的游戏引擎。
- Core SDK of Trollworks engine: 基于拖延症 (procrastination) 的 2D 游戏引擎。
- Rocky: 3D 地理空间应用引擎。
- Donner: 带有 CSS3 的现代 C++20 SVG2 渲染 API。
- Coral Engine: 开源的学生引擎,带有使用 C++ 和可视化脚本制作游戏的工具。
- Star Engine: 一个高级 C++ DirectX 11 游戏引擎。
- Darmok: 另一个 C++ 游戏引擎。
- Magique: 面向程序员(或尚未成为程序员的人)的 2D 游戏引擎。
- Physecs: 基于
EnTT构建的实时 3D 刚体物理模拟。 - KODZA: 一个正在进行中的游戏引擎。
- Omnax: 一个正在开发中的多用途 3D 引擎,适用于
macOS,使用EnTT作为 ECS。
文章、视频与博客文章
- 我的个人 博客 上有 一些文章 是关于
EnTT的,供那些想对本项目了解 更多 的人阅读。 - 由 The Cherno 制作的 Game Engine 系列(不仅关于
EnTT,也关于 ECS 的一般使用):- Intro to EnTT.
- Entities and Components.
- The ENTITY Class.
- Camera Systems.
- Scene Camera.
- Native Scripting.
- Native Scripting (now with virtual functions!).
- Scene Hierarchy Panel.
- Properties Panel.
- Camera Component UI.
- Drawing Component UI.
- Transform Component UI.
- Adding/Removing Entities and Components UI.
- Saving and Loading Scenes.
- … 等等。 去看看 The Cherno 的 Game Engine Series 以获取更多视频。
- 由 dwjclark11 制作的 Game Engine 系列(不仅仅是
EnTT,但包含大量相关内容): - 由 linkdd 撰写的 Warmonger Dynasty 开发日志系列:一篇有趣的(也)使用 EnTT 开发游戏的演练。
- Use EnTT When You Need An ECS by Thomas: 我无法说得比这更好了。
- Space Battle: Huge edition: 完全从零构建的巨型太空战。
- Space Battle: 基于
UE4构建的巨型太空战。 - Experimenting with ECS in UE4:
关于
UE4和EnTT的有趣文章。 - Implementing ECS architecture in UE4: 巨型太空战。
- Conan Adventures (SFML and EnTT in C++):
使用
SFML、EnTT、Conan和CMake在现代 C++ 中创建项目。 - Adding EnTT ECS to Chrysalis:
一篇博客文章(及其
后续),关于将
EnTT集成到Chrysalis(一个用于 CRYENGINE 游戏的动作 RPG SDK)中。 - Creating Minecraft in One Week with C++ and Vulkan: 尝试在一周内使用自定义 C++ 引擎和 Vulkan 重现 Minecraft(包含代码)。
- Ability Creator: 由 Eric Hildebrand 撰写的项目回顾。
- EnTT Entity Component System Gaming Library:
GameFromScratch.com 上的
EnTT。 - Custom C++ server for UE5 及其关于玩家机器人和完整外部 ECS 的 后续 剧集:为 MMO(RPG) 优化的服务器,一个绝对值得关注的系列。
其他应用
- ArcGIS Runtime SDKs by
Esri: 他们使用
EnTT作为内部 ECS 和跨平台 C++ 渲染引擎。这些 SDK 被大量企业定制应用使用,也被 Esri 用于其自身的公共应用程序,例如 Explorer、 Collector 和 Navigator。 - OneArc: 许可证 不会撒谎。他们的产品以某种方式使用了 EnTT,但 具体方式 未知。
- FASTSUITE Edition 2
by Cenit: 他们使用
EnTT来驱动其模拟,即机器人控制器模拟器与渲染器之间的通信。 - Ragdoll: Autodesk Maya 2020 的实时物理插件。
- Project Lagrange: 由 Adobe 开发的强大几何处理库。
- AtomicDEX: 一个集安全钱包和非托管去中心化交易所于一身的应用程序。
- 据称 NIO: 曾有过合作对
EnTT进行一些修改,当时它被用于内部项目。 - 据称 Tieto: 他们发布了一份招聘信息,其中
EnTT被列为其软件栈的一部分。 - Sequentity: 适用于 C++ 和
ImGui(结合Magnum和EnTT)的类 MIDI 音序器/跟踪器。 - EnTT meets Sol2: 免费提供的示例,展示如何结合
EnTT和Sol2。 - Godot meets EnTT:
一个关于如何在
Godot中使用EnTT的简单示例。 - Godot and GameNetworkingSockets meet EnTT:
一个关于如何在
Godot中使用EnTT和GameNetworkingSockets的简单示例。 - MatchOneEntt: 将 Match One(针对
Entitas-CSharp)移植的版本。 - GitHub 上还包含
许多其他示例,展示了
EnTT的使用,如果感兴趣可以从中汲取灵感。