跳至内容

Roblox 游戏开发/单页版本

来自维基教科书,开放世界中的开放书籍


A normal 4 x 1.2 x 2 ROBLOX brick
一个普通的 4 x 1.2 x 2 ROBLOX 砖块

ROBLOX 是一个用户生成的游戏网站。这意味着用户可以制作其他用户可以玩的游戏。ROBLOX 允许你使用其游戏引擎和 脚本接口 创建各种类型游戏,供其他人玩。游戏是 3D 的,使用可以准确地与 乐高 块比较的积木。这些积木可以使用工作室进行定制、调整大小、定位和操作。游戏还可以包含各种其他对象,包括粒子(烟雾、火焰等)和图形对象(文本标签、按钮等),用户可以编写脚本为他们的游戏添加更多功能。

ROBLOX 上的大多数用户都会创建游戏和玩游戏,但许多用户只经常做其中的一件事。虽然大多数用户确实有一个或多个他们定期改进和开发的游戏,但大多数用户并不是经验丰富的游戏开发者,他们将 ROBLOX 看作玩具而不是游戏开发平台。

创建账户

[编辑 | 编辑源代码]

你需要一个账户才能创建游戏并使用网站。如果你还没有账户,你可以轻松地创建一个。你需要使用你的网页浏览器访问以下 URL: https://www.ROBLOX.com/Login/Signup.aspx。在那里,你需要填写你的出生日期和性别,并选择一个用户名和密码。你将获得一个角色:有很多方法可以自定义角色并使用 ROBLOX 的社交功能,但这本书将只关注游戏开发方面,虽然其中一些功能与社交功能重叠。如果你以前从未使用过该网站,你应该探索一下,以便在需要时能够找到你想要的内容。你还可以玩一些地方(ROBLOX 上的游戏通常被称为“地方”)来了解一些 ROBLOX 上可以做的事情。

你需要 ROBLOX 客户端才能玩游戏(可以通过点击任何地方的播放按钮在网站上下载),你需要 ROBLOX 工作室(与客户端一起提供)才能创建和修改游戏。请注意,ROBLOX 软件仅适用于 Windows 和 Mac OS X。有一些方法可以使用 Wine 在 Linux 上运行,通过 [补丁]。请注意,该包装器目前没有,你需要在 Linux 上运行带有 Windows 或 Mac OSX 的 虚拟机 才能玩 ROBLOX。

David Baszucki 成立了 Knowledge Revolution 公司,该公司专注于教育物理和机械模拟软件。Erik Cassel 加入了他,与 Baszucki 一起开发软件。Keith Lucas,现任 ROBLOX 工程和运营副总裁,于 1997 年加入了该公司。之后,Knowledge Revolution 被 MSC 软件公司 收购,他们在几年后离开公司创立了 ROBLOX,时间是 2004 年。

ROBLOX 于 2005 年推出。该名称是“机器人”和“积木”的组合。它最初只有几百名用户,如今有数百万用户,并且还在不断增长。这本书将涵盖自 ROBLOX 创建以来多年来添加到游戏引擎和脚本 API 中的许多功能;然而,由于 ROBLOX 中嵌入了大量的功能,以及几乎每周都会发生的变化和新增功能,这本书不可能涵盖所有内容。

这本书不会描述 ROBLOX 网站的全部内容,甚至不会描述大部分内容,而是提供关于开发游戏的许多核心方面的指导。我们鼓励你自己探索网站的其余部分。你可以使用页面顶部的菜单栏浏览网站。

你可以在个人资料页面上查看你的地方,你可以通过点击菜单中的个人资料链接找到你的个人资料页面。除非你将账户升级到高级会员资格,否则你只能拥有一个地方(你不需要一个以上的地方或任何高级功能来完成这本书)。你也可以在地方页面或建造页面上找到你的地方。

ROBLOX Studio

[编辑 | 编辑源代码]
The explorer panel
资源管理器面板
The property panel when the workspace is selected
选择工作区时显示的属性面板
The advanced objects panel
高级对象面板

ROBLOX Studio,应该在你安装 ROBLOX 客户端时下载到你的电脑上,是一个可以用来创建和开发 ROBLOX 模型、脚本以及将两者结合在一起的“地方”的工具。打开后,它应该会显示 ROBLOX 网站上的一个页面。你应该从该页面登录(使用工作室不需要登录,但一些功能需要登录)。登录你的账户后,你可以通过打开文件菜单并选择新建来打开一个新的地方。你也可以通过浏览网站上的游戏页面并点击游戏的编辑按钮来编辑你当前的游戏之一。

如果你找不到面板,请打开查看菜单并点击相应按钮使其可见。

游戏视图显示当前的游戏环境。当你打开一个新的地方时,它看起来应该像一个空旷的天空,位于中间。它会以与玩家玩游戏时相同的方式显示你的游戏。你可以使用箭头键移动相机。

