描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111650430
内容简介
本书将独立游戏开发分为了三个部分。第壹部分我们尝试对独立游戏开发进行相关理论分析。第二部分侧重实践,我们首先对游戏进行了简单设计,再使用Unity展示了一款2D Android游戏的具体开发流程,案例专注于游戏层面的设计与编码,不包含晦涩难懂的底层逻辑。第三部分专注于如何使用游戏创造收入,包括使用GooglePlay渠道发布游戏、植入广告、在游戏内创建虚拟商品、实现内购功能等。
本书第壹部分适合所有想要了解独立游戏开发的读者,第二、三部分则适合具有一定C#或Java编程语言基础的游戏开发初学者。
本书第壹部分适合所有想要了解独立游戏开发的读者,第二、三部分则适合具有一定C#或Java编程语言基础的游戏开发初学者。
目 录
前言
第1篇 独立游戏开发基础
第1章 基本认识2
1.1 何为独立游戏2
1.2 独立游戏开发?开发独立游戏?独立开发游戏?3
1.3 独立游戏开发者5
1.4 矛盾碰撞的产物6
第2章 条件因素9
2.1 个体条件9
2.1.1 叛逆9
2.1.2 边行动边计划10
2.1.3 良好的身心素质11
2.2 观念条件12
2.2.1 不是“电子毒品”12
2.2.2 伟大的“艺术品”14
2.2.3 不变的原始目的15
2.2.4 不盲目排斥商业因素16
2.2.5 高尚的品质17
2.3 资金条件18
2.4 环境条件19
2.5 知识条件21
2.5.1 编程21
2.5.2 美术21
2.5.3 音乐22
2.5.4 文学22
2.5.5 财会22
2.5.6 商业22
第3章 团队与个人23
3.1 团队与个人的关系23
3.1.1 成员关系23
3.1.2 委托关系24
3.1.3 授权关系25
3.2 团队开发的理由25
3.2.1 提高生产力25
3.2.2 利于成长26
3.2.3 符合社会性本质27
3.3 独自开发的理由27
3.3.1 掌握主动权28
3.3.2 学习目的29
3.3.3 无合适协作对象29
3.4 开发者状态30
3.4.1 全职雇员状态31
3.4.2 兼职者状态32
3.4.3 自由职业者状态32
3.4.4 创业者状态33
第4章 矛盾双方及融合34
4.1 独立精神34
4.1.1 广泛性35
4.1.2 主观性36
4.1.3 模糊性37
4.2 商业力量39
4.2.1 投资与融资39
4.2.2 采购与营销41
4.3 融合44
4.3.1 融合的条件45
4.3.2 融合的目的48
4.4 创收途径49
4.4.1 一次性销售49
4.4.2 第三方广告收入50
4.4.3 虚拟商品销售50
4.4.4 融资50
第5章 Unity及相关工具51
5.1 Unity简介51
5.1.1 引擎特点51
5.1.2 下载安装及项目的建立53
5.1.3 操作界面55
5.1.4 项目构建与导出63
5.2 Visual Studio简介65
5.3 Git与GitHub67
5.3.1 Git简介67
5.3.2 GitHub简介69
5.4 Android Studio简介72
5.5 其他推荐工具74
5.5.1 GIMP简介74
5.5.2 Aseprite简介75
5.5.3 Blender简介75
5.5.4 LMMS简介75
5.5.5 Audacity简介75
5.5.6 XMind简介75
5.5.7 Visual Paradigm简介76
第2篇 独立游戏开发实践
第6章 简单设计78
6.1 故事78
6.2 玩法80
6.3 操作界面82
6.4 登场对象83
6.4.1 主角83
6.4.2 纸飞机84
6.4.3 金币84
6.4.4 障碍84
6.4.5 敌人85
6.4.6 复活猫86
6.5 主题86
第7章 游戏雏形87
7.1 临时主角87
7.1.1 创建主角游戏对象87
7.1.2 图像资源导入设置89
7.1.3 资源导入设置脚本90
7.2 移动91
7.2.1 基于Transform的移动91
7.2.2 移动改进92
7.3 碰撞94
7.3.1 刚体与碰撞器组件94
7.3.2 碰撞逻辑96
7.4 物理系统97
7.4.1 游戏对象调整98
7.4.2 渲染顺序修正99
7.4.3 基于物理系统的移动100
7.4.4 基于物理系统的跳跃与碰撞101
第8章 主角104
8.1 行为动画104
8.1.1 Spritesheet切片104
8.1.2 首次创建动画105
8.1.3 后续动画的创建106
8.2 动画状态机107
8.2.1 动画控制器窗口108
8.2.2 状态转换关系108
8.2.3 脚本逻辑110
8.2.4 Bug修复118
8.3 主角、气体与纸飞机119
8.3.1 主角与气体119
8.3.2 纸飞机与气体124
8.3.3 主角与纸飞机131
第9章 背景画面134
9.1 近景画面134
9.1.1 Tilemap功能134
9.1.2 创建Tile资源136
9.1.3 铺设Tile137
9.2 远景画面138
9.3 屏幕适配139
9.4 视差效果141
9.4.1 多重摄像机141
9.4.2 视差逻辑143
第10章 敌人及障碍145
10.1 路障145
10.1.1 Spritesheet切片145
10.1.2 路障调整146
10.2 恶犬147
10.2.1 动画与游戏对象147
10.2.2 脚本逻辑148
10.3 金币炸弹152
10.3.1 动画与游戏对象152
10.3.2 脚本逻辑153
10.4 小鸟154
10.4.1 PlayerDistanceChecker脚本修改155
10.4.2 Bird脚本逻辑156
10.5 美女158
10.5.1 动画与游戏对象158
10.5.2 脚本逻辑159
10.6 汽车163
10.6.1 动画与游戏对象163
10.6.2 脚本逻辑164
10.7 摔倒陷阱166
10.8 小屁孩儿168
10.8.1 动画与游戏对象168
10.8.2 脚本逻辑169
10.9 UFO172
10.10 巨人175
10.10.1 动画与游戏对象175
10.10.2 脚本逻辑177
10.11 蝗虫180
10.11.1 预制件180
10.11.2 脚本逻辑181
10.12 恶魔猫183
10.12.1 动画与游戏对象183
10.12.2 脚本逻辑184
第11章 其他登场对象189
11.1 金币189
11.1.1 预制件189
11.1.2 脚本逻辑189
11.2 复活猫191
11.2.1 动画与游戏对象191
11.2.2 脚本逻辑191
11.2.3 Bug修复195
11.3 其他主角197
11.3.1 动画与游戏对象198
11.3.2 继承PlayerController类200
11.3.3 继承AirCollisionChecker类202
11.3.4 继承InhaleController类203
11.3.5 PlayerSwitcher脚本逻辑204
第12章 操作界面208
12.1 跳跃与吹气按钮208
12.1.1 跳跃按钮208
12.1.2 吹气按钮213
12.2 能量条217
12.2.1 游戏对象217
12.2.2 脚本逻辑218
12.3 数据显示区域220
12.3.1 游戏对象220
12.3.2 脚本逻辑222
12.4 暂停退出按钮227
12.4.1 游戏对象227
1
第1篇 独立游戏开发基础
第1章 基本认识2
1.1 何为独立游戏2
1.2 独立游戏开发?开发独立游戏?独立开发游戏?3
1.3 独立游戏开发者5
1.4 矛盾碰撞的产物6
第2章 条件因素9
2.1 个体条件9
2.1.1 叛逆9
2.1.2 边行动边计划10
2.1.3 良好的身心素质11
2.2 观念条件12
2.2.1 不是“电子毒品”12
2.2.2 伟大的“艺术品”14
2.2.3 不变的原始目的15
2.2.4 不盲目排斥商业因素16
2.2.5 高尚的品质17
2.3 资金条件18
2.4 环境条件19
2.5 知识条件21
2.5.1 编程21
2.5.2 美术21
2.5.3 音乐22
2.5.4 文学22
2.5.5 财会22
2.5.6 商业22
第3章 团队与个人23
3.1 团队与个人的关系23
3.1.1 成员关系23
3.1.2 委托关系24
3.1.3 授权关系25
3.2 团队开发的理由25
3.2.1 提高生产力25
3.2.2 利于成长26
3.2.3 符合社会性本质27
3.3 独自开发的理由27
3.3.1 掌握主动权28
3.3.2 学习目的29
3.3.3 无合适协作对象29
3.4 开发者状态30
3.4.1 全职雇员状态31
3.4.2 兼职者状态32
3.4.3 自由职业者状态32
3.4.4 创业者状态33
第4章 矛盾双方及融合34
4.1 独立精神34
4.1.1 广泛性35
4.1.2 主观性36
4.1.3 模糊性37
4.2 商业力量39
4.2.1 投资与融资39
4.2.2 采购与营销41
4.3 融合44
4.3.1 融合的条件45
4.3.2 融合的目的48
4.4 创收途径49
4.4.1 一次性销售49
4.4.2 第三方广告收入50
4.4.3 虚拟商品销售50
4.4.4 融资50
第5章 Unity及相关工具51
5.1 Unity简介51
5.1.1 引擎特点51
5.1.2 下载安装及项目的建立53
5.1.3 操作界面55
5.1.4 项目构建与导出63
5.2 Visual Studio简介65
5.3 Git与GitHub67
5.3.1 Git简介67
5.3.2 GitHub简介69
5.4 Android Studio简介72
5.5 其他推荐工具74
5.5.1 GIMP简介74
5.5.2 Aseprite简介75
5.5.3 Blender简介75
5.5.4 LMMS简介75
5.5.5 Audacity简介75
5.5.6 XMind简介75
5.5.7 Visual Paradigm简介76
第2篇 独立游戏开发实践
第6章 简单设计78
6.1 故事78
6.2 玩法80
6.3 操作界面82
6.4 登场对象83
6.4.1 主角83
6.4.2 纸飞机84
6.4.3 金币84
6.4.4 障碍84
6.4.5 敌人85
6.4.6 复活猫86
6.5 主题86
第7章 游戏雏形87
7.1 临时主角87
7.1.1 创建主角游戏对象87
7.1.2 图像资源导入设置89
7.1.3 资源导入设置脚本90
7.2 移动91
7.2.1 基于Transform的移动91
7.2.2 移动改进92
7.3 碰撞94
7.3.1 刚体与碰撞器组件94
7.3.2 碰撞逻辑96
7.4 物理系统97
7.4.1 游戏对象调整98
7.4.2 渲染顺序修正99
7.4.3 基于物理系统的移动100
7.4.4 基于物理系统的跳跃与碰撞101
第8章 主角104
8.1 行为动画104
8.1.1 Spritesheet切片104
8.1.2 首次创建动画105
8.1.3 后续动画的创建106
8.2 动画状态机107
8.2.1 动画控制器窗口108
8.2.2 状态转换关系108
8.2.3 脚本逻辑110
8.2.4 Bug修复118
8.3 主角、气体与纸飞机119
8.3.1 主角与气体119
8.3.2 纸飞机与气体124
8.3.3 主角与纸飞机131
第9章 背景画面134
9.1 近景画面134
9.1.1 Tilemap功能134
9.1.2 创建Tile资源136
9.1.3 铺设Tile137
9.2 远景画面138
9.3 屏幕适配139
9.4 视差效果141
9.4.1 多重摄像机141
9.4.2 视差逻辑143
第10章 敌人及障碍145
10.1 路障145
10.1.1 Spritesheet切片145
10.1.2 路障调整146
10.2 恶犬147
10.2.1 动画与游戏对象147
10.2.2 脚本逻辑148
10.3 金币炸弹152
10.3.1 动画与游戏对象152
10.3.2 脚本逻辑153
10.4 小鸟154
10.4.1 PlayerDistanceChecker脚本修改155
10.4.2 Bird脚本逻辑156
10.5 美女158
10.5.1 动画与游戏对象158
10.5.2 脚本逻辑159
10.6 汽车163
10.6.1 动画与游戏对象163
10.6.2 脚本逻辑164
10.7 摔倒陷阱166
10.8 小屁孩儿168
10.8.1 动画与游戏对象168
10.8.2 脚本逻辑169
10.9 UFO172
10.10 巨人175
10.10.1 动画与游戏对象175
10.10.2 脚本逻辑177
10.11 蝗虫180
10.11.1 预制件180
10.11.2 脚本逻辑181
10.12 恶魔猫183
10.12.1 动画与游戏对象183
10.12.2 脚本逻辑184
第11章 其他登场对象189
11.1 金币189
11.1.1 预制件189
11.1.2 脚本逻辑189
11.2 复活猫191
11.2.1 动画与游戏对象191
11.2.2 脚本逻辑191
11.2.3 Bug修复195
11.3 其他主角197
11.3.1 动画与游戏对象198
11.3.2 继承PlayerController类200
11.3.3 继承AirCollisionChecker类202
11.3.4 继承InhaleController类203
11.3.5 PlayerSwitcher脚本逻辑204
第12章 操作界面208
12.1 跳跃与吹气按钮208
12.1.1 跳跃按钮208
12.1.2 吹气按钮213
12.2 能量条217
12.2.1 游戏对象217
12.2.2 脚本逻辑218
12.3 数据显示区域220
12.3.1 游戏对象220
12.3.2 脚本逻辑222
12.4 暂停退出按钮227
12.4.1 游戏对象227
1
前 言
在古生物学与地质学领域中,有一个被称为“寒武纪生命大爆发”的时期。其指的是在距今大约五亿年前的寒武纪地质历史时期,地球上的生命出现了空前繁荣的景象,大量形态各异的物种突然在这一时期内涌现。而过去约十亿年间,地球上的生命始终处于结构简单、进化缓慢的状态,与寒武纪时期形成了鲜明的对比。
近年来,游戏(本书皆指电子游戏)行业也呈现出了“大爆发”的状态。历史上我们从未像今天一样有一生都选不完的游戏,大量投入到游戏开发领域的人们创造了巨量的游戏产品。对于普通人来说,游戏开发也不再是一项高深莫测的事情。这得益于当下知识获取的便利,任何人都能够从书籍、互联网或课堂上学到游戏开发的相关知识,这使得游戏开发者的数量快速增长。而利用强大的现代游戏引擎(本书案例采用了Unity引擎),开发者能够专注于游戏层面的设计,从而避开了更加复杂的底层逻辑,这极大地缩短了游戏开发的周期。
在游戏行业“大爆发”的过程中,出现了一个看上去与众不同的游戏类型——独立游戏。与独立乐队表演独立音乐、独立导演拍摄独立电影、独立科研小组研发独立科研项目类似,独立游戏开发者开发独立游戏。从狭义上讲,人们往往认为“独立”是相对于“商业”的,任何受到商业公司或组织干预的事物都不是“独立”的,“独立者”应当独立解决所有问题而拒绝“不独立”的部分。这听上去像是一群狂热的“独立精神”信徒信奉的“教规”,让普通人觉得与之沾边的人充满了矛盾与自负,反主流又难独善其身。
部分读者也许看过2012年上映的纪录片《独立游戏大电影》。该片记录了4名游戏开发者个人英雄主义般的故事,他们是身患糖尿病的《超级食肉男孩》开发者Tommy Refenes、与Tommy Refenes同为《超级食肉男孩》开发者的失语症患者Edmund McMillen、对游戏行业深恶痛绝的《Fez》开发者Phil Fish,以及历时三年完成《时空幻境》的天才开发者Jonathan Blow。也正是在这之后,独立游戏被人们提到的次数越来越多,片中无处不在的“独立精神”感染了无数游戏开发者。人们以他们为榜样,纷纷以独立游戏开发者的身份投入到行业之中。有人希望复制他们的成功,有人希望继承他们的荣耀。无论出于什么目的,独立游戏作品如雨后春笋般出现,就连许多商业游戏公司对其也表现出了前所未有的支持态度。
笔者既不推崇对“独立精神”的盲目崇拜,也不忽视其所拥有的正面力量,任何偏离客观事实的主观臆断都不利于我们在某一领域的长远发展。就本书写作目的而言,笔者希望与读者分享的是对独立游戏开发尽量客观的认识和贴近实际的经验,给想要了解或投身独立游戏开发的人们提供一条可供选择的学习途径。请勿将本书涉及的知识理论看成权威分析,也不要把本书中展示的开发流程视作唯一标准。笔者深知能力有限,书中难免出现错误或不合理的地方,望读者阅读后能从中汲取符合自身需要的知识。更重要的是,任何时候都不要忘记保持独立思考,对所谓真理常持怀疑态度,对善、恶、美、丑保持清醒判断。
本书配套资源
作者为本书的部分内容录制了96分钟配套教学视频,以方便读者更加高效地学习。需要说明的是,因精力有限,作者仅对重要的章节录制了对应的教学视频,而非所有章节,请读者理解。另外,书中的案例源代码文件也都会提供给读者。
本书的配套教学视频和案例源文件需要读者自行下载。请在华章公司的网站www.hzbook.com上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到“配书资源”下载链接,单击该链接即可下载。
本书读者对象
本书第1篇适合所有想要了解独立游戏开发的读者阅读,第2、3篇则适合有一定C#或Java编程语言基础的游戏开发初学者阅读。
虽然本书有对编程语言知识的要求,但并不包括对编程语言底层特性和复杂技巧的运用。就C#语言而言,Unity引擎将其使用难度降到了脚本语言的水平,因此读者无须全面学习C#语言知识,仅掌握其基础即可,这对于对游戏开发抱有强烈兴趣的读者来说应该不是问题。不过,即便本书对编程语言的相关知识要求不高,但独立游戏开发也绝非易事。对于本书的学习,读者必须要有长期阅读、反复阅读的思想准备,并在阅读过程中亲自实践,举一反三,必要时还需要查阅其他资料,这样才能为形成自己的独立游戏开发知识体系打下坚实的基础。
本书作者
本书由王寅寅编写。作者1986年生于湖北十堰,毕业于计算机科学与技术专业,现为全职独立游戏开发者。大学毕业后曾有过3年乐队演出及7年银行从业经验。个人代表作品:在虾米音乐人发布有吉他独奏专辑《最初的篇章》;银行从业期间开发了信贷知识视频栏目《小A的拜师之旅》;在TapTap、M4399、OPPO、VIVO和Meizu等多个渠道发布过独立游戏《喷气纸机》。其他参与开发的游戏还包括《飞机终结者》《攻城象棋》《单机中国象棋》《烹饪女巫》《Secret in Story》《我亲爱的菲雅》《像素Diablo》等。
致谢
首先,我想表明的是这本书有一个大Bug:“独立”游戏其实是不存在的!所有冠以“独立”的事情也都是不实的!包括这本讲解独立游戏开发的书,读者可能认为是我一个人“独立”
近年来,游戏(本书皆指电子游戏)行业也呈现出了“大爆发”的状态。历史上我们从未像今天一样有一生都选不完的游戏,大量投入到游戏开发领域的人们创造了巨量的游戏产品。对于普通人来说,游戏开发也不再是一项高深莫测的事情。这得益于当下知识获取的便利,任何人都能够从书籍、互联网或课堂上学到游戏开发的相关知识,这使得游戏开发者的数量快速增长。而利用强大的现代游戏引擎(本书案例采用了Unity引擎),开发者能够专注于游戏层面的设计,从而避开了更加复杂的底层逻辑,这极大地缩短了游戏开发的周期。
在游戏行业“大爆发”的过程中,出现了一个看上去与众不同的游戏类型——独立游戏。与独立乐队表演独立音乐、独立导演拍摄独立电影、独立科研小组研发独立科研项目类似,独立游戏开发者开发独立游戏。从狭义上讲,人们往往认为“独立”是相对于“商业”的,任何受到商业公司或组织干预的事物都不是“独立”的,“独立者”应当独立解决所有问题而拒绝“不独立”的部分。这听上去像是一群狂热的“独立精神”信徒信奉的“教规”,让普通人觉得与之沾边的人充满了矛盾与自负,反主流又难独善其身。
部分读者也许看过2012年上映的纪录片《独立游戏大电影》。该片记录了4名游戏开发者个人英雄主义般的故事,他们是身患糖尿病的《超级食肉男孩》开发者Tommy Refenes、与Tommy Refenes同为《超级食肉男孩》开发者的失语症患者Edmund McMillen、对游戏行业深恶痛绝的《Fez》开发者Phil Fish,以及历时三年完成《时空幻境》的天才开发者Jonathan Blow。也正是在这之后,独立游戏被人们提到的次数越来越多,片中无处不在的“独立精神”感染了无数游戏开发者。人们以他们为榜样,纷纷以独立游戏开发者的身份投入到行业之中。有人希望复制他们的成功,有人希望继承他们的荣耀。无论出于什么目的,独立游戏作品如雨后春笋般出现,就连许多商业游戏公司对其也表现出了前所未有的支持态度。
笔者既不推崇对“独立精神”的盲目崇拜,也不忽视其所拥有的正面力量,任何偏离客观事实的主观臆断都不利于我们在某一领域的长远发展。就本书写作目的而言,笔者希望与读者分享的是对独立游戏开发尽量客观的认识和贴近实际的经验,给想要了解或投身独立游戏开发的人们提供一条可供选择的学习途径。请勿将本书涉及的知识理论看成权威分析,也不要把本书中展示的开发流程视作唯一标准。笔者深知能力有限,书中难免出现错误或不合理的地方,望读者阅读后能从中汲取符合自身需要的知识。更重要的是,任何时候都不要忘记保持独立思考,对所谓真理常持怀疑态度,对善、恶、美、丑保持清醒判断。
本书配套资源
作者为本书的部分内容录制了96分钟配套教学视频,以方便读者更加高效地学习。需要说明的是,因精力有限,作者仅对重要的章节录制了对应的教学视频,而非所有章节,请读者理解。另外,书中的案例源代码文件也都会提供给读者。
本书的配套教学视频和案例源文件需要读者自行下载。请在华章公司的网站www.hzbook.com上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到“配书资源”下载链接,单击该链接即可下载。
本书读者对象
本书第1篇适合所有想要了解独立游戏开发的读者阅读,第2、3篇则适合有一定C#或Java编程语言基础的游戏开发初学者阅读。
虽然本书有对编程语言知识的要求,但并不包括对编程语言底层特性和复杂技巧的运用。就C#语言而言,Unity引擎将其使用难度降到了脚本语言的水平,因此读者无须全面学习C#语言知识,仅掌握其基础即可,这对于对游戏开发抱有强烈兴趣的读者来说应该不是问题。不过,即便本书对编程语言的相关知识要求不高,但独立游戏开发也绝非易事。对于本书的学习,读者必须要有长期阅读、反复阅读的思想准备,并在阅读过程中亲自实践,举一反三,必要时还需要查阅其他资料,这样才能为形成自己的独立游戏开发知识体系打下坚实的基础。
本书作者
本书由王寅寅编写。作者1986年生于湖北十堰,毕业于计算机科学与技术专业,现为全职独立游戏开发者。大学毕业后曾有过3年乐队演出及7年银行从业经验。个人代表作品:在虾米音乐人发布有吉他独奏专辑《最初的篇章》;银行从业期间开发了信贷知识视频栏目《小A的拜师之旅》;在TapTap、M4399、OPPO、VIVO和Meizu等多个渠道发布过独立游戏《喷气纸机》。其他参与开发的游戏还包括《飞机终结者》《攻城象棋》《单机中国象棋》《烹饪女巫》《Secret in Story》《我亲爱的菲雅》《像素Diablo》等。
致谢
首先,我想表明的是这本书有一个大Bug:“独立”游戏其实是不存在的!所有冠以“独立”的事情也都是不实的!包括这本讲解独立游戏开发的书,读者可能认为是我一个人“独立”
评论
还没有评论。