Unity 收取“运行费”引众怒,开源免费3D游戏引擎CGE(Castle Game Engine)吸引开发者关注

特征

  • 1. 总结
  • 2. 跨平台
  • 3. 可视化编辑器
  • 4.视口与场景,相机,导航和其他组件
  • 5. 数据格式
    • 5.1. glTF
    • 5.2. X3D
    • 5.3. 精灵表
    • 5.4. 脊柱
  • 6. 图形效果
  • 7. 图片
  • 8. 用户界面组件
    • 8.1. 文本和字体
  • 9. 网络
  • 10. 优化和分析
  • 11. 声音
  • 12. 物理
  • 13. 平铺集成
  • 14. 粒子
  • 15. 使用现代 Pascal 的原生和快速代码
  • 16. 构建工具和持续集成
  • 17. 免费开源软件
设计 3D 和 2D 游戏和用户界面(具有自动缩放、锚点)。为多个平台构建和部署同一项目。与各种IDE(Lazarus,Delphi,Visual Studio Code...)集成。
​编辑

组件

许多组件来设计 视口内容(3D和2D世界,使用场景,相机,导航,基元,灯光...)和 用户界面(按钮,图像,标签...
​编辑

定义数据的多种方法

使用3D模型,2D动画,精灵表。与 Blender等创作工具或Sketchfab等商店的完美集成,这要归功于使用glTF和X3D等开放标准。
​编辑

图形效果

可合成着色器效果、阴影、镜子、基于物理的渲染、凹凸贴图、伽玛校正...
​编辑

跨平台

针对任何平台(桌面:Windows,Linux,macOS,FreeBSD,Raspberry Pi,移动设备:Android,iOS,控制台:Nintendo Switch)。在任何桌面平台上工作。WebGL和Oculus(VR)很快就会成为目标。
​编辑

干净快速的代码

原生干净的面向对象编程语言,具有 现代对象Pascal。快速构建,开箱即用的快速执行。
​编辑

开源且对持续集成友好

工具友好,便于持续集成。 命令行生成工具和  Docker 映像。现成的文件和文档如何与 GitHub Actions,GitLab  CI和 Jenkins一起使用。引擎是完全开源的, 可用于制作任何(包括专有)应用程序。

2. 跨平台

真正的跨平台,您可以在(几乎)任何平台上工作并编译到任何平台。

  • 桌面(Linux,Windows,macOS,FreeBSD)。只需安装引擎,编译器(如FPC)并运行应用程序即可。

    ​编辑  ​编辑
  • 移动(Android,iOS)具有众多Android服务和iOS服务,以与特定于平台的功能集成。

    ​编辑  ​编辑
  • 控制台(任天堂开关)。

    ​编辑
  • Raspberry Pi(它只是Arm CPU上的桌面Linux)。

    ​编辑  ​编辑
  • 即将推出(路线图):

    • Oculus (VR) (我们有硬件可以测试)

    • WebGL(FPC可以编译成WebAssembly)

    • XBox(我们有要测试的硬件)。

  • 引擎代码是可移植的,原则上“只适用于”FPC或Delphi支持的任何操作系统和CPU。

3. 可视化编辑器

用于直观设计游戏 3D 和 2D 世界以及围绕它的用户界面的编辑器。

  • 使用新项目的模板 - 空、3D、2D。它们很好地展示了发动机的可能性,并被设计为您的应用提供了一个良好的起点。

    ​编辑
  • 允许轻松构建所有平台的项目。

    ​编辑  ​编辑
  • 使用文件浏览器,预览数据(3D模型,图像,声音文件)。

  • 使用简单的方法来执行代码编辑器(Lazarus,Visual Studio Code或任何其他您喜欢的内容)来编辑代码。

    ​编辑  ​编辑
  • 设计被(反)序列化为 JSON。任何组件都可以(反)序列化,以及它发布的属性。

  • 设计可以使用 或 相互引用,以像其他引擎的预制件一样使用它们。请参阅示例/advanced_editor/advanced_loading_designs。TCastleTransformDesignTCastleDesign

  • 您可以定义编辑器中可用的自定义项目特定组件。

4.视口与场景,相机,导航和其他组件

带有场景,相机,导航的视口允许定义3D和2D世界。

  • 灵活的变换和场景层次结构,您可以在编辑器中设计,或使用强大的 OOP API 从 Pascal 代码进行控制。

    ​编辑
  • 强大的加载和渲染许多模型格式,如glTF,X3D,精灵表。TCastleScene

  • 其他可见对象,如、、、。也非常适合快速制作 3D 和 2D 世界的原型。TCastleBoxTCastleSphereTCastleTextTCastleImageTransform

  • 灵活的相机支持,可以有多个摄像头,将子摄像头连接到摄像头,并将摄像头作为其他对象(如骨骼)的子项放置。

  • 简单的导航组件,如果您希望允许用户以标准方式在 3D 或 2D 世界中导航。这些包括典型的 2D 和 3D 导航方法(如、、)以及带有头像的第三人称导航 ()。TCastleWalkNavigationTCastleExamineNavigationTCastle2DNavigationTCastleThirdPersonNavigation

  • 每个转换都可以通过行为(的后代)进行增强,例如 、 。创建特定游戏所需的行为很容易,并鼓励您创建,请参阅手册中的行为。TCastleBehaviorTCastleBillboardTCastleSoundSource

  • TCastleTransformReference以有效地多次引用相同的转换。例如,实例化数千棵树很棒。

  • 使用组件的灯 , , .请参阅手册中的照明。TCastlePointLightTCastleDirectionalLightTCastleSpotLight

    ​编辑
  • 用于可视化地形 () 的组件,并从平滑噪声 () 或图像 () 或它们的组合 () 生成地形数据。请参阅示例/地形。TCastleTerrainTCastleTerrainNoiseTCastleTerrainImageTCastleTerrainCombine

    ​编辑  ​编辑  ​编辑  ​编辑  ​编辑
  • 我们的是一个2D用户界面控件,您可以自然地多次使用,以同时观察来自不同相机的相同或不同的3D / 2D世界。TCastleViewport

    ​编辑  ​编辑

5. 数据格式

您可以使用各种格式来定义 3D 和 2D 数据。

5.1. glTF

我们支持来自Khronos的标准模型格式:glTF。

​编辑  ​编辑  ​编辑  ​编辑
  • 与Blender的完美集成,可以导出到glTF。

  • 互联网上有很多glTF模型,例如在Sketchfab上。

  • 蒙皮动画。

  • 基于物理的渲染

  • 元数据支持(例如,可以来自Blender自定义属性)。

5.2. X3D

我们支持Web3D的标准模型格式:X3D和VRML。

  • 支持X3D 4.0,具有基于物理的渲染以及形状,纹理,动画等的许多可能性。

  • 这是一组 X3D 节点。我们实现了 X3D 节点的扩展集。TCastleScene

  • 您可以构建和处理 X3D 节点的场景图。模型的程序生成,模型的任何预/后处理都是可能的。

  • 我们可以将 X3D 图形保存回 X3D 格式的文件,请参见 。TCastleSceneCore.SaveSaveNode

  • 您可以编写模型转换实用程序。我们的view3dscene允许将各种模型转换为X3D。

5.3. 精灵表

我们支持精灵表。

  • 城堡游戏引擎(),Starling和Cocos2D格式。.castle-sprite-sheet

  • 自己的精灵表编辑器,可从纹理图集直观地创建精灵表

    ​编辑
  • 请参阅平台游戏示例 - 使用精灵表完成平台游戏。也于 itch.io 发布。

    ​编辑

5.4. 脊柱

我们支持脊柱骨骼2D动画。

​编辑  ​编辑
  • 我们在城堡游戏引擎中有自己的Spine导入器,可以读取Spine JSON(不依赖于任何官方的Spine运行时)。

  • Spine动画和渲染功能被转换为标准引擎动画节点(与glTF和X3D使用的节点相同),因此它们在引擎中保持一致,动画交叉淡入淡出等。

  • 脊椎皮肤被支持。

  • 支持从各种Spine版本加载Spine JSON文件,包括Spine 4。

  • 支持具有所有高级选项(例如剥离空白、旋转)的脊柱纹理图集。

  • 替代方法:城堡游戏引擎的Spine运行时是加载和渲染Spine模型的替代方法。它通过将一些工作“卸载”到Spine C运行时来支持一些附加功能。

6. 图形效果

  • 合成着色器以定义增强现有引擎渲染的着色器效果。请参阅示例/viewport_and_scenes/shader_effects示例。您可以使用OpenGL着色语言轻松编写自己的效果。

    ​编辑  ​编辑
  • 凹凸贴图(法线贴图)使用基本、视差、陡峭视差和自阴影算法。

    ​编辑  ​编辑  ​编辑  ​编辑
  • 动画混合/交叉淡入淡出 (, )。TCastleSceneCore.DefaultAnimationTransitionTPlayAnimationParameters.TransitionDuration

  • 平面上的简易镜子。

    ​编辑  ​编辑
  • Easy mirrors on curved surfaces (using generated cubemaps).

  • Physically-Based Rendering used by default for glTF and X3D 4.0 models using .TPhysicalMaterialNode

  • Alternative unlit shading also available, with glTF and X3D 4.0 models using .TUnlitMaterialNode

  • Alternative "classic" Phong shading is also available using or .TMaterialNodeGltfForcePhongMaterials

  • Shadow maps (with auto-detection of limits, correct shadows from multiple light sources).

    ​编辑  ​编辑  ​编辑
  • 阴影体积(具有z失败/ z通道自动检测,轮廓检测)。

    ​编辑
  • 屏幕效果(后期处理)API,用于使用着色器定义后期处理效果。请参阅屏幕效果规范,可以在任何 UI 控件上添加屏幕效果:只需将其作为 的子项即可。请参阅示例/screen_effects_demo/。TCastleScreenEffects

    ​编辑
  • 色彩空间(伽玛校正)。

  • 轻松设计背景(天空/地面渐变,天空盒),雾。

  • 多重采样(全屏抗锯齿),只需设置.TCastleWindow.AntiAliasing

  • 在某些情况下,遮挡剔除可以大大加快渲染速度。

​编辑  ​编辑
  • OpenGLOpenGLES使用的现代方法:

    • 使用现代OpenGL(OpenGL 3.3“核心”配置文件)。

    • 如果有必要,可以使用古老的OpenGL(甚至1.1)。支持古老的、有缺陷的系统或虚拟机。有关如何测试它的信息,请参阅。TGLFeatures.RequestCapabilities

    • 我们可以利用一些OpenGL ES 3.0功能(用于阴影贴图,3D纹理,遮挡剔除......),但任何OpenGL ES 2.0系统都可以工作。

    • 在桌面上,我们可以同时使用OpenGL(默认)和OpenGLES。在移动设备上,自然只有OpenGLES。

    • 简单的OpenGL调试(允许从GL获得丰富的日志和异常)。TGLFeatures.Debug

7. 图片

轻松显示显示图像作为用户界面或在视口中。

  • 由于与Vampyre Imaging Library的集成,支持多种图像格式(如PNG,JPG,RGBE)。

  • 完全支持 KTX 和 DDS,支持 GPU 纹理压缩、立方体贴图等。

  • 自动纹理压缩和缩小。

8. 用户界面组件

​编辑  ​编辑
  • 用户界面库提供适用于所有平台(如按钮、标签、图像)的跨平台 UI 控件。

  • 可以调整它们的外观以匹配您的游戏风格。

  • 您的游戏被组织成视图。每个视图都可以有一个设计(在编辑器中创建)和一个关联的单元,您可以在其中处理各种事件,例如按键。

  • 自动 UI 缩放,以调整到任何屏幕分辨率和带有锚点的纵横比。

  • 强大的掩码:手册、API 参考、示例。

8.1. 文本和字体

  • 在用户界面和 3D 中呈现文本,使用可自定义的字体。

  • 字体可以从常见格式(如 TTF 或 OTF)或图像 () 加载。TCastleFontTCastleBitmapFont

  • 本地化(包括自动翻译用户界面和 s)。resourcestring

  • UTF-8 支持通过引擎 API 的所有字符串,特别是呈现文本。

9. 网络

该引擎使用URL,允许下载URL的内容,并且可以与各种网络库集成。

​编辑  ​编辑  ​编辑  ​编辑
  • 所有路径都表示为具有一些特殊 CGE 协议的 URL,请参阅 nerworking。

  • 应用程序数据始终可以使用像castle-data:/xxx这样的URL访问。

  • 您可以使用 异步下载 URL。TCastleDownload

  • 与印地集成。

  • 与 RNL 集成的示例在我们的非地震演示中。

10. 优化和分析

我们拥有广泛的优化文档和许多功能,可帮助您加快游戏速度。

  • 在任何调试游戏中,F8 下可用的检查器都会显示 FPS 配置文件。

  • 内置简单的分析器。TCastleProfiler

  • 内置帧分析器。TCastleFrameProfiler

  • 内置纹理内存刻画器。TextureMemoryProfiler

  • DynamicBatching可用于批处理多个形状,以节省绘制调用。

11. 声音

您可以播放声音,空间(3D)或不播放。

​编辑
  • 支持各种声音后端:OpenAL或FMOD,在多平台上。

  • 完成声音流,以高效播放音乐曲目。

  • 所有声音后端都支持 WAV 和 OggVorbis 文件格式。

  • 声音组件,也可以在编辑器中进行设计和测试。TCastleSoundTCastleSoundSource

  • 基于优先级的自动声源管理。

12. 物理

你可以使用物理。

​编辑  ​编辑  ​编辑
  • 在对象上定义刚体和碰撞体。

  • 允许重力和碰撞自动产生影响。

  • 在冲突或触发器上注册事件。

  • 我们在引擎盖下使用卡夫物理引擎。

  • 即将推出(路线图):使用代码或CGE编辑器设计碰撞体,刚体和接头。见预告片,第一公关。

  • 您可以轻松执行冲突查询以确定...无论您需要什么。只需设置为至少使冲突查询将场景视为不仅仅是一个边界框。然后使用类似 or 的例程来查询某些内容是否发生冲突。请注意,到目前为止,这并没有使用“适当的”物理引擎(如卡夫或计划的 Bullet),而是使用自定义八叉树实现,但这在未来会改变。TCastleSceneCore.Spatial[ssDynamicCollisions]Viewport.Items.WorldRayCastViewport.Items.WorldBoxCollision

13. 平铺集成

您可以使用平铺设计游戏地图。

​编辑  ​编辑  ​编辑  ​编辑  ​编辑  ​编辑
  • 可以将切片地图(TMX 文件)加载到视口中用于 2D 或 3D 显示。TCastleTiledMap

  • 视口显示意味着它们可以与它上面的其他场景组合,例如地图上单位的精灵表。

  • 我们支持各种地图类型(正交、等轴测、六边形)、图层(您可以控制显示哪些图层)、动画等。

  • 请参阅有关平铺地图的手册。

  • 请参阅示例/平铺/strategy_game_demo,了解使用平铺地图的CGE中的完整策略游戏。

14. 粒子

粒子系统不是城堡游戏引擎核心单元的一部分。但是,您可以使用其他开源组件将此功能添加到引擎:

​编辑  ​编辑  ​编辑
  • 粒子发射器:用于 3D 和 2D 的粒子系统,支持直接在 CGE 编辑器中进行编辑。粒子是用 GPU 加速度(变换反馈)计算的。作者:Trung Le (Kagamma)。

    ​编辑
  • Effekseer Integration:与Effekseer集成,Effekseer是一个功能齐全的开源粒子效果创建工具。同样由Trung Le(Kagamma)创作。

    ​编辑

15. 使用现代 Pascal 的原生和快速代码

引擎以及您的游戏都是使用现代对象 Pascal 编写的。

​编辑
  • 我们支持 FPC 和 Delphi 编译器,请参阅支持的编译器和 IDE。

  • Pascal作为一种编程语言是

    • 优雅(类型安全、OOP、泛型),

    • 功能齐全(可以使用现有的大型代码库,例如Pascal和C,C++库将您的游戏与数据库,AI,网络连接起来),

    • 本机(编译为开箱即用快速运行的本机代码)。

      注意

      与库交互 使用C++类(以及其他只有C++编译器才能理解的功能) 您通常需要编写一个“包装器”库,以纯 C 格式公开等效的 API。 这与尝试使用C++库完全相同,例如来自 C#。

  • 用于构建引擎的相同编程语言用于您的应用程序 - 这导致简单(很容易贡献)和速度。

  • 快速执行。它是一种编译为快速本机代码的语言,同时保持优雅和类型安全。

  • 快速编译。

  • 本机调试。它只是一个使用本机调试器的本机应用程序。调试是Lazarus IDE不可或缺的一部分。

16. 构建工具和持续集成

用于从命令行或批处理模式管理项目的构建工具(适用于持续集成)。构建工具,就像编辑器一样,从CastleEngineManifest.xml文件中读取项目信息。

  • 构建工具可以构建、打包、运行应用程序并自动生成压缩纹理(以及更多)。

  • 您可以针对任何受支持的目标平台进行构建。您可能需要安装交叉编译器(例如使用fpcupdeluxe),某些平台可能还需要其他工具(请参阅Android等文档)。

  • 我们可以构建现成的应用程序,例如适用于Android的APK / AAB,适用于iOS的IPA。

  • 具有 CGE 和先决条件(FPC、Android 构建工具、纹理处理工具)的 Docker 镜像,可轻松构建 CGE 应用程序。

  • 使用以下方法自动构建 CGE 项目的现成说明:

    • GitHub 操作

    • GitLab CI

    • 詹金斯

    免费享受现代持续集成,无论您如何托管代码!

​编辑

17. 免费开源软件

该引擎在“具有静态链接例外的LGPL”许可证上获得许可,类似于FPC和Lazarus标准库。

  • 简而言之,这意味着您可以使用它创建商业闭源应用程序,而不会出现任何问题。

你可能感兴趣的:(游戏引擎,unity,开源,CGE,Castle,Engine)