资源管理器面板,通常被称为资源管理器,是一个显示当前游戏中所有对象的层级结构的面板。点击层级结构中的某个对象将选择它。包含在另一个对象中的对象被称为该对象的子对象(地形对象是工作区的子对象),而包含另一个对象的被称为该对象的父对象(工作区是地形对象的父对象)。一个对象可以有多个子对象,但只能有一个父对象。

你可以通过点击对象上下文菜单(在右键点击对象时显示)中的相应按钮对对象执行许多操作。你还可以通过将对象拖放到另一个对象中来移动对象(一些对象不能移动)。

属性面板是一个显示当前所选对象的属性的面板。属性是你可以修改以更改对象行为的值。

有很多种对象类型。这些被称为类。并非所有类都具有相同的属性,但是,所有类都有一些共同的属性。ClassName 属性是所有对象都共有的,它的值是对象所属类的名称。例如,部件的类将是“部件”。Name 属性也是所有对象都共有的,它的值是对象的名称。每个对象都需要有一个名称。Parent 属性是所有对象都共有的另一个属性,它的值是当前对象所包含的对象。

工具箱是一个面板,允许您插入其他用户制作的模型。这些模型也称为“公共领域模型”或“免费模型”,可以使用工具箱搜索。ROBLOX 也精选了一些模型。您自己的模型(您可以发布您自己的模型供其他人使用)也会显示在工具箱中。

高级对象面板是一个面板,允许您通过双击项目的名称将对象插入到游戏层次结构中。该对象将被插入到当前选定的对象中。该面板将以列的形式显示可用的项目。如果选中该复选框,则在插入后会自动选择该对象。您还可以使用面板顶部的搜索栏搜索特定对象。

命令栏是一个工具栏,可用于运行简短的代码行。它通常与输出一起使用,以查看特定代码段产生的结果。它也经常用于自动化游戏中的任务,或执行 Studio 界面无法完成的操作。

输出是一个面板,显示脚本生成的输出,以及来自引擎的警告和其他信息。它是查找脚本中的错误并进行更正的重要工具。它还可以与命令栏一起使用,以执行代码并查看结果。

脚本性能面板是一个面板,显示有关游戏中运行的脚本性能的信息。标记为“[Unknown]”的脚本通常是核心脚本(ROBLOX 使用的内部脚本)或已删除的脚本,因此可以忽略它们。虽然脚本性能面板不经常使用,但它可以帮助识别性能昂贵的脚本,并且在评估脚本性能时很有用。

诊断面板很少使用,但了解它很有用。其中的大部分信息都非常技术性,对于普通用户来说毫无用处。它可以告诉您游戏中零件的数量,物理引擎处理的连接数量,每秒帧数 (FPS) 和其他一些东西,但这些信息很少需要。

诊断面板中的信息也大部分可以在游戏中获得。要查看它,请在 Microsoft Windows 上按 Ctrl+F1Alt+F1,在 OS X 上按 F1F1

剪贴板

[edit | edit source]

A screenshot of the clipboard toolbar

剪贴板工具栏可用于复制、剪切、复制和粘贴游戏对象或脚本代码。此外,它还可用于撤消或重做操作。所有这些操作都有键盘快捷键;可以通过将鼠标指针悬停在按钮上查看它们。

相机操作

[edit | edit source]

对于从未使用过相机的人来说,相机可能很难适应。可以使用鼠标滚轮或 IO 键进行缩小。可以使用向上和向下键或 WS 键向前和向后移动相机。可以通过右键单击并拖动鼠标来旋转相机。

游戏层次结构

[edit | edit source]

游戏层次结构是游戏中对象的层次结构。它可以通过资源管理器查看和操作,如上所述。顶层对象(在资源管理器中没有可见父对象的物体)被称为服务。并非所有服务都显示在资源管理器中(实际上,默认情况下许多类都是隐藏的)。

工作区是所有脚本(允许您在游戏中运行代码的对象)和游戏中可见部分(部分也称为“砖块”或“块”)所在的区域。

玩家服务是玩家对象(代表玩家的对象)将被放置的位置。您现在不必担心此服务,因为您只会在编写脚本时使用它。

照明服务是放置天空盒(用于为天空提供不同的外观)的地方。它还包含许多属性,可以修改以更改场所的照明。

StarterGui 服务包含 GUI,您可以将其放在游戏中以创建菜单、按钮等。当玩家角色生成时,将向玩家提供此服务中包含的 GUI。没有脚本,GUI 无法做太多事情,因此本书不会再次谈论它们,直到以后,当我们进入脚本编写时。

