Roblox 游戏开发/入门
ROBLOX 是一个用户生成的博弈网站。这意味着用户可以制作其他用户可以玩的游戏。ROBLOX 允许您使用其游戏引擎和 脚本接口 来创建各种类型供其他人玩的游戏。游戏是 3D 的,使用可以与 乐高 块准确比较的积木。这些积木可以使用工作室进行定制、调整大小、定位和操作。游戏还可以包含各种其他物体,包括粒子(烟雾、火焰等)和图形物体(文本标签、按钮等),用户可以编写脚本为他们的游戏添加更多功能。
ROBLOX 上的大多数用户既制作游戏也玩游戏,但许多用户只经常做其中一项。虽然大多数用户确实有一些他们定期改进和开发的游戏,但大多数用户不是经验丰富的游戏开发者,他们将 ROBLOX 看作玩具而不是游戏开发平台。
您需要一个帐户才能创建游戏并使用网站。如果您还没有帐户,您可以轻松创建一个。您需要使用您的网络浏览器导航到以下 URL:https://www.ROBLOX.com/Login/Signup.aspx。在那里,您需要填写您的出生日期和性别,并选择一个用户名和密码。您将获得一个角色:有很多方法可以自定义角色并使用 ROBLOX 的社交功能,但这本书将只关注游戏开发方面,尽管其中一些内容与社交功能重叠。如果您之前从未使用过该网站,您应该浏览一下,以便在需要时能够找到自己的路。您还应该玩一些游戏(ROBLOX 上的游戏通常被称为“游戏”),以了解 ROBLOX 可以做什么的一些示例。
您需要 ROBLOX 客户端才能玩游戏(它可以通过单击任何游戏的播放按钮从网站下载),并且您需要 ROBLOX Studio(它与客户端一起提供)才能创建和修改游戏。请注意,ROBLOX 软件仅适用于 Windows 和 Mac OS X。有一些解决方法可以使用 Wine 在 Linux 上运行,使用 [补丁]。请注意,此包装器当前不能,您需要运行一个带有 Windows 或 Mac OSX 的 虚拟机 才能在 Linux 上玩 ROBLOX。
David Baszucki 创立了 Knowledge Revolution,这是一家专注于教育物理和机械模拟软件的公司。他与 Erik Cassel 合作开发了该软件。现任 ROBLOX 工程和运营副总裁 Keith Lucas 于 1997 年加入该公司。后来,Knowledge Revolution 被 MSC 软件公司 收购,他们两人在几年后离开公司,于 2004 年创建了 ROBLOX。
ROBLOX 于 2005 年推出。该名称是“机器人”和“积木”的组合。它最初只有几百名用户,如今拥有数百万用户,并且还在不断增长。本书将涵盖多年来添加到游戏引擎和脚本 API 的许多功能,自 ROBLOX 创建以来;然而,由于 ROBLOX 中嵌入的大量功能以及几乎每隔一周就会发生的快速变化和添加,不可能涵盖所有功能。
本书不会描述 ROBLOX 网站的全部内容,甚至大部分内容,而是提供有关开发游戏的许多核心方面的指导。鼓励您自己探索网站的其余部分。您可以使用页面顶部的菜单栏浏览该网站。
您可以在您的个人资料页面上查看您的游戏,您可以在菜单中单击个人资料链接找到您的个人资料。除非您将帐户升级为高级会员,否则您只能拥有一个游戏(您不需要多个游戏或任何高级功能来完成本书)。您也可以在游戏页面或构建页面上找到您的游戏。
ROBLOX Studio 应该已经安装在您的计算机上,当您安装 ROBLOX 客户端时,它是一个可以用来创建和开发 ROBLOX 模型、脚本以及将两者放在一起的游戏的工具。打开后,它应该会显示 ROBLOX 网站上的一个页面。您应该从该页面登录(登录使用工作室不是必需的,但有些功能需要登录)。登录您的帐户后,您可以通过打开“文件”菜单并选择“新建”来打开一个新游戏。您也可以通过浏览网站上的游戏页面并单击游戏的“编辑”按钮来编辑您当前的游戏之一。
如果您找不到面板,请打开“视图”菜单并单击相应的按钮使其可见。
游戏视图显示当前的游戏环境。当您打开一个新游戏时,它应该看起来像一个空旷的天空,位于中间。它将以玩家玩游戏时看到的方式显示您的游戏。您可以使用箭头键移动相机。
资源管理器面板,通常称为资源管理器,是一个面板,它以层次结构显示当前游戏中所有对象。单击层次结构中的对象将选择该对象。包含在另一个对象中的对象称为该对象的子对象(地形对象是工作区的子对象),而包含另一个对象的对象称为该对象的父对象(工作区是地形对象的父对象)。一个对象可以有多个子对象,但只能有一个父对象。
您可以通过右键单击对象并选择相应的按钮来对对象执行许多操作。您还可以通过将对象拖动到另一个对象中来移动对象(某些对象无法移动)。
属性面板是一个显示当前选定对象的属性的面板。属性是您可以修改的值,以更改对象的行为。
有许多对象类型。这些被称为类。并非所有类都具有相同的属性,但所有类都具有某些共同属性。ClassName 属性是所有对象共有的,其值是对象类的名称。例如,部件的类将是“部件”。Name 属性也是所有对象共有的,其值是对象的名称。每个对象都需要有一个名称。Parent 属性是所有对象共有的另一个属性,其值是当前对象包含在其中的对象。
工具箱是一个面板,允许您插入其他用户制作的模型。这些模型,也称为“公共领域模型”或“免费模型”,可以使用工具箱搜索。ROBLOX 还提供了一些特色模型。您自己的模型(您可以发布您自己的模型供其他人使用)也会显示在工具箱中。
高级对象面板是一个面板,允许您通过双击项目的名称将对象插入游戏层次结构中。该对象将插入当前选定对象中。该面板将以列的形式显示可用项目。如果选中复选框,它将在插入后自动选择该对象。您还可以使用面板顶部的搜索栏搜索特定对象。
命令栏是一个工具栏,可用于运行简短的代码行。它经常与输出一起使用,以查看特定代码段产生的结果。它还经常用于自动化游戏中的任务或执行无法使用工作室界面完成的操作。
输出是一个面板,显示脚本生成的输出,以及引擎的警告和其他信息。它是查找脚本错误并纠正它们的必不可少的工具。它也可以与命令栏一起使用,以执行代码并查看结果。
脚本性能面板是一个显示游戏运行脚本性能信息的界面。标注为“[未知]”的脚本通常是核心脚本(ROBLOX内部使用的脚本)或已删除的脚本,因此可以忽略。虽然脚本性能面板并不经常使用,但它可以帮助识别性能消耗高的脚本,并且在评估脚本性能时很有用。
诊断面板很少使用,但了解它很有用。它的大部分信息非常技术性,对普通用户来说毫无用处。它可以告诉你游戏中的部件数量、物理引擎处理的连接数量、每秒帧数 (FPS) 和一些其他信息,但这些信息很少需要。
诊断面板中的信息也大多可以在游戏中获得。要查看它,请在Microsoft Windows上按Ctrl+F1 或 Alt+F1,在 OS X 上按 ⌘F1 或 ⌥F1。
剪贴板
[edit | edit source]剪贴板工具栏可用于复制、剪切、复制和粘贴游戏对象或脚本代码。此外,它还可用于撤消或重做操作。所有这些操作都有键盘快捷键;将鼠标指针悬停在按钮上即可查看快捷键。
相机操作
[edit | edit source]对于从未使用过相机的人来说,相机可能很难上手。可以使用鼠标滚轮或I 和 O 键进行缩放。可以使用向上和向下键或 W 或 S 键将相机向前和向后移动。可以通过右键单击并拖动鼠标来旋转相机。
游戏层次结构
[edit | edit source]游戏层次结构是游戏中对象的层次结构。它可以通过资源管理器查看和操作,如上所述。顶级对象(在资源管理器中没有可见父级的对象)称为服务。并非所有服务都显示在资源管理器中(实际上,许多类默认情况下是隐藏的)。
工作区是所有脚本(允许你在游戏中运行代码的对象)和游戏中可见部件(部件也称为“砖块”或“积木”)所在的区域。
玩家服务是存放玩家对象(代表玩家的对象)的地方。你现在不必担心这个服务,因为只有在编写脚本时才会使用它。
灯光服务是存放天空盒的地方,天空盒可以改变天空的外观。它还包含许多可以修改以更改地点照明的属性。
StarterGui 服务包含GUI,这是你可以放在游戏中的二维元素,用来创建菜单、按钮等。此服务中包含的 GUI 会在玩家角色生成时提供给玩家。没有脚本,GUI 几乎无法做任何事情,所以这本书在后面讲到脚本之前不会再谈论它们。
StarterPack 服务包含工具。工具由玩家用来做事情。例如,剑用来攻击其他玩家,钥匙用来打开门等等。这些工具会在玩家角色生成时提供给玩家。同样,没有脚本,你就无法用工具做太多事情。
模拟
[edit | edit source]ROBLOX 工作室提供了许多方法来测试用它构建的游戏。当使用工作室编辑游戏时,它最初处于空闲状态。这意味着物理引擎没有模拟(即部件不会掉落,爆炸不会有任何影响)并且脚本没有运行。可以使用运行按钮将游戏置于运行状态。这将启用物理引擎并使所有脚本运行。然后可以使用暂停按钮将游戏再次置于空闲状态;或者,可以使用重置按钮将游戏重置为开始运行时的状态,并将其恢复为空闲状态。
通常,这些工具还不够,需要一个角色来测试游戏。为此,有三个选择。第一个是在线测试游戏。不幸的是,这需要将游戏发布到网站并进入它,这可能需要一些时间,并且无法让你访问工作室中提供的全部调试工具。[1]
第二个选择是在没有服务器的情况下玩游戏(以单人模式)。这将创建一个伪游戏环境,可以访问输出和完整的工作室。它为用户提供一个角色并运行游戏。但是,这个模拟环境与真实的游戏环境有许多不同之处,因此当测试的游戏变得更加复杂时,这个选项很快就会失去效用。
第三个选择是在本地启动一个服务器,包含一个或多个玩家。[2] 这会在你的电脑上启动一个服务器实例,并且还会启动一个连接到该服务器的客户端,用于每个玩家。服务器和所有客户端都可以通过不同的窗口访问,每个窗口都拥有完整的工作室。这个选项提供了一个比其他选项更完整、更正常的游戏环境,但它在电脑资源上更昂贵,因为同时打开了多个 ROBLOX 实例。此外,一些功能,如徽章或数据持久性,只能在线工作,并且根本无法在本地使用。
保存游戏
[edit | edit source]当前打开的游戏可以使用标准工具栏或文件菜单保存。游戏使用“.rbxl”扩展名保存,并使用二进制格式。它们以前使用具有相同扩展名的 XML 格式。旧的 XML 格式仍然受支持,游戏可以使用“.rbxlx”扩展名以 XML 格式保存。它们可以使用文件菜单或标准工具栏中的打开按钮再次打开。保存在用户电脑上的文件或在工作室中创建的文件可以使用文件菜单中的“发布到 ROBLOX...”选项上传到网站。直接从网站打开的游戏会在关闭前提示用户保存。
物理对象
[edit | edit source]在 ROBLOX 上的虚拟世界中,有不同类型的对象在物理上出现。
部件
[edit | edit source]ROBLOX 上最常见的物理对象是部件。部件也称为砖块和积木。它们可以有三种形状:块状、球形或圆柱形。部件的形状会影响它的物理行为。圆柱体在物理上像球体一样,因为模拟圆柱体在电脑资源上过于昂贵,会减慢大量使用圆柱体的游戏的速度。
材质
[edit | edit source]部件的外观可以使用材质进行定制。部件的默认材质是塑料材质,它使部件具有均匀的颜色,并略带混凝土外观;光滑的塑料材质可以用于获得完全均匀的颜色。塑料材质在某些情况下很好,但可能需要更多定制以改善建筑物的外观。材质在应用于部件时会改变该部件的纹理。它们还会改变该部件的密度,这会影响部件放入水地形中的效果:某些材质的部件(如木材)会在水中漂浮,而其他材质的部件(如板岩)则不会。
定制工具栏的第五个按钮可用于更改部件的材质。它允许你从可用材质列表中选择你想要的材质,然后点击部件将该材质应用于它们。材质并不多,但足以满足大多数目的。当需要更多定制时,可以使用自定义纹理,它们在下面的一些部分进行了描述,但并不常见。
形状因子
[edit | edit source]所有部件都有一个形状因子,它定义了部件可以取哪些尺寸。默认的形状因子是砖块形状因子,它要求砖块的高度是 1.2 的倍数。对称形状因子要求块的所有尺寸都是 1 的倍数,而板状形状因子要求高度是 0.4 的倍数。自定义形状因子允许所有尺寸的倍数非常低。
表面类型
[edit | edit source]每个部件的表面都有一个类型。默认情况下,顶部表面有凸起,底部表面有凹槽。共有 11 种表面类型。表面可以与其他表面形成连接,这使部件能够粘在一起,不会因重力而掉落。如果部件的材质是塑料,它们还会影响部件的外观。否则,将使用材质纹理而不是表面纹理。
此表更详细地描述了表面类型之间的行为
SurfaceType | 焊接 | 通用 | 凸起 | 凹槽 | 胶水 | 光滑 | 不可连接 | SmoothNoOutline |
---|---|---|---|---|---|---|---|---|
焊接 | 焊接 | 焊接 | 焊接 | 焊接 | 焊接 | 焊接 | 焊接 | 焊接 |
通用 | 焊接 | 吸附 | 吸附 | 吸附 | 胶水 | |||
凸起 | 焊接 | 吸附 | 吸附 | 胶水 | ||||
凹槽 | 焊接 | 吸附 | 吸附 | 胶水 | ||||
胶水 | 焊接 | 胶水 | 胶水 | 胶水 | 胶水 | 胶水 | 胶水 | 胶水 |
光滑 | 焊接 | 胶水 | ||||||
不可连接 | 焊接 | 胶水 | ||||||
SmoothNoOutline | 焊接 | 胶水 |
贴花是可以放置在部件表面的对象,用于在该表面上显示图像。它们对于广告牌、标识、旗帜和游戏内屏幕很有用。如果要显示图像以更改表面的外观,可以使用纹理代替。
纹理与贴花相同,但图像会重复而不是缩放以填充整个表面。这比使用贴花可以获得的结果好得多,因为 ROBLOX 上用户图像的质量受到限制。
如果您想要显示广告的标志,应该使用贴花。如果您想在墙上放置砖块纹理,那么应该使用纹理。纹理对象与所有其他对象(包括贴花)一样,可以在高级对象面板中找到。
游戏有时需要包含比简单的块、球体和圆柱体更复杂的物体。网格可以用于此目的。它们是可以放置在部件中的对象,并且当放置在部件中时,会使这些部件具有不同的形状,该形状可以非常复杂。有一些预定义的网格,还有许多其他网格上传到网站上。例如,目录中的所有帽子和装备都使用网格来显示外观。网格本身没有颜色或纹理,只有形状,但它们通常会赋予纹理。网格仅影响它们所使用的部件的外观,但部件的物理行为仍然由其形状和表面类型定义。因此,网格最适合用于小物体或玩家无法触及的物体。
网格不支持轮廓。它们可以缩放并移出它们的物理部件(使用偏移)。缩放是必要的,因为它们的大小不适合物理部件的大小。将网格移出物理部件可以用于创建全息图效果和其他类似效果。
部件可以包含不同类型的粒子。可以创建自定义粒子,但提供了许多预定义类型,并提供了一些可以自定义的属性。
闪光对象可以插入部件中,使闪光状粒子从部件内部出现并移动到部件外部,然后在一定距离处消失。这些闪光的颜色可以自定义。
火焰对象可以用来使火焰粒子出现在部件上。火焰不一定是橙色或红色,可以是任何颜色。它的热度(粒子的持续时间)可以设置,消失时粒子的颜色也可以设置。
烟雾对象可以用来使烟雾出现在部件上。烟雾通常会向上飘,但也可能向下飘:它会朝着它所处部件的顶部表面方向飘动,因此通过更改部件的旋转,很有可能使烟雾飘向左侧或任何方向。烟雾的颜色可以更改,上升的速度也可以更改。大小也可以更改,透明度也可以更改。
桁架在很大程度上与部件相同,但外观不同,角色可以攀爬,并且有尺寸限制。它们的宽度和深度始终为 2 格,而高度不受限制。它们支持材料、表面以及部件支持的除贴花和纹理之外的所有内容。它们有三种不同的样式:无支撑、交替支撑和桥式支撑。
当角色站在桁架旁边并开始朝桁架方向行走时,他将开始攀爬桁架,就像他攀爬梯子一样(当许多部件堆叠在一起,每个部件之间有很小的间隙时,角色在朝部件堆叠方向行走时会向上移动)。这在许多桁架以水平位置堆叠在一起时也适用。有时,将许多桁架放在一起会使攀爬它们更容易。但是,在许多情况下,可能需要使用梯子而不是桁架,因为桁架主要用于真实的建筑材料,而不是用于攀爬结构的工具,而梯子是用于攀爬结构的工具。
生成位置与部件相同,行为方式也相同,区别在于角色可以在其顶部生成。生成位置可以配置,以便仅某个团队中的玩家才能将其角色生成在它们上面。它们还可以配置为在生成在它们上面的用户的角色周围生成一个力场,持续有限时间,以防止刚生成的角色立即死亡。
游戏中可以使用的部件数量受可用计算机资源的限制。可以使用地形来创建美丽而复杂的地形,由于计算机资源的限制,使用部件不可能创建这样的地形。地形以体素地形实现。体素是原子体积单元,可以认为是像素的三维等效物,或者简称为立方体。这些立方体可以放在一起,并赋予不同的外观。
地形立方体目前具有材质、形状和方向。与部件不同,它们不是对象,在资源管理器中不可见,也不能分组为模型。但是,您可以在一台普通计算机上拥有数百万个立方体,而部件在普通计算机上的数量限制在大约十万个,此时游戏会变得非常慢。
地形通常使用地形工具栏创建,该工具栏显示在本节顶部。该工具栏中的第一个工具是地形生成器,用于生成地形。接下来的两个工具用于创建和销毁单个地形块。接下来的两个用于通过在特定位置上下拖动来改变地形的高度。下一个工具用于创建陨石坑,而图标为道路交叉口的工具用于创建道路。下一个工具用于快速绘制大面积地形,而倒数第二个工具可用于插入地形块(以及其他物体)。最后,最后一个工具用于用特定材料的体素填充地形区域,通常用于创建湖泊或河流。这些工具中的每一个都有自己的集成帮助,可以通过选择工具并点击带有问号的按钮来获取,因此这里不再对其进行描述。
座位的工作原理与零件相同,但玩家可以坐在上面。座位类型很多:简单座位、车辆座位和滑板平台。简单座位只是玩家可以坐的零件。脚本可用于使这些座位具有各种功能。车辆座位用于创建带有电机和车轮且用户无需任何脚本即可控制的车辆。最后,滑板平台用于控制通常较小的车辆(悬浮滑板、滑板、冲浪板,以及通常描述为车辆并以“板”结尾的任何东西),更容易控制。滑板平台需要脚本才能工作,但会处理不同事件中发生的动画,例如滑板平台上的角色转弯、跳跃、加速等。
在 ROBLOX 上,建造是将物理物体组合在一起、操作它们并定制它们的艺术。工作室提供了许多工具来促进此过程。通过能够改变零件和其他物理物体的尺寸、位置和外观,并将它们组合在一起,就可以建造几乎任何东西。从小型建筑物到非常详细的房间和复杂的机制,都可以创建很多东西。
模型用于将零件、脚本和其他模型组合在一起。它们对于组织是不可或缺的。一个没有组织的大型游戏很快就会变得难以维护,因此您应该始终使用模型来组织游戏中的物体。当许多物体组合在一起形成更大的东西时,应该将它们组合在一起(床、房子、汽车等)。可以通过使用资源管理器上下文菜单或格式菜单中的组合和取消组合按钮(以及相应的键盘快捷键)来组合和取消组合零件。您还可以使用格式菜单中的相应按钮来选择模型的所有子级,这在某些情况下非常有用。
例如,假设您正在建造一座塔,比如右边的那座。假设它有一扇门和楼梯可以通往顶部。您可以将构成楼梯的零件组合在一起,并将构成门的零件也组合在一起。您可以将构成城墙的零件组合在一起,并将所有其他零件组合到一个名为“墙壁”的模型中。然后,您可以将所有这些模型组合在一起,并将其命名为“塔”。这样,这个地方的组织一定会比将所有这些零件散布在周围没有组织地更好!
操作零件包括移动、调整大小和旋转它们。在工作室中,零件的操作通常通过使用上面显示的工具栏来完成。
- 第一个工具可用于通过点击零件来选择它们,并通过拖动鼠标来移动它们(在选择后)。也可以使用任何其他工具选择和拖动零件。
- 第二个工具可用于移动零件。它与第一个工具类似,但还会显示拖动句柄,允许您在特定轴上移动零件。
- 第三个工具可用于改变零件的旋转。这个工具有点难用,但仍然很简单:只需使用句柄来改变零件的旋转。
- 第四个工具可用于使用句柄并拖动它们来改变零件的大小,就像使用第二个工具移动零件一样。
- 分隔符后的三个按钮用于改变使用的网格以及移动、调整大小或旋转零件时的增量。学习使用它们的最佳方法是尝试使用它们。
- 最后,最后一个按钮允许您选择零件在移动到其他零件上时是否应该焊接在一起。如果启用,则零件会粘在一起。否则,它们不会粘在一起,并且在游戏运行时可能会掉落。
ROBLOX 使用一个名为“英尺”的单位来定位和计算距离。一个英尺相当于零件上带有 R 徽标的方块中的一个。一米等于 20 英尺。
自定义零件包括更改它们的外观和行为。与操作一样,它通常在工作室中通过使用工具栏来完成,即上面显示的工具栏。某些自定义只能通过从属性面板手动更改属性来完成。
第一个按钮可用于锚定或取消锚定零件。锚定零件意味着设置其位置,使其不会因重力、碰撞或其他物理事件而改变。锚定零件在运行的游戏中无法移动,除非它们的 position 被游戏脚本修改,但它们会与其他零件发生碰撞,这意味着角色可以走在它们上面,例如。
第二个按钮可用于锁定或解锁零件。锁定零件会使它无法被建造工具操作,无论是在工作室中还是在建造游戏中。这在您不想让玩家在建造游戏中操作某些零件时很有用,并且它也可以用来防止您不小心移动零件。
第三个和第四个按钮用于更改零件的颜色。第一个允许您在调色板中选择颜色,而第二个允许您通过点击现有零件来选择它的颜色。
最后,第五个按钮可用于通过从可用材料列表中选择所需材料来更改零件的材质。
如果您回顾一下有关模型部分中介绍的塔楼,您会注意到它的墙壁使用了许多零件。虽然这并不完全不好,但为了使游戏更快(通过减少零件数量),通常最好使用重复砖块的纹理。
除了所有工具栏之外,工作室还提供用于建造的额外工具。除了菜单中提供的一些选项之外,还有一个轴向小部件,可用于快速查找 X 轴或 Z 轴的位置,以及一个 3D 网格,可用于快速查找零位置的高度并在其上建造零件。这两个工具很少使用,但它们可以用来识别哪个轴是 X 轴,哪个是 Z 轴。所有零件的自定义和操作也可以通过在选择零件后直接使用属性面板编辑零件的属性来完成。
ROBLOX 有许多帮助来源,用户可以在那里获得有关各种主题的帮助。其中一个是论坛,用户可以在那里提出问题。有两个关于游戏开发的帮助论坛。
在论坛中发帖之前,用户可以查看许多其他在线帮助来源。第一个是 Builderman 的帮助,可以在网站的菜单(帮助按钮)中找到。它包含有关网站、规则和其他各种内容的信息。
然而,主要的资料来源是 ROBLOX 维基。可以通过网站上隐藏的一些链接或在游戏内按 F1 来找到它。维基是由 ROBLOX 员工选择的编辑编写的,包含有关建造和脚本的文档。它是一个非常有用的 ROBLOX 信息和文档来源。
本章有一些问题可以帮助您检验是否理解了本章内容。请注意,某些问题的答案可能需要本章未提及的知识。这很正常:测验是学习体验的一部分,它们可以引入本书其他地方没有的信息。