魔扣论坛

魔扣源码论坛业务
查看: 2548|回复: 11

《种子净化之旅》业余开发经验与心得分享49 分钟前

[复制链接]
  • TA的每日心情
    开心
    2016-3-9 17:30
  • 签到天数: 1 天

    [LV.1]初来乍到

    25

    主题

    1

    回帖

    12

    积分

    魔扣新手

    Rank: 1

    魔扣币
    3
    贡献
    3
    威望
    8
    发表于 2018-8-12 22:18:19 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    前段时间笔者在知乎上分享了我们团队如何在业余时间里开发《种子净化之旅》(iOS / Android)的过程,得到了一波业内媒体的转载以及小伙伴的关注,今天就和大家再聊聊其中的开发经验与心得。
    会开发游戏不等于会做游戏,会做游戏更不等于能创业。一开始我们并非抱着共同创业赚大钱才开始用业余时间做游戏的,只是有了闲工夫不做白不做,基本当成课外兴趣小组,能赚点外快买买喜欢的游戏就好了。
    我们3个人不全在同一个公司,美术Fang的上班时间比较苦,朝十晚十大小周;Joker和K是夫妻档,上班时间弹性比较大,做游戏的时间基本上是晚十点到凌晨两三点,周末差不多也都砸在上面。没有休息娱乐很容易心态爆炸,所以隔三差五的还是要放松一下,吃顿饭看个电影玩玩游戏什么的。创业者可就不一样了,是一群全身心投入的殉道者,比我们苦逼无数倍。
    做什么级别和类型的游戏,肯定要根据自身资源、能力和优劣势来决定。像我们这样,一个场景美术和一个程序,没有策划和动画,毫无“诗和远方”的一群死宅,显然得回避那些需要大量角色动画和特效、数值模型复杂、需要表现剧情的作品。可以考虑的游戏其实很有限,有关卡设计的小游戏已经是极限了。
    以下是三位成员的自述,希望对各位有所启发和帮助。
    关于计划 & 设计
    基本工具:
    Worktile:制定任务清单,标明负责人、截止日期和优先级;
    百度网盘:上传设计文档和美术资源;
    SVN:程序和关卡设计经常需要双线程作业,合并任务。
    刚开始那一阵子并没有什么完善的计划,谁弄好了一些东西告诉其他人,然后看情况继续弄,懒癌犯了的时候就想——太监们不急我皇上急什么?每个人都有惰性和侥幸心理,今天好累我看完这集电视剧……诶?都在玩游戏,那我今天淘宝吧。 一个个只想冲排位,能做完才怪。
    玩到一定程度人就会陷入大好年华一事无成的巨大恐惧中,必须有个人出来制订计划和管理项目进度了。洗心革面从此开始,写文档、做示意图,策划并不是想几个点子玩过一些游戏就可以拍脑袋瞎指挥,逻辑实现层面的东西完全是一点不懂,和Joker在功能上总是吵的夫妻不和,和Fang的沟通也不是很积极,意思传达有很多不明确的地方也就任其自由发展不管不问。躺在床上,绞尽脑汁想出几个元素,梦里编关卡,憋出十个关卡,赶紧发给美术和程序,然后继续憋后面章节的元素。
    每个周末大家争取碰个面,看着引擎里的画面,商量各种细节。章节地图如何表现?要不要有三星通关?角色形象不够显眼最后要重做啊!道具真的有人会买么?雨点的角度能不能再偏2度?有些小细节看上去特别简单,然而最终它会是那个样子可是经过了来来回回的数次交流。第二章做的时间最长,因为元素最多,但是同时也觉得这一章最有意思;做第三章的时间变得很赶,Joker强烈表示不许再加复杂功能,所以基本都是前面功能的美术变形。
    到了最后阶段,简直和打仗一样,每个人的任务清单下面都有看起来无穷无尽的任务。任务列表分为“周目标”“设计”“程序”“美术”“音乐音效”“市场”“已完成”几个条目,有时候完成一个任务会发现后面又增加了四五个带着自己头像的小标签,内心极度崩溃。
    内测时也不知道具体操作是什么流程,要测些什么,传说中那些高大上的数据也不知道怎么分析。后来从朋友那知道了Testflight,两周后提交给苹果公测,一大堆繁琐的提交程序,没想到很快就通过了。收到邮件时激动地奔走相告,邀请一帮亲朋好友来测试,收到各种喜忧参半的反馈,一堆Bug,一堆建议,晚上整理好之后把一个个修改任务写到Worktile相关人员的名字下面,不可能修改的尽善尽美,在能力和时间范围内能改的都改了。
    用Worktile分配任务和控制进度
    苹果提交上线是个痛苦的过程,本地化、排行榜、截图格式、视频尺寸、上传环境……各种坑。一定要好好看官方手册提前做好准备,弄了一个通宵终于成功提交,接下来就是等等等,三天后突然收到苹果邮件通知已上架,开心得不能自已。
    一些心得:
    1、如果不是资深内行,一开始只是做游戏练练手,最好先选择游戏机制简单的,有多简单就看你能用几句话把玩法说清楚,可以把更多的精力放在去思考如何让游戏在表现上更有趣或是体验更独特上面。比如同样是节奏游戏,玩法却能千差万别,可以做成《劲舞团》也可以做成《啪嗒砰》,避免洋洋洒洒做一堆东西结果玩起来一点乐趣都没有,我们就在这上面吃了鳖。
    2、做游戏很大程度上能体现出制作者的性格,因为多多少少能透露出制作者的知识结构或者爱好品味。如果想做出真正“创新”的游戏就要提高自己的见识和脑洞;想做出特别有“内涵”的游戏就要提高自己的思想深度;想做出能打动人的剧情就要提高自己的文学修养和叙事水平……一个自身就很无趣或者无知的人是做不出有趣或感染人的牛×游戏的。
    3、如何听取别人的建议是个技术活,什么都听会变得迷茫,什么都不听容易闭门造车,起码在成为大神之前你不能说出“老子做老子的游戏你们别逼逼”这种话。要学会从别人的建议里提炼出真实感受,再针对这种感受去想合适的解决方案,交流的时候也重在提问“这里你有什么感觉?”,而不要问“你对此有什么建议?”。越是小白玩家越是经常会说出有用的信息,反而越是“高级”玩家、越是爱班门弄斧提出“专业”意见的,却不见得正确。
    4、界定是“设计问题”还是“美术问题”。有一次因为一个UI问题和Joker大吵一架,我觉得这是一个关于操作体验的问题,他觉得这是一个美术表现的问题,不该我来决定。抛开该由谁决定这个问题不谈,重点应该是到底怎么样才能让体验更好。这种争论没有什么意义纯属浪费时间,有时还不如直接做出来看效果快。
    5、测试时花时间做了一些调查问卷,用微信就可以分享和提交,很方便。这些问卷起到了一些作用,让我们能有条理地总结各方面反馈,方便在最后完善阶段拿出来对照再思考和了解,需要完善的功能需要记录下来排优先级,改动太大可能会造成巨大Bug,存在让游戏完全运行不下去风险的功能只能靠后排。
    关于程序
    一、想好了再做
    最初只是想做一个游戏走一遍上架流程,积累一些经验。Fang开始说这个游戏把角色移动到终点,一关就结束了。当时我就知道关卡设计才是这个游戏的乐趣所在,所以不断向他强调关卡设计的重要性,他说没问题,我来弄几个示意图就好。虽然很不安但想着只是想把游戏弄上架而已,于是就这么答应了。结果应验了我人生中犯下的最经典也是屡教不改的错误:一开始有些担心但没想太多就接着做了,然而这个没想好的问题之后就一定会爆发而且会把我菊花炸烂(以前主要是程序上犯这个问题,这次设计上也炸了)。
    一天之内我就实现了第一个原型,角色会像屏幕点击的位置移动,当时还做了一个弹簧,如果角色碰到会让他像镜面反射一样运动。但是玩起来实在太无聊了,游戏品质到了一个我完全不能接受的无聊程度……必须得找一个人来设计关卡。因为这个问题,我一度搁置这个项目好几个月,最后我老婆变成了这个人。
    二、交流
    程序整体由我一个人做,和在公司两个程序一起做有鲜明的区别,交流效率真是天差地别!我认为主要有以下两方面原因:
    1. 思路不同
    每个程序应该都遇到过这个问题,同一个需求的实现方法通常会多于两种,就算只有两种不同的方案,两个程序刚好想到同样的解决方案的概率只有四分之一,更别说大于两种了。这就造成了解决方案层面的争执,显然一个人做不会有这种问题。(当然主程主见很强也不会出现这种情况,可惜我们公司的主程并不是这种类型)。
    2. 表达能力和理解能力
    我和我们主程的合作在交流上有很大阻力,具体原因不方便说。但是就算是表达能力和理解能力超群的两个人交流肯定也比不上一个人(这概率太小了),毕竟交流这东西就像A把脑子里想的东西(数字信号)表达出来(转换成模拟信号),B把A表达的东西(模拟信号)理解到脑子里(转换成数字信号)。每次转化率必然小于100%。流失得越多,之后造成的问题也越多。
    3. 迭代式开发
    每章的内容是流水线式制作,也就是第一章想好了之后,策划告诉我,然后我做第一章,她继续想第二章。其实这个过程相当蛋疼,软件工程中需求是完整的情况下失败的项目都一堆一堆的,这居然还是个变化需求……也许这就是游戏开发比其他软件开发特殊的地方吧。当时我在每一章的制作过程中都仔细考虑过设计模式和扩展性问题,然而结果是然并×,之后我反省了一下其实是由于以下几个原因造成的:
    (1)一章就那么多关,就那么几个可交互对象,拓展可能性其实不大。
    (2)需求变化的可能性非常大,如果一个基类有很多子类的通用行为,万一一个子类行为需要改而且和之前抽象的基类行为无法统一的时候,就会导致大片的重构。所以最好的方法我认为是如果策划不是程序,千万别太早抽象基类的行为,绝对不要傲慢到认为自己可以考虑到别人想到的所有变化。
    (3)制作过程中程序真的需要很积极地和策划交流,告诉他们哪些做起来容易:有些新功能我写个子类加一句代码就搞定了,有些新功能可以直接让我跳楼。与其不停地实现新功能,不如多多交流在有限的时间内以最小代价来更多地增加游戏趣味性。
    (4)制作过程中程序也需要积极地和美术交流,因为很多效果Fang不知道实现起来是否容易,性能和体积上是否允许。我们游戏中的很多粒子特效其实是我做的,但是Fang要站在我旁边看着我调。虽然增加了一些工作,但是会让游戏视觉效果看起来更好。我认为效果和可行性中间往往存在这一个平衡点,就好比全局光线追踪和UE4的光照算法,效果(我看来)大概差了10%~20%,但是性能上的提高是好几个数量级。补货大部分美术和程序之间交流都很不到位,所以这个平衡难以找到,我想这就是为什么能做出特别的美术风格的游戏厂商并不多的原因吧。
    4. 为什么不用瀑布式模型
    一开始我认为,在理想的情况下应该直接以瀑布型模型来开发游戏,但程序写久了之后发现这不可能,因为游戏一定需要做出来看到底好不好玩,所以需要原型,只有确定了原型之后才能继续进行,而且每个元素在制作过程中都需要不断测试,不可能一开始就把游戏的所有需求让我画好UML再做。我只能说如果想做一个好玩的游戏,瀑布式模型我认为行不通,起码我没见过游戏制作人可以在游戏做出来之前就确定这样一定好玩,就按文档做。
    5. 本地化
    Unity的Text其实做起本地化非常容易,只要有一个带有通知机制的单例和一个配置文件,再给Text挂一个Listener很轻松就搞定了。我们主要是大概能写的语言就那么3种,要不然肯定所有语言都一起做了。主要有以下几个小收获:
    (1)字体可以使用FontCreator将体积从12MB左右减小到1MB左右(常用字都在前面,从最后一个你认识的字开始,后面都可以删了)。
    (2)Unity载入字体Asset是OnDemand的,如果有动画,第一个引用字体的对象Render的时候会出现Performance Peak。解决办法有两个,把第一个引用字体的对象在Start中Disable掉;把字体加入Preload Asset中。
    6. 移动平台开发
    iOS和Android我都没做过本地开发,基本有问题就Google了。好在Unity在5.3中提供了集成的IAP让我赶上了,不过还是发现了几个坑,仅分享给像我这种没搞过平台开发的菜。
    (1)iOS的Texture Compression简直惨绝人寰,质量丢失太多,尤其是Alpha。相比起DXT简直Low爆了……偏偏单独打包Alpha目前只有安卓有(我用的是Unity 5.3.1)。最后我好不容易Pack好的Square Atlas又全改成ARGB,现在我一想起来蛋还是隐隐作痛。
    (2)iOS中的不可消耗商品必须要设置恢复购买按钮(之前有个应用因为这个原因被拒,当时我是优化了操作不想让玩家多点一下自动帮他恢复,但这样做苹果也不允许实在不解)。对于这份傲慢我也只能默默地再骂苹果几句,相比之下谷歌的自由度就高了很多,能不能消耗完全由开发者决定。
    (3)Unity对于Google Play的IAP真的是一点文档都没有,对于我这种没有开发经验的人异常痛苦。最后在网上终于找到了一份DOC文档搞定了,Unity这把真的把我坑到家(文档下载链接)。
    (4)Play Games(0.9.27a)和Admob(2.3.1)的Unity插件是有冲突的,放在一起无法直接编译通过,需要做以下步骤:
    ① 不要复制google-play-services_lib文件夹;
    ② 复制android-sdk/extras/google/m2repository/com/google/android/gms/play-services-ads/8.4.0 到 /Plugins/Android.
    ③ 删除Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xml中的activity android:name=”com.google.android.gms.ads.AdActivity” android:configChanges=”keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize”
    ④ 如果你也使用的Unity的IAP,还需要删除Plugins/Android/GoogleMobileAdsPlugin/lib/in-app-billing-service-aidl.jar
    以上弄完之后就可以编译通过了,但是广告内容暂时没测,不知道会不会有什么问题。以上资料都来自Google Play Games Unity Plugin的官方GITHUB中的ISSUE。具体的原因可以上去找找(链接在此)。
    用来提升渲染性能的unity自研发插件
    (5)为了减少Drawcall,我把大部分散图都Pack到了一张Atlas中,Atlas的尺寸和Sprite的部署都需要注意。Atlas尺寸过大虽然可以有效减少Drawcall但是太吃内存,因为载入了根本不需要渲染的Texture。尽量把会同时出现的Sprites Pack到一起才有意义。否则Drawcall的数量减少会不明显(为了Pack成Square POT的Atlas我还专门写了个小工具,非常简单大家有兴趣可以自己试试,懒得写就Email我我给你发过去,实在写的太简陋不好意思拿出来)。
    (6)没必要盲目优化。这个游戏的Drawcall数量在UI界面大概在15左右,关卡内在30~40左右,大部分机器运行时基本不太可能有什么问题。其实之前没PACK过也Drawcall也没破百,其实这部分工作我认为真的是纯积累经验了,效果并不大,因为玩家几乎是感受不到差异的,除非是设备非常惨的用户。
    关于美术
    毕业前一直都执着于做纯艺 ,对游戏美术的概念非常模糊。当时最常见的是页游网游上各种炫酷仙侠修真之类的原画,于是就本能地把游戏美术和艺术生硬地切割开了。
    随着对行业见识的增长,后来接触了一些风格独特的独立游戏,发现并非我想象的那样只有仙侠才受欢迎。比如刚接触到《纪念碑谷》时心里仿佛遭受了一记重拳,对于当时见识浅薄的笔者来说,这可谓是一种把艺术与游戏结合的里程碑式的尝试。艺术是可以横向发展,相对游戏美术来说只是呈现的方式不一样罢了。游戏绘制同样可以是自我情绪的宣泄,同样能表达自我,一点都不冲突。这样的思路可能在画风上给予更多的视角,无意中产生了一种新的画面效果或绘画方式,这就是属于自己的干货。
    坑掉的放置RPG游戏部分界面
    做游戏时不会一拿到文件就开始画素材,而是快速画好大量草图,将界面中的场景、文字、图片布局等等配合程序原型,结合游戏玩法在心里有一个全面清晰的概念和感觉之后,再去细致地绘制每一张图每一个素材。在开发游戏项目时这样做的好处非常多,为了让游戏更好玩往往会在中途频繁地进行修改,当游戏跑起来确定了整体感觉后,心里更清楚该往哪里添砖加瓦。最后再精雕细磨,加细节、加特效、丰富画面。
    最后寄语
    团队合作模式有很多种,需要花一定的时间找到自己最适合的方式。要么做好团队建设,相互之间建立起信任、默契、尊重、鼓励,众人划桨开大船。有分歧没结论就直接做出来看,别你看不上我的点子我看不上你的设计,我嫌你理解能力差你嫌我工作效率低,负面情绪爆表相互充满怨气,这么下去项目不是草草了事就是得坑。还有一种就是团队中有“大神”,能力资历都足以让其他人信服,他交代什么其他人就做什么,这样高效的方式也能出不错的东西。
    《种子净化之旅》之前设置是0.99美元,朋友说太贵了居然要6块钱,坚决不买!(不是亲生的朋友……)名称和关键词设置也有问题,原本设想游戏就叫《种子》,结果Apple Store搜不出来,后来研究了一下貌似名字如果是使用频率太高的单个词就没法搜出来,现在游戏改名为《种子净化之旅》可以成功搜索到了!各位看官如果对我们团队的后续进展以及游戏感兴趣,还请多多关注我们呀。
       


    来源链接: http://www.chuapp.com/2016/02/17/228787.html

    该用户从未签到

    5

    主题

    258

    回帖

    522

    积分

    高级魔扣

    Rank: 4

    魔扣币
    259
    贡献
    259
    威望
    0
    发表于 2018-8-22 05:42:02 | 显示全部楼层
    求沙发

    该用户从未签到

    1

    主题

    249

    回帖

    499

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2018-10-31 13:26:13 | 显示全部楼层
    撸过

    该用户从未签到

    2

    主题

    232

    回帖

    467

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    233
    贡献
    233
    威望
    0
    发表于 2018-12-15 22:04:12 来自手机 | 显示全部楼层
    说的不错~~~',魔扣源码论坛太好了

    该用户从未签到

    1

    主题

    241

    回帖

    483

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    241
    贡献
    241
    威望
    0
    发表于 2019-4-18 20:45:09 | 显示全部楼层
    “归属感”是你强烈地想和他在一起,“安全感”是你觉得他强烈地想和你在一起。',

    该用户从未签到

    1

    主题

    226

    回帖

    453

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    226
    贡献
    226
    威望
    0
    发表于 2019-10-15 23:33:22 来自手机 | 显示全部楼层
    纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下

    该用户从未签到

    1

    主题

    253

    回帖

    508

    积分

    高级魔扣

    Rank: 4

    魔扣币
    253
    贡献
    253
    威望
    1
    发表于 2019-10-31 15:44:49 来自手机 | 显示全部楼层
    人生就像是一次浪漫的旅游,每一站都会和不同的人擦肩,有的渐行渐远、有的从此结缘,我珍惜每一个有“缘”能结识的好友,忙碌的时候、魔扣源码论坛也没能忘记你曾带给我的每一份情谊。

    该用户从未签到

    1

    主题

    254

    回帖

    509

    积分

    高级魔扣

    Rank: 4

    魔扣币
    254
    贡献
    254
    威望
    0
    发表于 2019-12-16 10:26:24 | 显示全部楼层
    边撸边过

    该用户从未签到

    3

    主题

    259

    回帖

    522

    积分

    高级魔扣

    Rank: 4

    魔扣币
    260
    贡献
    260
    威望
    0
    发表于 2020-4-9 17:53:23 | 显示全部楼层
    不错 支持一个了

    该用户从未签到

    4

    主题

    245

    回帖

    494

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    245
    贡献
    245
    威望
    0
    发表于 2020-7-20 22:13:58 来自手机 | 显示全部楼层
    突然好想你,想来看看你好不好,不管你在做什么,魔扣源码论坛记住有人一直在挂念着你哦!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表