StarterPack 服务包含工具。玩家使用工具来做事情。例如,剑可以用来攻击其他玩家,钥匙可以用来打开门,等等。这些工具将在玩家角色生成时提供给玩家。同样,没有脚本,您无法用工具做太多事情。

模拟

[edit | edit source]

A screenshot of the simulation toolbar

ROBLOX Studio 提供了许多方法来测试使用它构建的游戏。当使用 Studio 编辑游戏时,它最初处于空闲状态。这意味着物理没有被模拟(即零件不会掉落,爆炸不会有效果)并且脚本没有运行。可以使用运行按钮将游戏置于运行状态。这将启用物理并使所有脚本运行。然后,可以使用暂停按钮将游戏再次置于空闲状态;或者,可以使用重置按钮将游戏重置到其开始运行时的状态,并将游戏恢复到空闲状态。

通常,这些工具不够用,测试游戏需要角色。为此,有三种选择。第一种是在线测试游戏。不幸的是,这需要将游戏发布到网站并进入游戏,这可能需要一些时间,并且无法让您访问 Studio 中提供的所有调试工具。[1]

第二种选择是在没有服务器的情况下玩游戏(在单人模式下)。这将在访问输出和完整 Studio 的情况下创建一个伪游戏环境。它为用户提供角色并运行游戏。但是,这种模拟环境与真实游戏环境之间存在很多差异,因此随着测试的游戏变得越来越复杂,此选项的实用性会迅速降低。

第三种选择是在本地启动一个服务器,一个或多个玩家。[2] 这将在您的计算机上启动服务器的实例,并为每个玩家启动连接到该服务器的客户端。服务器和所有客户端都可通过不同的窗口访问,每个窗口都具有完整的 Studio。此选项提供了比其他选项更完整、更正常的游戏环境,但由于同时打开多个 ROBLOX 实例,因此对计算机资源的要求更高。此外,徽章或数据持久性等一些功能仅在线上有效,并且根本无法在本地使用。

保存游戏

[edit | edit source]

当前打开的游戏可以通过使用标准工具栏或 文件 菜单保存。游戏以“.rbxl”扩展名保存,并使用二进制格式。它们以前使用具有相同扩展名的 XML 格式。仍然支持旧的 XML 格式,游戏可以使用“.rbxlx”扩展名以 XML 格式保存。可以通过使用 文件 菜单或标准工具栏中的打开按钮再次打开它们。保存在用户计算机上或在 Studio 中创建的文件可以使用 文件 菜单中的“发布到 ROBLOX...”选项上传到网站。直接从网站打开的游戏将在关闭之前提示用户保存。

物理对象

[edit | edit source]

在 ROBLOX 上的虚拟世界中,有不同类型的对象会以物理形式出现。

零件

[edit | edit source]
一个塑料零件,其外观为圆柱形,但物理上表现为球形

ROBLOX 上最常见的物理对象是部件。部件也称为砖块和积木。它们可以有三种形状:块状、球状或圆柱状。部件的形状会影响其物理行为。圆柱体在物理上的行为类似于球体,因为模拟圆柱体需要消耗过多的计算机资源,并且会降低大量使用圆柱体的游戏的运行速度。

材质

[edit | edit source]
ROBLOX 提供的材质

可以使用材质来自定义部件的外观。部件的默认材质是塑料材质,使部件具有均匀的颜色,并略带水泥质感;可以使用光滑塑料材质获得完全均匀的颜色。塑料材质在某些情况下很适用,但可能需要更多定制以改善建筑物的外观。当将材质应用于部件时,会改变该部件的纹理。它们还会改变该部件的密度,这对部件放置在水地形中的情况有影响:一些材质的部件(如木材)会浮在水面上,而其他材质的部件(如石板)则不会。

可以使用自定义工具栏的第五个按钮来更改部件的材质。它允许你从可用材质列表中选择所需的材质,然后单击部件将该材质应用于它们。材质不多,但足以满足大多数目的。当需要更多自定义时,可以使用下面几节中描述的自定义纹理,但使用较少。

形状因子

[edit | edit source]

所有部件都有一个形状因子,它定义了部件可以采用的尺寸。默认形状因子是砖块形状因子,它要求砖块的高度是 1.2 的倍数。对称形状因子要求块的所有尺寸都是 1 的倍数,而板形状因子要求高度是 0.4 的倍数。自定义形状因子允许所有尺寸的因子非常低。

表面类型

[edit | edit source]

部件的每个表面都有一个类型。默认情况下,顶部表面有凸起,底部表面有凹槽。有 11 种表面类型。表面可以与其他表面形成连接,这使得部件能够粘在一起,不会因重力而掉落到它们原本应该掉落的地方。它们还会影响部件的外观,如果部件的材质是塑料。否则,将使用材质纹理而不是表面纹理。

