[译]Godot系列教程三 - 场景实例化(续)-阿里云开发者社区

开发者社区> x3d> 正文

[译]Godot系列教程三 - 场景实例化(续)

简介: 场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这是一种设计语言 场景实例化真正强悍的地方就在于它是以一种卓越的设计语言的机制运行的。
+关注继续查看

场景实例化(续)

要点

场景实例化带来很多便利的用法,总体来说有:

  • 将场景细分,更便于管理
  • 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大
  • 是一种设计更复杂的游戏流程甚至UI的方式

这是一种设计语言

场景实例化真正强悍的地方就在于它是以一种卓越的设计语言的机制运行的。这一点使得Godot区别于其它引擎,并有很大的不同。Godot整个引擎从底层开始都是围绕着这个概念进行设计的。

在使用Godot制作游戏时,建议把MVC或ER图这样的设计模式先抛开一边,而开始用更自然的方式思考游戏:设想出游戏中的可见元素,这些元素可由任何人去命名,而不仅仅是开发者。

例如,这是一款简单的射击游戏能设想出的元素:

img_3b0968ff3267b30baa3da5c04ea94514.png

几乎对于任意类型的游戏,提炼出这样一张图(Diagram)都非常简单。仅需将脑子里出现的元素记下来,然后用带剪头的线标注出所代表的所有者关系就行了。

一旦这种图确定好了,制作游戏的过程就是先为图上的这些节点创建相应场景,然后利用场景实例化(通过编码或编辑器直观操作)来代表其所有者关系。

对于大多数的游戏开发或通常意义的软件开发来说,时间都是花费在架构设计及填充架构中的游戏组件上。而基于场景的设计使得整个开发过程变快很多,而且更直观,让你可以更关注游戏本身的东西。基于场景/场景实例化的设计,由于多数的组件直接对应到某个场景,极大的节省了那部分架构设计的工作。这样,项目中几乎不需要或者仅需少量架构性代码即可。

下面是一个较为复杂的例子 - 一个开放世界类型的游戏,带有很多资源文件(Asset),并有些交互效果:

img_11864e8aac981cfbb4713b07848ef10e.png

先制作一些带有家具的房间,将它们联系起来。再制作房子,并将那些房间作为其内部构成。

房子可以作为城堡的一部分,城堡中会有很多房子。最后,城堡可以放到世界地形图中。还可以将前面创建的守卫及其它非玩家角色(NPC)添加给城堡。

使用Godot时,游戏可以根据需要快速壮大,因为仅仅是更多的子场景在被创建和实例化。Godot的编辑器也是面向非程序员的操作习惯设计的,常规团队开发环境的角色:三维或二维设计师、关卡设计师、游戏设计师、动画师等等都能使用编辑器界面进行协作。

信息量有点大了是吗?!

不用有太多担心啦,这部分文档的最重要目的让你对实际开发过程中场景和实例化的用法产生一些认知。要想全部理解,最好的方式是动手去做些游戏。

在实践过程中,所有的东西都会变得明晰起来的,所以别挠头了,继续看下一篇!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
用 eric6 与 PyQt5 实现python的极速GUI编程(系列04)---- PyQt5自带教程:地址簿(address book)
【引子】 在PyQt5自带教程中,地址簿(address book)程序没有完全实现界面与业务逻辑分离。 本文我打算用eric6+PyQt5对其进行改写,以实现界面与逻辑完全分离。   【概览】 1、界面: 2、功能简介:程序有三种操作模式:浏览模式、添加模式、编辑模式。
845 0
x3d
[译]Godot系列教程二 - 场景实例化(Instancing)
场景实例化(Instancing) 原理阐述 创建一个场景并将节点扔到里面对于小项目是适用的,但随着项目不断发展,用到越来越多的节点,整个项目很快就会演化成难以管理的状态。 为了解决这个问题,Godot允许一个项目分割成多个场景。
843 0
x3d
[译]Godot系列教程五 - 制作Godot编辑器插件
制作插件 下文仅针对2.1版本。 关于插件 插件是为编辑器扩展出更多有用工具的重要方式。它可以完全用GDScript和标准场景开发,甚至都不需重新加载编辑器就可生效。不像模块,你无需创建C++代码、也无需重新编译整个引擎。
1124 0
阿里云技术教程系列-ECS远程连接 Linux 实例
内容提示:阿里云ECS服务器入门教程:步骤 3 远程连接 Linux 实例 根据您本地的操作系统,您可以从 Windows、Linux、Mac OS X 等操作系统连接 Linux 实例。本文介绍常用的连接服务器方式。
4242 0
NDK OpenGL ES 3.0 开发(十三):实例化(Instancing)
OpenGL ES 实例化(Instancing)是一种只调用一次渲染函数就能绘制出很多物体的技术,可以实现将数据一次性发送给 GPU ,告诉 OpenGL ES 使用一个绘制函数,将这些数据绘制成多个物体。
77 0
运维编排场景系列-----给ECS实例自动打TAG
Tag简介和场景 对于一般的资源管理需求,都是针对一个用户下数量较多的情况,当实例等数量较多时,对实例进行运维管理等操作就会变得比较困难,有时候甚至需要采取拆分账号的方式管理不同部门或者不同用途的资源。
1544 0
Json.Net系列教程 2.Net类型与JSON的映射关系
原文 Json.Net系列教程 2.Net类型与JSON的映射关系 首先谢谢大家的支持和关注.本章主要介绍.Net类型与JSON是如何映射的.我们知道JSON中类型基本上有三种:值类型,数组和对象.而.
814 0
+关注
x3d
编程语言相关技术专家
527
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载