是否想挥杆打造3D游戏? 从云端开始更容易

如果您是像我这样的游戏开发爱好者,并且想要开始制作游戏,那么入门可能是一项艰巨的任务。 有了正确的工具和流程,即使是很小的团队也可以创造出惊人的游戏体验。 从新手到老手,请使用本指南熟悉社区开发的一些宝贵资源,以帮助您开始下一个游戏。

在本指南中,您将完成以下步骤:

I.记录您的游戏构想

二。 选择您的引擎和开发堆栈

三, 如何组织

IV。 编码内容

五,进入社区

I.从一个想法开始

就像写作一样,即使脑子里充满了想法,也很难在纸上放东西。 从草图开始。 不要试图在一天内将所有内容放在一起。 回到您的草图并尝试布置一个故事。 一旦有了想法,就可以开始整理游戏设计文档(GDD)。

互联网上有很多游戏设计文档模板,您可以免费使用它们。 我在Benjamin Stanley的Unity论坛上找到了这个模板 ,Jason Bakker在Gamasutra的博客 上找到了这个模板 。

您文档的核心元素将包括:

简介—将此视为您的电梯间距。 我认为在开始详细介绍之前从这里开始很重要。 随着您的前进,它将有助于简化操作。

游戏说明 -确定您要参与游戏的主题和流派。这对于分类和理解受众群体很重要。

角色和情节-决定您的角色是谁,以及风景如何。

机械,资产,游戏流程-决定游戏的所有元素(包括后端系统,视觉和声音)都需要哪种系统。

时间线-与电梯间距一样,这也是至关重要的,因为它将使您和您的团队避免陷入困境。 借助制作游戏所能做的大量工作,可以轻松地完善游戏的各个方面。 时间轴和可帮助您保持该时间轴的工具很重要。

我不会在这篇文章中讨论获利问题,但我认为这很重要,因此我将根据对游戏开发商机构的采访来撰写后续博客文章,这些机构已经筹集了资金并成功在市场上执行了游戏。

您可以将所有内容添加到Wiki中以进行进一步的协作。 Assembla提供了一个Wiki工具,您可以签出该工具 ,一旦选择了一个仓库和项目管理工具,它可能会派上用场,我将在本指南的后面部分进行讨论。

二。 选择您的引擎和开发堆栈

作为从事业余爱好和从事游戏制作15年的人,我对游戏行业正在发展的所有新趋势感到非常兴奋。 Epic Games始终处于这些新趋势的最前沿。 从虚幻竞技场的过去到今天的《战争机器》 4百万大热门,虚幻引擎现在都可以在游戏机和PC上为AAA小型和大型游戏提供动力。 他们最新的化身是与数百万开发人员合作提供最强大的游戏堆栈多年经验的结晶。

就本指南而言,尽管有很多其他出色的引擎,例如Unity和CryEngine,但我将虚幻引擎作为首选引擎。

当我刚开始使用虚幻引擎时,我学到的最快方法是复制和逆向工程大师所做的工作。 幸运的是,有了Unreal 4,现在可以轻松访问数百个大师。 引擎样本是资产的重要来源,应该使您的工作远胜于游戏的第一个原型。 虚幻市场具有越来越多的高质量内容,这些内容可用于为您的世界带来更多生活,而无需深入研究Maya或Blender。

快速创建关卡原型

使用基本原语和BSP工具来屏蔽游戏的基本环境。 花太多时间在游戏中一直想要的花哨的M16步枪上,或者让按键动画看起来真正下一代,很容易分心。 您必须提醒自己,如果核心游戏不牢固甚至不存在,那么这都不重要。 虚幻引擎4使用基于物理的渲染(PBR)阴影模型。 如果您是PBR的新手,请在理论与实践中查阅有关 PBR的介绍,它们都是不错的读物。 官方文档中有一些有关虚幻引擎4的PBR的其他信息,如果您有技术上的兴趣,则在底部有一些非常有趣的参考。

人物模型

我最喜欢的建模应用是Maya LT和Blender (免费)。 我个人更喜欢Maya而不是Blender。 Maya是一个很棒的工具,但是有很多选择。 一旦您进一步进入游戏和关卡,您将在Maya和Unreal Engine之间进行大量的切换,以创建网格物体,内容进行最终润饰,因此选择一个并坚持使用它-要花很多时间才能精通主要工作流程。 一个好主意是每天留出一个小时,共60天,以花时间在工具上做基本的事情。 每天,都要利用前几天的技能,不要立即做任何想做的事,您只会感到沮丧。 在不知不觉中,您将像专业人士一样创建模型,并且至少要足够舒适以制作具有预生产质量的模型。 如果您正在寻找最后的抛光剂,则可以在Upwork等网站上雇用或找到专业人士,这些人在非常专业的技术上拥有丰富的经验。