表面类型
图像 表面类型 描述
光滑 此表面类型渲染为完全光滑的表面,具有纯色。具有此表面类型的表面不会与其他表面形成连接。
胶水 具有此表面类型的表面与其他表面形成松散的连接。
焊接 具有此表面类型的表面与其他表面形成牢固的连接。
凸起 具有此表面类型的表面与凹槽形成焊接般的连接。
凹槽 具有此表面类型的表面与凸起形成焊接般的连接。
通用 具有此表面类型的表面与其他通用表面、凹槽和凸起形成焊接般的连接。
铰链 具有此表面类型的表面与其他表面形成连接。这些连接允许自由运动。
电机 具有此表面类型的表面与其他表面形成连接。这些连接不允许自由运动,而是强制对另一个部件进行运动。运动由表面输入定义。
不可连接 此表面类型与光滑表面类型相同,区别在于 ROBLOX 创建的并作为工作室一部分的构建工具不会在具有此表面类型的表面和其他表面之间创建连接。
无轮廓光滑 此表面类型与光滑表面类型相同,区别在于不会在表面周围渲染轮廓。

表面类型之间的行为在本表中详细描述

表面类型之间的行为
SurfaceType 焊接 通用 凸起 凹槽 胶水 光滑 不可连接 无轮廓光滑
焊接 焊接 焊接 焊接 焊接 焊接 焊接 焊接 焊接
通用 焊接 捕捉 捕捉 捕捉 胶水
凸起 焊接 捕捉 捕捉 胶水
凹槽 焊接 捕捉 捕捉 胶水
胶水 焊接 胶水 胶水 胶水 胶水 胶水 胶水 胶水
光滑 焊接 胶水
不可连接 焊接 胶水
无轮廓光滑 焊接 胶水

贴花和纹理

[edit | edit source]
A brick wall using textures
使用纹理的砖墙

贴花是可以放在部件表面上的对象,以便在该表面上显示图像。它们对于广告牌、旗帜、旗帜和游戏内屏幕很有用。当应显示图像以更改表面的外观时,可以使用纹理代替。

纹理与贴花相同,但图像会重复而不是缩放以填充整个表面。这给出的结果远优于使用贴花获得的结果,因为 ROBLOX 上的用户图像质量受到限制。

如果你想要一个显示广告的标志,应该使用贴花。如果你想在墙上贴上砖纹理,那么你应该使用纹理。纹理对象,与所有其他对象(包括贴花)一样,可以在高级对象面板中找到。

网格

[edit | edit source]

游戏有时需要包含比简单的块、球体和圆柱体更复杂的对象。网格可以用于此目的。它们是可以放在部件中的对象,当放在部件中时,会使这些部件具有不同的形状,该形状可以非常复杂。有一些预定义的网格,以及许多其他上传到网站上的网格。例如,目录中的所有帽子和装备都使用网格来展现外观。网格本身没有颜色或纹理,只有形状,但它们通常会赋予纹理。网格只影响它们所用部件的外观,但部件的物理行为仍然由其形状和表面类型定义。因此,网格最适合用于小型物体或玩家无法触及的物体。

网格不支持轮廓。它们可以被缩放并从其物理部件移开(使用偏移量)。缩放是必要的,因为它们的尺寸不适合物理部件的尺寸。将它从物理部件移开可以用来创建全息图效果和其他类似效果。

粒子

[edit | edit source]

部件可以包含不同类型的粒子。可以创建自定义粒子,但提供了许多预定义的类型,并提供了一些可以自定义的属性。

闪光
[edit | edit source]

可以在部件中插入闪光对象,使闪光状粒子从部件内部出现并向外移动,然后在一定距离处消失。这些闪光的颜色可以自定义。

可以使用火对象使火粒子出现在部件之上。火不一定需要是橙色或红色,可以是任何颜色。它的热量(粒子的寿命)可以设置,消失时粒子的颜色也可以设置。

烟雾
[edit | edit source]

可以使用烟雾对象使烟雾出现在部件之上。烟雾通常会向上飘,但也可以向下飘:它会朝其所在部件的顶部表面方向飘动,因此通过改变部件的旋转,可以使烟雾向左飘动,或向任何方向飘动。烟雾的颜色可以更改,上升速度也可以更改。尺寸也可以更改,透明度也可以更改。

桁架

[edit | edit source]
奥克兰港大桥 下的支撑结构,桁架使用的一个真实示例

桁架与部件大体相同,但外观不同,角色可以攀爬,并且有尺寸限制。它们必须始终具有两个栓的宽度和深度,而它们的高度不受限制。它们支持材质、表面以及部件支持的所有内容,除了贴花和纹理。它们有三种不同的风格:无支撑、交替支撑和桥梁式支撑。

