|
关于我们
新书资讯 新书推荐 |
游戏设计、原型与开发
游戏设计、原型制作、开发,这三方面的技术整合到一本书中,是很多专业游戏开发者的福音。这本书完全集成了游戏设计和计算机编程方面有价值的关键内容。作为跨平台的游戏开发的顶级游戏引擎,Unity可用于开发一个支持Windows,OS X和Linux的应用程序,适用于网页和所有最流行的移动平台。而C则是一个优秀的编程环境,是专业游戏开发者强大的工具。如果你想掌握有关游戏开发与制作的高端技能,你需要具备很强的开发技能和丰富的实践经验,没有捷径,但是,这本书可以帮助你实现愿望。
欢迎阅读本书。笔者有多年游戏设计方面的经验,并在多所大学担任过游戏设计课程的教授,其中包括南加州大学的互动媒体和游戏专业、密歇根大学安娜堡分校的电气工程与计算机科学专业等,本书便是基于本人多年的专业经验编写而成的。
本前言主要介绍本书写作的目的、内容以及本书的使用方法。 本书的写作目的 本书的写作目的非常明确:提供读者成为成功游戏设计师和原型设计师所需要的工具和知识,我尽可能地将所有的相关技能和知识都纳入了本书。与其他教程类的书籍不同的是,本书结合了游戏设计的原则与数字开发(也就是计算机编程)内容,并将两者融入互动原型中。随着性能先进同时又简便易用的游戏开发引擎的出现(比如Unity),原型构建正变得前所未有的简单。而且,学会原型开发也有助于你成为一名更优秀的游戏设计师。 第Ⅰ部分:游戏设计和纸面原型 本书的第Ⅰ部分介绍了游戏设计的不同理论和分析框架,这些内容在早年出版的一些书籍里均有涉及。本部分介绍了一种将这些理论结合并拓展延伸的方法——四元分层法。四元分层法探究了与互动体验设计相关的决策内容。本部分同时含纳了不同游戏设计原则的挑战难度,阐述了纸面原型的设计过程、游戏测试和迭代设计。这些具体的信息和知识将有助于读者成为合格的设计师。 第Ⅱ部分:数字原型 本书的第Ⅱ部分介绍了编程的内容。该部分的编写基于我作为教授多年为零基础的学生授课的经验,我在课堂上也使用这些内容教导学生如何利用数字编程表达自己游戏设计的理念。如果你此前没有学过任何编程或开发的相关知识,也没有任何经验的话,那么本书第Ⅱ部分的内容就是为你量身定做的。如果你此前有过一定的编程经验的话,那么你也可以学到几个编程的小窍门,了解到一些不同的编程方法。 第Ⅲ部分:游戏原型实例和教程 本书的第Ⅲ部分围绕多种迥异的原型教程展开,你能学习到不同类型游戏的开发方法。该部分内容的主要目的是:通过展示不同类型游戏的开发方式,借此展现开发游戏原型的最佳办法,并且这些知识将为你将来的工作打下良好的基础。市场上其他图书的教程多数只介绍一种类型的教程,篇幅长达上百页。相比之下,本书的教程种类繁多,短小精悍。虽然没有那些书籍的单个教程内容详尽,但是我认为学习不同类型的教程更有助于读者将来自己准备项目开发。 第Ⅳ部分:附录 本书包含了一些很重要的附录内容,值得在这里提一下。我将书中多次提及的信息,以及我认为读者阅读后有可能想要再次查阅的内容放在了附录内,因此本书的附录并不是通篇重复的内容,也不需要读者翻阅不同章节寻找。附录A是运用Unity创建游戏项目的步骤。附录B“有用的概念”是篇幅最长的附录,虽然该附录的名字十分平庸,但是我认为你以后会经常来查阅这部分的知识。“有用的概念”里集合了我个人在游戏原型开发上经常使用的技术和策略。附录C囊括了所有有用的网站参考链接。在互联网上想要找到自己需要的信息总是很难,本附录列出的网站则是我经常使用的。 数字原型:Unity 本书提到的所有数字游戏实例均基于游戏引擎Unity和C#语言。我在讲授数字游戏开发和互动体验课程上有十多年的经验,在我看来,目前为止Unity是学习游戏开发的最佳工具,C#语言则最适合原型设计师学习。虽然现在也有一些开发工具不需要使用者具备任何编程技术(比如GameMaker和GameSalad),但是Unity的资源包更灵活多变,并且基本上都是免费的(Unity的免费版本包含付费版本的大多数内容,本书通篇用到的Unity也都是免费版本的)。如果你真的想学习游戏编程,那么Unity是你的最佳选择。 同样,有一些编程语言要比C#语言更容易使用。过去我教过学生ActionScript和JavaScript,但这么长时间以来C#的灵活性和强大的功能一直让我印象深刻。学习C#不仅是学习简单的编程,更是学习编程的方法。JavaScript对使用者在编程时的严谨性要求不高,可我发现这实际上会减慢开发的速度。C#在这方面则要严格得多(通过强类型变量等内容),这不仅有助于使用者成为更出色的程序员,同时也会提升编程速度(比如强类型提供代码自动完成的提示,让使用者更快速、准确的编程)。 本书面向的受众群体 市面上有很多关于游戏设计书籍,也有很多关于编程的图书。本书的宗旨就是填补游戏设计和编程之间的缺口,将两者联系起来。随着像Unity的游戏开发技术趋于成熟,游戏设计师把自己的想法转换为数字原型就变得极为重要。本书能帮助你: 如果你有兴趣致力于游戏设计领域,但是从未学过编程,那么本书是你的最佳选择。第Ⅰ部分介绍了几种不同的游戏设计理论,以及探索设计理念的办法。第Ⅱ部分教授零基础读者学习编程,了解面向对象的类体系。自从我担任大学教授以来,我的课程主要都是教授没有编程学习背景的学生学习游戏编程。我将自己的所有教学经验提炼浓缩至第Ⅱ部分内容中。第Ⅲ部分阐述了不同游戏类型的八种游戏原型开发方法。每一种方法都能快速地把概念转变成数字原型。第Ⅳ部分的附录列举了游戏开发和编程的概念,提供了扩展学习的资源。附录B“有用的概念”里有很多深入探究的内容,接下来的很多年里你也会经常用到这部分内容。 如果你有过编程经验,同时对游戏设计感兴趣,那么本书的第Ⅰ部分和第Ⅲ部分对你最有用。第Ⅰ部分介绍了不同的游戏设计理论和探索设计理念的办法。第二部分介绍了C#语言,以及如何在Unity环境中运用C#,你可以跳过这部分内容。如果你熟悉其他编程语言,那么你就会发现C#和C++很相似,同时带有Java的一些高级功能。第Ⅲ部分阐述了不同游戏类型的八种游戏原型开发方法。用Unity开发游戏和用其他游戏引擎开发截然不同,因为许多元素都是在编程外进行设计的。本书中举出的每一种原型实例都最适合用在Unity上,并且开发速度都很快。你也应该仔细阅读附录B,该附录含纳了不同开发概念的详细信息和内容,值得你翻阅查看。
Jeremy Gibson在密歇根大学安娜堡分校的电气工程与计算机科学专业任教,讲授计算机游戏设计课程,同时也是 ExNinja Interactive有限责任公司的创始人之一。 2009年至 2013年间,担任南加州大学电影艺术学院的互动媒体及游戏专业的助理教授,讲授游戏设计和原型开发课程。在他任职期间,该学院的游戏设计课程在北美地区首屈一指。Jeremy同时担任 IndieCade独立游戏展会的教育和发展主席,负责 IndieX-change和 GameU峰会。自 2009年开始,每年在游戏开发者大会上发表演讲。
Jeremy于 1999年取得了得克萨斯大学奥斯汀分校的广播、电视、电影专业的理学学士学位,于 2007年取得了卡内基梅隆大学娱乐技术专业的硕士学位。 Jeremy曾在 Human Code和 frog design公司担任程序员和原型设计师,曾在 Great Northern Way Campus(温哥华,BC)、得克萨斯州立大学、匹兹堡艺术学院、奥斯汀社区学院、得克萨斯大学奥斯汀分校任教,并曾在迪士尼、Maxis、Electronic Arts和 Pogo.com等公司任职。在攻读研究生期间,Jeremy的团队开发了游戏产品 Skyrates,荣获 2008年独立游戏峰会的 Silver Gleemax奖项。同时 Jeremy也是*一位在哥斯达黎加讲授游戏设计课程的教授。
第I部分 游戏设计和纸质原型
第1章 像设计师一样思考 2 1.1 你是一名游戏设计师 2 1.2 Bartok:游戏练习 2 1.3 游戏的定义 7 1.4 小结 12 第2章 游戏分析框架 14 2.1 游戏学的常用框架 14 2.2 MDA:机制,动态和美学 14 2.3 规则,戏剧和动态元素 17 2.4 四元法 19 2.5 小结 21 第3章 分层四元法 22 3.1 内嵌层 22 3.2 动态层 23 3.3 文化层 24 3.4 设计师的责任 25 3.5 小结 25 第4章 内嵌层 27 4.1 内嵌机制 27 4.2 美学内嵌 31 4.3 叙事内嵌 33 4.4 技术内嵌 39 4.5 小结 40 第5章 动态层 41 5.1 玩家的角色 41 5.2 涌现 42 5.3 动态机制 42 5.4 动态美学 46 5.5 动态叙事 50 5.6 涌现叙事 51 5.7 动态技术 52 5.8 小结 52 第6章 文化层 53 6.1 游戏之外 53 6.2 文化机制 54 6.3 美学文化 55 6.4 叙事文化 55 6.5 技术文化 56 6.6 授权的跨媒体不属于文化层 57 6.7 游戏的文化影响 57 6.8 小结 58 第7章 像一个设计师一样工作 59 7.1 迭代设计 59 7.2 创新 65 7.3 头脑风暴与构思 66 7.4 改变你的想法 68 7.5 规划作品的范围大小 70 7.6 小结 71 第8章 设计目标 72 8.1 设计目标:一个不完整的清单 72 8.2 以设计为中心的目标 73 8.3 以玩家为中心的目标 75 8.4 小结 87 第9章 纸面原型 88 9.1 纸面原型的优势 88 9.2 纸面原型工具 89 9.3 一个纸面原型的例子 90 9.4 纸面原型的优点 97 9.5 纸面原型的缺点 98 9.6 小结 98 第10章 游戏测试 100 10.1 为什么要测试游戏 100 10.2 成为出色的试玩者 101 10.3 试玩者圈子 101 10.4 测试方法 103 10.5 其他重要的测试办法 108 10.6 小结 109 第11章 数学和游戏平衡 110 11.1 游戏平衡的意义 110 11.2 安装Apache OpenOffice Calc 110 11.3 用Calc检查骰子 111 11.4 概率 118 11.5 桌游中的乱数产生技术 121 11.6 加权分布 123 11.7 排列 125 11.8 正负反馈 126 11.9 使用Calc调整武器平衡 127 11.10 小结 132 第12章 谜题设计 133 12.1 谜题无处不在 133 12.2 Scott Kim与谜题设计 133 12.3 动作解谜游戏的几种类型 139 12.4 小结 140 第13章 引导玩家 142 13.1 直接指引 142 13.2 间接指引 144 13.3 介绍新技能和新概念 149 13.4 小结 151 第14章 数字游戏产业 152 14.1 关于游戏产业 152 14.2 游戏教育 155 14.3 走进行业中去 157 14.4 等不及开始做游戏了 160 14.5 小结 161 第II部分 数字原型 第15章 数字化系统中的思维 164 15.1 棋类游戏中的系统思维 164 15.2 简单命令练习 165 15.3 游戏分析:《拾苹果》(Apple Picker) 167 15.4 小结 171 第16章 Unity开发环境简介 172 16.1 下载Unity软件 172 16.2 开发环境简介 173 16.3 首次运行Unity软件 176 16.4 设置Unity的窗口布局 181 16.5 熟悉Unity界面 184 16.6 小结 185 第17章 C#编程语言简介 186 17.1 理解C#的特性 186 17.2 阅读和理解C#语法 190 17.3 小结 193 第18章 HELLO WORLD:你的首个程序 194 18.1 创建新项目 194 18.2 新建C#脚本 196 18.3 让事情更有趣 200 18.4 小结 208 第19章 变量和组件 209 19.1 变量 209 19.2 C#中的强类型变量 209 19.3 重要的C#变量类型 210 19.4 变量的作用域 213 19.5 命名惯例 213 19.6 Unity中的重要变量类型 215 19.7 Unity游戏对象和组件 220 19.8 小结 222 第20章 布尔运算和比较运算符 223 20.1 布尔值 223 20.2 比较运算符 226 20.3 条件语句 229 20.4 小结 234 第21章 循环语句 235 21.1 循环语句的种类 235 21.2 创建项目 235 21.3 while循环 236 21.4 死循环的危害 236 21.5 更实用的while循环 237 21.6 do……while循环 238 21.7 for循环 239 21.8 foreach循环 240 21.9 循环中的跳转语句 241 21.10 小结 243 第22章 List和数组 244 22.1 C#中的集合 244 22.2 List 245 22.3 数组 249 22.4 多维数组 252 22.5 交错数组 255 22.6 应该使用数组还是List 259 22.7 小结 259 第23章 函数与参数 263 23.1 创建函数示例的项目 263 23.2 函数的定义 263 23.3 函数的形式参数和实际参数 266 23.4 函数的返回值 267 23.5 使用合适的函数名称 269 23.6 什么情况下应该使用函数 269 23.7 函数重载 270 23.8 可选参数 271 23.9 params关键字 272 23.10 递归函数 273 23.11 小结 274 第24章 代码调试 276 24.1 如何开始调试 276 24.2 绑定或移除脚本时出现的错误 278 24.3 使用调试器逐语句运行代码 281 24.5 小结 287 第25章 类 289 25.1 理解类 289 25.2 创建Enemy类示例的项目 290 25.3 类的继承 295 25.4 小结 298 第26章 面向对象思维 299 26.1 面向对象的比喻 299 26.2 面向对象的Boids实现方法 301 26.3 小结 310 第27章 敏捷思维 311 27.1 敏捷软件开发宣言 311 27.2 Scrum方法论 312 27.3 小结 319 第III部分 游戏原型示例和教程 第28章 游戏原型1:《拾苹果》 322 28.1 数字化原型的目的 322 28.2 准备工作 323 28.3 开始工作:绘图资源 323 28.4 编写《拾苹果》游戏原型的代码 329 28.5 图形用户界面(GUI)和游戏管理 340 28.6 小结 346 第29章 游戏原型2:《爆破任务》 348 29.1 准备工作:原型2 348 29.2 游戏原型概念 348 29.3 绘图资源 349 29.4 编写游戏原型的代码 354 29.5 小结 380 第30章 游戏原型3:《太空射击》 382 30.1 准备工作:原型3 382 30.2 设置场景 384 30.3 创建主角飞船 385 30.4 添加敌机 397 30.5 随机生成敌机 401 30.6 设置标签、图层和物理规则 403 30.7 使敌机可以消灭主角飞船 405 30.8 重新开始游戏 409 30.9 射击 410 30.10 添加升级道具 421 30.11 解决代码中的竞态条件 428 30.12 让敌机可以掉落升级道具 430 30.13 为其他敌机编程 432 30.14 添加粒子效果和背景 444 30.15 小结 446 第31章 游戏原型4:《矿工接龙》 449 31.1 准备工作:原型4 449 31.2 项目Build设置 450 31.3 将图片导入为Sprite 451 31.4 用Sprite制作纸牌 453 31.5 《矿工接龙》游戏 469 31.6 在代码中实现《矿工接龙》游戏 471 31.7 为游戏添加得分机制 489 31.8 总结 504 第32章 游戏原型5:Bartok 505 32.1 准备工作:原型5 505 32.2 编译设置 507 32.3 Bartok编程 508 32.4 小结 536 第33章 游戏原型6:Word Game 537 33.1 准备工作:Word Game原型 537 33.2 关于Word Game 538 33.3 解析Word List 539 33.4 创建游戏 544 33.5 屏幕布局 549 33.6 添加交互 557 33.7 添加计分 561 33.8 添加动画 564 33.9 添加色彩 567 33.10 小结 569 第34章 游戏原型7:QuickSnap 571 34.1 准备工作:QuickSnap原型 571 34.2 构建场景 572 34.3 游戏编程 579 34.4 小结 598 第35章 游戏原型8:Omega Mage 600 35.1 准备工作:Omega Mage原型 600 35.2 构建场景 602 35.3 法师角色 607 35.4 鼠标交互 609 35.5 移动 613 35.6 物品栏和选择道具 618 35.7 施展火场法术 625 35.8 切换房间 634 35.9 补充敌人 638 35.10 攻击法师 646 35.11 抽象敌人接口 651 35.12 创建EnemyFactory 653 35.13 小结 657 第 IV 部分 附录 附录 A 项目创建标准流程 660 A.1 建立新项目 660 A.2 场景编码就绪 662 附录 B 实用概念 665 B.1 C#和 Unity 代码概念 665 B.2 数学概念 684 B.3 插值 693 B.4 角色扮演游戏 706 B.5 用户接口概念 707
你还可能感兴趣
我要评论
|

新书资讯