资产纹理化

Photoshop是您要使用的工具。 我知道Gimp很棒,但是在同类产品中没有什么比这更好的了,随着您的进步,Adobe是所有专业人士和代理商使用的工具。 我知道Adobe会花钱,但是对于使用Photoshop进行的矢量图形处理和整体纹理处理来说,对于您获得的价值来说确实并不那么昂贵。

Substance是一种惊人的工具,可以以更程序化和自然的方式绘制3D模型。 强烈建议您使用虚幻引擎4的Substance Plugin对虚幻引擎4进行全面支持,以允许您在虚幻引擎4中对纹理进行快速迭代。Steam上的Designer和Painter均出售独立包装 。 一旦深入游戏和关卡,您将在Photoshop和Unreal Engine之间进行大量的创建纹理的操作,因此请选择其中一个并坚持使用; 要花很多时间才能精通主要工作流程。

自动化是您的朋友

如果您的团队中有一个或多个程序员,或者您自己熟悉Python,请花一些时间检查一下管道,以了解可以在哪里进行改进。 最好在生产初期就这样做,并在此过程中进行多次审查。 对艺术家的反馈持开放态度,并积极询问您是否可以帮助他们。 编写小的Photoshop脚本以简化导出,或者编写一个小的启动器进行多人游戏测试和设置播放测试,可以使整个团队(以及可能参与其中的测试人员)更加容易。 自动化是您的朋友,并且给您带来一点前期的痛苦,它在背面付出了巨大的代价,以消除过程中反复发生数百次的人为错误。

三, 组织起来

即使是最有经验的游戏开发人员也知道,即使一个好主意,项目管理不善也会破坏一切。 项目管理是一个复杂的主题,与艺术,编程和设计一样重要。 尽管人们普遍认为,简单的“瀑布式”开发模型不足以满足工作室的需求,但针对垂直行业的灵活开发模型却难以实施,而且每天都需要耐心等待。

任务管理

作为开发人员,打开Web浏览器或电子邮件客户端以查看有关门票的信息或当天的“待办事项”列表是一种笨拙的体验。 这些任务与开发人员工具堆栈的集成程度越高,整个团队使用它的可能性就越大? 我知道项目管理不是谈论有趣的事情,而是成功开发游戏项目的基础。

设置项目管理工具时,请确保可以根据团队的运作方式自定义里程碑和项目状态。 在Assembla,我们使用诸如“新建,进行中,正在审核”之类的状态。让您的团队习惯于根据任务的到期日将任务移到不同的状态。 当您执行许多任务时,它将使您免于头痛。 这是游戏开发人员的项目管理模板 ,您可以免费复制。

游戏开发人员了解大文件,因此您需要尽可能多的存储空间。 请使用对所有媒体文件无限制存储的工具。 您希望能够可视化工具中的进度而不必离开应用程序。 重要的是要考虑一个可以扩展的项目管理工具,这样您就不必担心将来会迁移数据了。

版本控制

使用版本控制对于您自己的理智是必不可少的,即使是作为单独开发人员工作时也是如此。 不要相信您的硬盘驱动器,也不要相信您的深夜代码更改,而应使用版本控制。 回想一下我上大学时如何在一个小团队中进行开发(不了解这种“版本控制”,这在我的生活中已经司空见惯),我们使用了手动共享代码和机器之间的内容更改的方法。 因此,我们在此过程中丢失了许多纹理和代码功能。 使用Subversion,Git,Perforce安全地存储和管理游戏源。 在提交更改时使用简洁的消息可以帮助团队中的其他人知道发生了什么。

Assembla一直以来都非常接近开发人员社区,我们为数百个小型工作室提供服务,这些工作室托管着他们的项目并与我们一起编写代码,以建立良好的体验。 作为Assembla的CTO,我观察到与客户交谈并查看其工作流程的最重要的事情之一是,作为项目管理工具,在与“关卡”和“角色设计”相同的工作流程中进行源代码控制是多么有价值。端到端的过程。

Assembla的版本控制引擎通过按需的Perforce云托管和SVN提供了快速的工作流程。 文件类型或大小没有限制。 我们的容器架构可通过AWS的功能,规模和可用性进行扩展。 对于最苛刻的工作室,我们提供用于SVN扩展到最大和最安全环境的本地解决方案。 您还可以将自己喜欢的Perforce和SVN工具以及IDE引入项目询问工作流程,并让Assembla协调您的团队并将所有内容存储在管道中。 在本指南的后面,我将介绍要使用的源代码技术及其原因。

IV。 开始编码

一旦确定了您的想法,使用的引擎和开发堆栈以及如何保持井井有条,就该开始研究游戏的实际开发了-有趣的东西。