当角色站在桁架旁边并开始朝其方向行走时,他将开始像攀爬梯子一样攀爬桁架(当许多部件叠放在一起,并且每个部件之间有一个小间隙时,角色在朝部件堆方向行走时会向上移动)。这在许多桁架水平叠放时也适用。有时,将许多桁架组合在一起可以更容易地攀爬它们。但是,在许多情况下,可能希望使用梯子而不是桁架,因为桁架主要是一种真实的建筑材料,而不是用来攀爬结构的工具,而梯子是用来攀爬结构的工具。

生成位置

[编辑 | 编辑源代码]

出生点与部件相同,行为方式也相同,区别在于角色可以出生在出生点之上。可以配置出生点,以便仅让某个队伍的玩家的角色出生在该出生点上。还可以配置出生点,让用户出生在出生点上的角色周围出现一个力场,持续一段时间,以防止刚出生的角色立即死亡。

A screenshot of the terrain toolbar

A screenshot of some randomly generated terrain
随机生成的地形的截图

游戏中可用的部件数量受计算机可用资源的限制。地形可用于创建美丽而复杂的地形,由于计算机资源的限制,使用部件无法创建这些地形。地形以体素地形实现。 体素 是原子体积单位,可以看作是像素的三维等效物,或者简单地看作是立方体。这些立方体可以组合在一起,并赋予不同的外观。

地形立方体当前具有材质、形状和方向。与部件不同,它们不是对象,在资源管理器中不可见,也不能分组到模型中。但是,您可以在普通计算机上拥有数百万个地形立方体,而普通计算机上的部件限制为大约十万个,此时游戏速度非常慢。

地形通常使用地形工具栏创建,该工具栏显示在本节的顶部。工具栏中的第一个工具是地形生成器,用于生成地形。接下来的两个工具用于创建和销毁单个地形块。接下来的两个工具用于通过在特定位置上下拖动来更改地形的标高。接下来的工具用于创建陨石坑,而以道路交叉点为图标的工具用于创建道路。接下来的工具用于快速绘制地形的大面积,而 倒数第二个 工具可用于插入地形块(以及其他对象)。最后,最后一个工具用于用特定材质的体素填充地形区域,通常用于创建湖泊或河流。这些工具每个都有自己的集成帮助,可以通过选择工具并单击带问号的按钮来获得,因此这里不再描述它们。

座椅的工作方式与部件相同,但玩家可以坐在上面。座椅有很多类型:简单的座椅、车辆座椅和滑板平台。简单的座椅只是用户可以坐的部件。脚本可用于使这些座椅具有各种功能。车辆座椅用于创建带电机和轮子的车辆,用户无需任何脚本即可控制这些车辆。最后,滑板平台用于控制通常更小(悬浮滑板、滑板、冲浪板以及通常描述车辆并以“板”结尾的任何东西)且更容易控制的车辆。滑板平台需要脚本才能工作,但会处理不同事件中发生的动画,例如当滑板平台上的角色转弯、跳跃、加速等时。

在 ROBLOX 上,建造是将物理物体组合在一起、操纵它们并对其进行自定义的艺术。工作室提供了许多工具来促进这个过程。通过能够改变部件和其他物理物体的尺寸、位置和外观并将其组合在一起,几乎可以建造任何东西。从小型建筑到非常详细的房间,再到复杂的机制,可以创建很多东西。

A screenshot of a tower made out of parts
一座塔的截图

模型用于将部件、脚本和其他模型组合在一起。它们对于组织不可或缺。一个没有组织的大型游戏很快就会变得难以维护,因此您应该始终使用模型来组织游戏中的对象。当许多对象一起构成更大的东西时,应该将其组合在一起(床、房子、汽车等)。可以使用资源管理器的上下文菜单或“格式”菜单中的“分组”和“取消分组”按钮(以及相应的键盘快捷键)来对部件进行分组和取消分组。您还可以使用“格式”菜单中的相应按钮来选择模型的所有子级,这在某些情况下非常有用。

例如,假设您正在建造一座塔,就像右边的塔一样。假设它有一扇门和通往顶部的楼梯。您可以将构成楼梯的部件组合在一起,并对构成门的部件执行相同的操作。您可以将构成城墙的部件组合在一起,并将所有其他部件组合到名为“墙壁”的模型中。然后,您可以将所有这些模型组合在一起,并将该模型命名为“塔”。这样,该地方肯定会比您只是将所有这些部件散布在周围而不进行任何组织要更有条理!

A screenshot of the part manipulation toolbar

