本书将独立游戏开发分为了三个部分。第一部分我们尝试对独立游戏开发进行相关理论分析。第二部分侧重实践,我们首先对游戏进行了简单设计,再使用Unity展示了一款2D Android游戏的具体开发流程,案例专注于游戏层面的设计与编码,不包含晦涩难懂的底层逻辑。第三部分专注于如何使用游戏创造收入,包括使用GooglePlay渠道发布游戏、植入广告、在游戏内创建虚拟商品、实现内购功能等。
本书第一部分适合所有想要了解独立游戏开发的读者,第二、三部分则适合具有一定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
- 12.4.2 脚本逻辑230
- 12.4.3 死亡弹出按钮232
- 12.5 游戏开始界面235
- 12.5.1 开始与关闭游戏按钮235
- 12.5.2 主角切换开关237
- 第13章 游戏收尾241
- 13.1 3秒倒计时241
- 13.1.1 游戏对象241
- 13.1.2 脚本逻辑242
- 13.2 位置提示线245
- 13.2.1 游戏对象245
- 13.2.2 脚本逻辑246
- 13.3 坏结局与通关247
- 13.3.1 心爱的姑娘247
- 13.3.2 抵达终点249
- 13.3.3 游戏通关界面253
- 13.4 音乐及音效257
- 13.4.1 游戏音乐257
- 13.4.2 游戏音效259
- 第3篇 独立游戏开发创收
- 第14章 游戏发布272
- 14.1 运行在Android平台上272
- 14.1.1 PlayerController脚本修改272
- 14.1.2 手机开发者模式274
- 14.1.3 构建与运行275
- 14.2 GooglePlay渠道277
- 14.2.1 启动PLAY管理中心278
- 14.2.2 创建应用并设置版本280
- 14.2.3 完善其他条目282
- 14.2.4 发布游戏284
- 第15章 AdMob广告289
- 15.1 AdMob简介289
- 15.2 AdMob管理中心289
- 15.2.1 进入AdMob管理中心289
- 15.2.2 添加应用291
- 15.2.3 创建广告单元292
- 15.3 复活及广告展示逻辑296
- 15.4 导出游戏工程300
- 15.5 接入AdMob广告SDK301
- 15.5.1 导入广告SDK301
- 15.5.2 更新AndroidManifests.xml文件303
- 15.5.3 初始化广告SDK304
- 15.6 植入广告306
- 第16章 GooglePlay内购309
- 16.1 复活宝石309
- 16.1.1 游戏对象及按钮309
- 16.1.2 脚本逻辑310
- 16.2 内购逻辑314
- 16.2.1 更新AndroidManifests.xml文件315
- 16.2.2 导入GooglePlay结算SDK315
- 16.2.3 GooglePlay结算服务316
- 16.3 发布新版本319
- 16.3.1 构建新版本Apk319
- 16.3.2 上传新版本Apk321
- 16.4 应用内商品323
- 16.4.1 设置商家账号323
- 16.4.2 创建受管理的商品324