用Blueprint还是C ++开发?

首先,什么是蓝图 ? 蓝图是虚幻引擎的视觉脚本语言。 它位于C ++之上,您编写的任何代码都可以公开给Blueprint并由Blueprint使用。 这是一个非常强大的工具,可以快速设置内容和逻辑片段,尤其是在进行原型制作时。 这并不意味着它只是一种原型语言。 可以使用Blueprint构建整个游戏,而无需接触C ++。

关于“哪种语言更好”的讨论频繁,我相信对此没有直接答案。 这完全取决于项目的范围,团队和两者的熟练程度。 以一扇门为例,可以用C ++实现抽象的交互逻辑(用户按下一个键,对世界进行跟踪并在命中对象上调用一个函数),然后建立一个门的定义(在函数调用上进行动画处理,分配模型,滑动声音等)。

许多工作室使用虚幻引擎4和使用Blueprint的原型来快速启动并运行功能。 如果将原型提升为真实功能,则将对其进行审查并考虑完全使用C ++进行重做,或者仅对Blueprint执行清除操作。 尽管有些人可能选择在Blueprint中完成他们的整个游戏,但另一些人可能会在C ++中完成大部分游戏。 如果您愿意,还没有理由不使用Blueprint来构建您的整个游戏,并且在许多日常教程中,关于如何在不使用C ++的情况下在虚幻引擎中制作几乎所有内容,它在当前非常流行。

如果您以前从未使用C ++进行过编码,那么一开始可能会很吓人。 我建议您先开始学习编辑器环境,游戏框架和基本的Blueprint,因为它将使您更熟悉适用于Blueprint和C ++的类名和约定,这将使向C ++的过渡更加容易。

在您意识到这是游戏的问题和瓶颈之前,请不要担心C ++和Blueprint之间的运行时性能。 对于几乎所有的游戏逻辑,蓝图将足够快。 如果您在紧凑的循环中执行大量繁重的操作,则可能会再次遇到性能问题-在进行测量之前,不要进行优化,直到您知道这是一个真正的问题。

使用命名约定保持代码清洁

在Assembla,我们有非常严格的代码审查过程,以确保代码保持干净,一致,可维护。 在构建和维护大型软件系统时,这些功能非常重要。 游戏也一样。 这些东西听起来很无聊,但是对于尽早确定非常重要。 其他人(以及您将来的自我)将需要立即了解两个月后的UberHighRezTexture_Final.DDS的含义。 它不是非常易于搜索,除了它是纹理和“ HighRez”之外,没有告诉您有关其内容的任何信息? 因此,请与您的团队就代码和内容的命名约定达成一致。

Epic为每个人发布了一个伟大的命名约定 ,这是一个很好的起点。 您可以将其用作起点,并且当然可以根据自己的喜好进行更改。 对于代码,我们遵循Epic的编码标准 。 您和您的团队可能需要一些时间来适应新的约定。 确保成功的最快方法是使用严格的代码审查来创建正确的软件开发并发布管道。 找到正确的代码检查工具并将其纳入文化中,以支持快速失败-如果您的合并请求由于空白问题而被拒绝10次,那就可以了! 这些小细节是如何将维护良好的代码库与未维护的代码库区分开的。

选择源代码技术

如果要构建关键任务游戏,要管理从源文件到视频再到内容资产的内容的兆字节规模的存储库,并且需要专门的支持来满足关键的SLA指标,那么您应该选择Perforce。 Perforce是管理具有大型基础结构的大型项目的团队的首选,这些基础结构关心通过分支和专用支持进行的协作和持续代码集成。 媒体和游戏公司选择Perforce是有原因的-它是同类中最好的,可以最快,最安全地管理您的内容管道。

Assembla是云中按需Perforce的唯一提供商。 Perforce存储库可在几秒钟内提供,并且可以与其他存储库技术一起加入到其他工作流中。 使用我们创新的代码注释/责备工具覆盖您的项目执行流程,并将我们的代码检查功能与您喜欢的持续集成和持续交付管道(例如Jenkins)联系起来。

如果您的大多数团队都在Windows上运行,并且对可追溯性有安全性和合规性要求,并且对于媒体和游戏等内容具有大于1GB的大型项目,那么SVN是首选。 SVN将集中式回购技术与一些最佳的分布式回购技术的关键功能的最佳组合融合在一起。 对于关注性能和安全性的,大型且位于同一地点的Windows项目,SVN是首选。 使用我们创新的代码注释/责备工具覆盖您的项目执行流程,并将我们的代码检查功能与您喜欢的持续集成和持续交付管道(例如Jenkins)联系起来。

