所以,你想用虚幻引擎 4 ( UE4 )来编程自己的游戏。你有很多理由这样做:UE4 很强大——UE4 提供了一些最先进、最美丽、最逼真的照明和物理效果,这是 AAA 工作室使用的那种。
UE4 是设备无关的:为 UE4 编写的代码将在 Windows 桌面机、Mac 桌面机、所有主要的游戏控制台(如果你是官方开发者)、Android 设备和 iOS 设备上工作(在撰写本书时——未来可能会支持更多设备!).所以,你可以用 UE4 写一遍你游戏的主要部分,然后毫无问题地部署到 iOS 和安卓市场。(当然,会有一些小问题:iOS 和安卓的应用内购买和通知必须分开编程,可能还有其他不同。)
这本书是给任何想学游戏编程的人看的。我们将通过并创建一个简单的游戏,所以你会对整个过程有一个很好的了解。
这本书也适合任何想学习 C++,尤其是 C++ 17 的人。我们将学习 C++ 的基础知识以及如何在其中编程,并介绍最新 C++ 版本中的一些新特性。
最后,这本书是给任何想学 UE4 的人看的。我们将用它来创造我们的游戏。我们将主要关注 C++ 方面,但我们将关注一些基本的蓝图开发。
第 1 章、C++ 17 入门涵盖了在 Visual Studio Community 2017 或 Xcode 中创建您的第一个 c++ 项目。我们将创建第一个简单的 C++ 程序。
第 2 章、变量和内存,涵盖了不同类型的变量,C++ 中存储数据的基本方法,以及控制台应用中的指针、名称空间和基本输入输出。
第 3 章、 If、Else 和 Switch 涵盖了 C++ 中的基本逻辑语句,允许您根据变量中的值在代码中进行选择。
第 4 章、循环,讲述了如何将一段代码运行一定次数,或者直到某个条件为真。它还涵盖了逻辑运算符,我们将在 UE4 中看到我们的第一个代码示例。
第 5 章、函数和宏讲述了我们如何设置可以从代码的其他部分调用的代码部分。我们还介绍了如何传入值或获取返回值,以及一些与变量相关的更高级的主题。
第 6 章、对象、类和继承涵盖了 C++ 中的对象,这些对象是将数据成员和成员函数绑定在一起的代码片段,这些代码被称为类或结构。我们将了解封装,以及如何更容易和更有效地对对象进行编程,使它们保持自己的内部状态。
第 7 章、动态内存分配,关注动态内存分配以及如何为对象组创建内存空间。本章向您介绍 C 和 C++ 风格的数组和向量。在大多数 UE4 代码中,您将使用 UE4 编辑器内置的集合类。
第八章、演员和棋子,深入探讨了如何创建角色并在屏幕上显示,用轴绑定控制你的角色,以及创建和显示可以向 HUD 发布消息的 NPC。
第 9 章、模板和常用容器,讲述了如何在 C++ 中使用模板,并讨论了 UE4 和 C++ 标准模板库中都提供的基于模板的数据结构。
第 10 章、库存系统和取货物品,是我们为玩家编码设计一个背包存放物品的地方。当用户按下 I 键时,我们将显示玩家在背包中携带的物品。我们将学习如何为玩家设置多个拾取项目。
第十一章、怪物,看如何添加一个景观。玩家将沿着为他们雕刻的道路行走,然后他们将遇到一支军队。你将学习如何在屏幕上实例化追赶玩家并攻击他们的怪物。
第 12 章用高级 AI 打造更聪明的怪物,涵盖了 AI 的基础知识。我们将学习如何使用导航网格、行为树和其他人工智能技术来让你的怪物看起来更聪明。
第十三章、法术书,看游戏中如何创造法术来防御自己,以及粒子系统来可视化显示法术。
第十四章、用 UMG 和音频改善 UI 反馈,是关于用新的 UMG UI 系统向用户显示游戏信息。我们将使用 UMG 更新您的库存窗口,使其更简单、更美观,我将为您提供创建自己的用户界面的技巧。它还涵盖了如何添加基本音频来增强您的游戏。
第 15 章、虚拟现实与超越,概述了 UE4 在 VR、AR、程序编程、加载项以及与不同平台协同工作方面的能力。
在这本书里,我们不假设你有任何编程背景,所以如果你是一个完全的初学者,那很好!然而,这将有助于你熟悉电脑,以及了解一些基本的游戏概念。当然,如果你想编程游戏,很有可能你至少玩过几个!
我们将运行虚幻引擎 4 和 Visual Studio 2017(如果您在 Mac 上,则为 Xcode),因此您可能希望确保您运行的是一台最新的、功能相当强大的计算机(如果您想进行 VR,请确保您的计算机已为 VR 做好准备)。
还有,做好工作准备!UE4 使用 C++,你可以很快学会它的基础知识(这里也将会),但是真正掌握这门语言可能需要很长时间。如果你正在寻找一种快速简单的方法来创建一个游戏,还有其他工具,但如果你真的想学习技能,可能会导致职业编程游戏,这是一个很好的开始!
你可以从你在www.packt.com的账户下载这本书的示例代码文件。如果您在其他地方购买了这本书,您可以访问www.packt.com/support并注册将文件直接通过电子邮件发送给您。
您可以按照以下步骤下载代码文件:
- 登录或注册www.packt.com。
- 选择“支持”选项卡。
- 点击代码下载和勘误表。
- 在搜索框中输入图书的名称,并按照屏幕指示进行操作。
下载文件后,请确保使用最新版本的解压缩文件夹:
- 视窗系统的 WinRAR/7-Zip
- zipeg/izp/un ARX for MAC
- 适用于 Linux 的 7-Zip/PeaZip
这本书的代码包也在 GitHub 上托管在https://GitHub . com/packt publishing/Learning-Cpp-by-Building-Games-with-虚幻-Engine-4-Second Edition。如果代码有更新,它将在现有的 GitHub 存储库中更新。
我们还有来自丰富的图书和视频目录的其他代码包,可在**【https://github.com/PacktPublishing/】**获得。看看他们!
我们还提供了一个 PDF 文件,其中包含本书中使用的截图/图表的彩色图像。可以在这里下载:https://www . packtpub . com/sites/default/files/downloads/9781788476249 _ color images . pdf。
本书通篇使用了许多文本约定。
CodeInText
:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟网址、用户输入和推特句柄。这里有一个例子:“我们首先看到的是一个#include
语句。我们要求 C++ 复制并粘贴另一个名为<iostream>
的 C++ 源文件的内容
代码块设置如下:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world" << endl;
cout << "I am now a C++ programmer." << endl;
return 0;
}
当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:
string name;
int goldPieces;
float hp;
粗体:表示一个新的术语、一个重要的单词或者你在屏幕上看到的单词。例如,菜单或对话框中的单词像这样出现在文本中。这里有一个例子:“打开史诗游戏启动器应用。选择启动虚幻引擎 4.20.X。”
Warnings or important notes appear like this. Tips and tricks appear like this.
我们随时欢迎读者的反馈。
一般反馈:如果你对这本书的任何方面有疑问,在你的信息主题中提到书名,发邮件给我们[email protected]
。
勘误表:虽然我们已经尽了最大的努力来保证内容的准确性,但是错误还是会发生。如果你在这本书里发现了一个错误,如果你能向我们报告,我们将不胜感激。请访问www.packt.com/submit-errata,选择您的图书,点击勘误表提交链接,并输入详细信息。
盗版:如果您在互联网上遇到任何形式的我们作品的非法拷贝,如果您能提供我们的位置地址或网站名称,我们将不胜感激。请通过[email protected]
联系我们,并提供材料链接。
如果你有兴趣成为一名作者:如果有一个你有专长的话题,你有兴趣写或者投稿一本书,请访问authors.packtpub.com。
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在的读者可以看到并使用您不带偏见的意见来做出购买决定,我们在 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们的书的反馈。谢谢大家!
更多关于 Packt 的信息,请访问packt.com。