操作部件包括移动、调整大小和旋转它们。在工作室中,部件的操作通常使用上面显示的工具栏完成。

  • 第一个工具可用于通过单击部件来选择它们,并通过在选中部件后拖动鼠标来移动它们。部件也可以使用任何其他工具进行选择和拖动。
  • 第二个工具可用于移动部件。它的工作方式与第一个工具类似,但还会显示拖动句柄,允许您在特定轴上移动部件。
  • 第三个工具可用于更改部件的旋转。这个工具有点难用,但仍然应该很简单:只需使用句柄来更改部件的旋转。
  • 第四个工具可用于通过使用句柄并拖动它们来更改部件的大小,就像您使用第二个工具移动部件一样。
  • 分隔线后面的三个按钮用于更改使用的网格以及移动、调整大小或旋转部件时的增量。学习使用它们的最佳方法是尝试使用它们。
  • 最后,最后一个按钮允许您选择部件在移动到其他部件上时是否应该焊接在一起。如果启用,部件将粘在一起。否则,它们不会粘在一起,并且在游戏运行时可能会掉落。

ROBLOX 使用名为“英尺”的单位进行定位和计算距离。英尺相当于部件上带 R 徽标的正方形之一。一米等于 20 英尺。

自定义

[编辑 | 编辑源代码]

A screenshot of the part customization toolbar

自定义部件包括更改其外观和行为。与操作一样,它通常在工作室中使用工具栏(上面显示的工具栏)来完成。某些自定义只能通过从属性面板手动更改属性来完成。

第一个按钮可用于锚定或取消锚定部件。锚定部件意味着设置其位置,使其不会因重力、碰撞或其他物理事件而改变。锚定部件在运行的游戏中无法移动,除非它们的职位被游戏脚本修改,但它们会与其他部件发生碰撞,这意味着角色可以走在它们上面,例如。

第二个按钮可用于锁定或解锁部件。锁定部件使其无法被构建工具操作,无论是在工作室中还是在构建游戏中。当您不想让玩家能够操作构建游戏中的某些部件时,这很有用,它也有助于防止您错误地移动部件。

第三和第四个按钮用于更改部件的颜色。第一个允许您在调色板中选择颜色,而第二个允许您通过单击现有的部件来选择它的颜色。

最后,第五个按钮可用于通过从可用材质列表中选择所需的材质来更改部件的材质。

如果你回顾一下模型部分介绍的塔,你会注意到它的墙使用了大量的部件。虽然这并不完全是坏事,但为了让游戏更快(通过减少部件数量),通常最好使用重复砖块的纹理。

其他工具

[编辑 | 编辑源代码]

除了所有工具栏,工作室还提供用于构建的附加工具。除了菜单中的一些选项外,还有一个轴向小部件,可用于快速找到 X 轴或 Z 轴的位置,还有一个 3D 网格,可用于快速找到位置零的高度并在其上构建部件。这两个工具很少使用,但它们可以用来识别哪个轴是 X 轴,哪个是 Z 轴。所有部件自定义和操作也可以通过选择部件后使用属性面板直接编辑部件的属性来完成。

帮助来源

[编辑 | 编辑源代码]

ROBLOX 有许多帮助来源,用户可以在那里获得各种主题的帮助。其中一个是论坛,用户可以在那里提问。有两个关于游戏开发的帮助论坛

在论坛上发帖之前,用户可以查看许多其他在线帮助来源。第一个是 Builderman 的帮助,可以在网站的菜单中找到(“帮助”按钮)。它包含有关网站、规则和其他各种事项的信息。

然而,主要的信息来源是 ROBLOX Wiki。它可以通过网站上隐藏的一些链接找到,或者在游戏中按下 F1 找到。该 Wiki 由 ROBLOX 员工选择的编辑撰写,包含有关构建和脚本编写的文档。它是 ROBLOX 的一个非常有用的信息和文档来源。

有一些问题你可以回答,以验证你是否理解了本章的内容。请注意,找到其中一些问题的答案可能需要一些本章没有介绍的知识。这是正常的:测验是学习体验的一部分,它们可以介绍本书其他地方没有的信息。

1 什么是 ROBLOX?

一个内容由用户创建的网站(用户生成网站)
一个提供特定主题信息的网站(信息网站)
一个开发游戏的平台(游戏开发平台)
一个托管游戏的网站(游戏主机)

2 什么是 ROBLOX Studio?

一个 集成开发环境
一个创建和编辑视频的程序
一个创建和编辑游戏的程序
一个提供有关 ROBLOX 信息的网站。

3 所有地形单元都有哪些属性?

形状
方向
颜色
材质
流动

4 将每种表面类型与其行为关联。

凸起通用入口
具有此表面类型的表面将与所有这三种类型的表面形成键。
具有此表面类型的表面将与入口和通用表面形成键。
具有此表面类型的表面将与钉子和通用表面形成键。

5 要获得一米,需要多少个钉子?


游戏设计

[编辑 | 编辑源代码]