我知道Git是使用最广泛的代码存储库,您可能想知道为什么不使用Git? Perforce和SVN确保可见性和可控制性。 使用这些版本控制,您可以查看检出了哪些文件以及由谁检出,这是Git无法完成的。

大二进制文件是您的域与“ Github”生态系统的不同之处。 SVN和Perforce特别擅长解决此复杂问题。 此外,Perforce提供的二进制文件管理确保了任何类型的大型文件都可以像处理基于标准文本的“代码”资产一样有效地处理,而不会影响系统性能。 游戏开发人员可以使用我们一流的按需按需Perforce和Project管理解决方案对所有内容进行版本控制,包括代码,配置文件和大型二进制文件(如3D模型,视频,音频和设计)。

当您为下一个版本完善最新的怪物镶嵌模型时,防止他人覆盖您的二进制文件。

这是管理Perforce和SVN的回购工具:

  • TortoiseSVN -Windows Explorer集成,在处理Subversion时,我发现这是最好的工具。 要使用Assembla进行设置,请查看本指南 。
  • P4V — Perforce的可视客户端,效果非常好,根据我的经验,它是与Perforce打交道时的默认客户端。 要使用Assembla进行设置,请查看本指南 。
  • Cornerstone- Mac上SVN的一流工具。

Epic有几个随引擎附带的版本控制插件。 Perforce是游戏工作室的默认选择,因为它本身具有处理在开发过程中进出游戏工作室存储库系统的大量数据的固有能力,因此是游戏工作室的默认选择。

编程工作台

虚幻引擎4需要在Mac上使用Visual Studio 2013 +或XCode,社区版对5人及以下的学生和团队免费。 我每天都使用此工具,而且效果很好— PerPer的出色插件来自Perforce的集成。 查阅本文 ,了解如何为UE4设置Visual Studio。

五,参与进来

有无数的虚拟和面对面活动,免费和付费,您可以出去与其他游戏开发者会面。 这些不仅是学习的机会,而且是寻找可以加入您的团队的人的机会。 如果您想开始测试自己的技能, UE4Jam是我们自豪地赞助的活动之一,这是黑客马拉松式的活动,团队根据宣布的主题花费一个周末来竞争开发游戏。

我还建议阅读大量文档。 好处是有很多,挑战在于知道要阅读哪些文章以及为什么阅读。 这是我建议添加书签的资源清单。

  • 虚幻B 入门指南,内容创建和导入 指南以及关卡创建 。
  • Epic的“ 入门”页面-此页面具有指向引擎,游戏框架和编辑器基础的许多有趣资源的链接。 如果您有虚幻引擎(UDK)的经验,这会有所帮助,因为两个引擎之间的游戏框架结构大部分相同。 该引擎包含多个模板和示例,可帮助您开始使用各种游戏类型,包括车辆,双杆射击和侧向卷轴模板。
  • 虚幻4 YouTube频道。 Epic发布了很多关于许多主题的出色教程,我建议在入门时先进行学习。 他们每个月都会开发新的视频,因此请订阅他们的频道以继续学习。
  • 虚幻市场包括Epic Games的几个出色的示例项目。 我建议您浏览“ 内容示例”项目,以发现Unreal 4中提供的许多很酷的功能。有数百小时的内容可供下载,加载和研究。
  • 游戏框架 -虚幻引擎4与UDK /虚幻引擎3共享其大部分命名和结构。如果您熟悉以前的引擎,那么过渡到新的(C ++)框架应该不会有什么麻烦。 如果您不熟悉,我强烈建议您阅读文档并了解Unreal的结构。 熟悉某些最常用的基类(Actor,GameMode,Character / Pawn,PlayerController,HUD)绝对是必不可少的,即使这只是它们的基本功能和用法。 您的许多代码将建立在这几个类之上,因此了解如何有效使用它们至关重要。
  • 复制文档。 如果您的游戏包含多人游戏组件,并且您对游戏框架感到满意,那么这里就是开始学习游戏网络基础的好地方。 这是一个高级主题,您可能需要几次阅读文档才能真正了解Unreal中网络原理的概念和实现。
  • 蓝图网络简介 。 这是YouTube官方频道,涵盖了您入门所需的大部分原理。
  • 第一人称射击游戏 。 这是在C ++中进行复制的很好的参考。 (在虚幻启动器中可用)

保持联系

我在Assembla上从事的最激动人心的事情之一就是与虚幻引擎4编辑器的本机集成。

如您所见,我非常热衷于构建游戏,虚幻集成只是Assembla帮助游戏开发人员构建更好游戏的第一步。 如果您想获取有关此插件的更新并获得早期使用权,请通过电子邮件将您的联系信息发送给我。 我希望收到您的反馈,所以请提交您的评论!