设计你的游戏应该是制作游戏的首要步骤。现在,你往往会边做边设计你的游戏。你将不断地重新发明、重新评估和重制你的游戏。如果你开始使用工作室,用一个游戏设计来制作,而且从来不改变任何计划,那么你的游戏可能在根本上存在一些问题。在本章中,我们将讨论如何设计你的游戏,更具体地说,是利用 ROBLOX 的云托管游戏平台来快速获得反馈以修改你的游戏。我们将讨论在图形和外观以及功能方面应该做些什么,以及不应该做些什么。

寻找创意

[编辑 | 编辑源代码]

寻找游戏创意可能很困难。对于你可能得到的大多数创意,设计中会存在很多问题。这个概念可能是不可实现的,或者只是存在技术困难或限制,阻止其实现。在这种情况下,你将需要改进设计。记住,寻找游戏创意并不难,难的是制作它,并且有决心去做。以下是一些建议,可以帮助你找到游戏创意

  • 你最喜欢的游戏是什么?你对它有什么不满?你能改进什么?去做吧!
  • 选择一个类型。想想你想要玩什么类型的游戏。去做吧!
  • 在 ROBLOX 的游戏设计论坛上提问,或者使用其他类似的资源——总有人在那里有一个好主意。
  • 借鉴别人的项目(ROBLOX 上有许多为这个目的而存在的组)。
  • 在网上进行研究!从你可以在其他地方找到的东西、你经历过的事情以及你喜欢的游戏中获得灵感。
  • 问问自己“你真的想做这个游戏吗?”和“我会玩这个游戏吗?”

一旦你心中有了一个想法,你需要分析它是否可行。想想游戏的每个组件,问问自己如何做到,以及是否以前见过:如果你以前没有见过,特别是在 ROBLOX 上,而且你想不出如何做到,问问更有经验的游戏开发者和设计师,他们可能对如何做到有一个清晰的想法。比你更有经验的人通常对形势有更清晰的看法,他们可以与你分享这种看法,这可以极大地帮助你。考虑到所有这些,你将想要开始最重要的部分。

记录你的想法

[编辑 | 编辑源代码]

是的,你需要记录你的想法。你需要把它写下来。尤其是如果是团队项目,或者其他人会帮助你的项目。你必须这样做,因为记录你的想法可以为你提供一些东西

  • 记录你的想法将有助于防止失去动力。大多数人往往会因为不知道接下来该做什么而失去对项目的动力。通过在你面前有一个具体的指南,提前计划好,当你问自己“我需要做些什么来让这个游戏运行?”时,你将很容易找到解决方案。通常,将此文档上传到云端在与团队合作时证明最有效,因为你可以在项目中不断地标记和讨论主题。团队项目中的计划和协调是成功的关键之一,在 ROBLOX 的虚拟世界中更是如此,因为动力纯粹来自意愿——机会是,没有人付钱让你制作自己的游戏。
  • 记录你的想法会让你有东西可以炫耀。当招募团队项目的人员时,或者当粉丝聚集起来询问你的游戏时,你想要一些东西可以炫耀。你需要激励他们停下来,并将你的项目与 ROBLOX 上存在的数十个其他机会区分开来。最好的开发者正在挑选最好的游戏,为了让你的游戏成为最好的游戏,它必须专业且有计划。
  • 记录你的想法将使你能够进行计划。正如前一段中提到的,计划是必需的。当你计划你的游戏时,你会发现潜在的问题,并在制作之前获得反馈。作为一个人,你将无法在自己的脑海中捕捉到所有的错误。

利用支持

[编辑 | 编辑源代码]

重要的是要记住,就像在现实世界中一样,制作一个成功的游戏,不仅需要一个好主意,一个完成的和经过优化的核心,还需要营销。ROBLOX 游戏也是如此,但营销要容易得多,因为游戏由 ROBLOX 托管,并在网站上的各个地方都有提及。无论如何,如果你想让一个庞大的玩家群体玩你的游戏,你需要花一些时间来推广它。

时间管理

[编辑 | 编辑源代码]

在开发游戏时,管理时间至关重要。在为 ROBLOX 开发游戏时,有时最好先完成计划,然后跳过计划的前四分之一,直接实现一些功能,即使这些功能不如计划要求的那么好。拥有一个可运行的演示,可以获得反馈并提供一个可以尝试事物的区域:通过可运行的演示,可以在项目的基本基础设施完成之前直接在游戏中尝试事物。

游戏组成部分

[编辑 | 编辑源代码]

ROBLOX 上的游戏由三个元素组成:游戏引擎,它是 ROBLOX 的一部分,负责处理物理世界、渲染(游戏的显示)、网络(服务器和客户端之间的通信)以及其他事项,游戏内容,由地图、建筑、图像、资源和其他由开发人员创建的项目组成,以及游戏代码,它使游戏具有交互性并构成玩家体验。游戏内容在上一章中已经部分涵盖。游戏引擎将在下一章中讨论,游戏代码将在其他章节中讨论,以及游戏内容。


游戏引擎

[编辑 | 编辑源代码]

ROBLOX 游戏引擎可以分为不同的引擎。每个引擎都负责完成与游戏特定方面相关的任务。这些包括物理引擎,它负责处理物理对象的自然运动。例如,重力、部件碰撞和爆炸由物理引擎处理。渲染引擎的任务是在玩家的显示器上显示物理对象。网络引擎负责确保玩游戏的玩家都了解游戏中的最新情况。Lua 引擎必须处理事件并执行游戏代码,以使游戏具有交互性。

客户端-服务器模型

[编辑 | 编辑源代码]
通过互联网与服务器通信的客户端的计算机网络图。客户端和服务器都是节点(通信点)在网络上。

为了使许多玩家能够同时玩同一个游戏,ROBLOX 托管游戏服务器,这些服务器是在 ROBLOX 拥有的计算机上运行的 ROBLOX 软件的实例。当玩家进入游戏时,他的客户端(运行在他计算机上的 ROBLOX 软件)要么与已经运行他想要进入的游戏的游戏服务器建立通信,要么与一个新的游戏服务器建立通信,如果不存在游戏服务器或所有可用的游戏服务器已满(每个游戏服务器可以加入的玩家数量有限),就会创建新的游戏服务器。玩家的客户端从游戏服务器下载整个场景。当游戏发生变化时,无论是由于物理引擎还是游戏代码造成的,这些变化都会复制到连接到游戏的每个客户端。当这些变化发生在玩家的客户端(这可能发生在玩家移动他的角色以及类似事件发生时),变化会复制到服务器,然后复制到所有其他客户端。这就是为什么所有玩家都会看到其他玩家的角色移动,以及为什么脚本所做的更改对每个玩家都是可见的。运行在计算机上的每个 ROBLOX 软件实例都称为对等节点:所有游戏服务器都是对等节点,所有客户端都是对等节点。

游戏服务器及其连接的客户端共同构成一个网络。ROBLOX 游戏服务器的网络被称为在客户端-服务器模型上运行,因为网络节点(对等节点)的排列方式:客户端与服务器通信,服务器与客户端通信,但客户端不直接相互通信。网络的拓扑结构是节点在该网络中的排列方式。

游戏服务器和物理服务器之间存在区别。物理服务器是通常托管许多游戏服务器的物理计算机。游戏服务器是运行在物理服务器上的 ROBLOX 软件的实例,它们与客户端通信以建立连接并传输数据。还区分了本地事物和服务器相关事物。本地事物是与特定客户端或所有客户端相关的事物,服务器相关事物是与服务器相关的事物。

有一些问题你可以回答,以验证你是否理解了本章的内容。请注意,找到其中一些问题的答案可能需要一些本章没有介绍的知识。这是正常的:测验是学习体验的一部分,它们可以介绍本书其他地方没有的信息。

将每个游戏引擎与其作用匹配

网络引擎物理引擎渲染引擎Lua 引擎
在本地玩家的显示器上显示物理对象。
通过将更改从服务器复制到客户端,保持客户端对游戏状态的更新。
由于重力、部件碰撞和其他事件,处理部件的自然运动。
在需要时触发事件并处理 Lua 线程。


游戏代码

[编辑 | 编辑源代码]

脚本可以操纵游戏对象,它们包含在游戏层次结构中的对象中。有四种类型的脚本:服务器脚本、本地脚本、核心脚本和启动脚本。它们分别对应于“Script”、“LocalScript”、“CoreScript”和“StarterScript”类。服务器脚本是在服务器上运行的脚本,而本地脚本是在玩家的客户端(客户端取决于本地脚本在游戏层次结构中的位置)上运行的脚本。核心脚本和启动脚本不能被游戏开发者使用,它们是 ROBLOX 的内部脚本。

您可以使用工作室中的基本对象面板创建脚本。找到您想要的脚本的类名,然后双击它以插入脚本。脚本不会在所有地方运行;虽然脚本可以在许多地方运行,但大多数情况下,您需要将它们放在工作区服务中。插入脚本后,可以在资源管理器面板中双击它来编辑脚本。这将打开一个带有脚本编辑器的新选项卡,可以在其中输入代码。然后,可以通过关闭脚本编辑器并使用测试工具栏中绿色的运行箭头运行游戏来执行脚本。


  1. 可以在玩在线游戏时通过开发者控制台访问输出,开发者控制台可以通过F9键盘键打开,也可以通过单击游戏菜单帮助部分的日志按钮打开。所有玩家都可以访问开发者控制台,但只有游戏所有者才能看到服务器上的输出(其他玩家只能看到他们自己客户端上的输出)。
  2. 也可以在没有玩家的情况下启动服务器。
华夏公益教科书