独立iOS游戏开发者低成本开发手记兼躺平式开发流派创立过程
先打个广告,我的游戏已经上架啦,非国区AppStore可下载<hr/>纪念2月7日忽悠的第一个下载用户
基本上想到哪写到哪儿
躺平式开发流派说明
不用怀疑,躺平是真的躺平,这个游戏从我开始写到现在上架AppStore过了9年,就这样我的todo list还有一堆我原来想好但最终没完成的特性,我不知道整个知乎还有没有比我更躺的开发者。当然某种原因可能是当时我第一次学习写游戏(然而现在也就写了这么一个……)
既然是躺平式开发,进度什么的就不能成为焦虑的理由。我一开始给自己制定的计划是1年内上线,后来心态逐渐放平……写代码嘛,图的是一个开心,高兴了就写俩小时,太累了就上床睡觉,期间有几个月甚至几年时间,因为种种的事情根本就没有碰代码,坏处是某天兴致上来了想写写代码,都不记得上次写到哪了。好处是时时重温自己的代码,会不经意间迸发出“卧槽以前我写的这么牛x,自己都看不明白了!”的感叹,重新认识自己的伟大!(不是
当然我建议如果你还是奔着上线的目标而去(不管是1年还是9年),只能利用零碎的时间写代码,那么至少开发日记是一定要写的。可以写得很简单,把你要做的目标列一下,例如我会写上我的游戏道具需要增加xxx,需要开发兑换系统,需要增加音乐和音效等等,并且最好具体一些,比如在xx页面上需要增加什么信息,是不是动态展示的……等等等等,越具体越好,否则下次你不知道什么时候打开代码的时候你根本不记得要做什么事情。
另外就是,每次当你开发的兴致起来后,如果你想完成一个功能,一定要确保这个功能是验证ok的,也就是每次构建后都要确保游戏跑起来没bug,别给自己挖坑。否则下次你碰代码根本记不起来怎么改,浪费大量时间后也消耗了你的热情,导致你一段时间都不想碰它了(不要问我是怎么感悟到的……)
整体上来说,躺平式开发不是说没有目标,而是不要让目标成为你的束缚。你是一个独立游戏开发者,不是打工仔,何必自己跟自己卷呢是不是?你自己不开心,开发的游戏怎么可能让人开心呢?(不是
我们的主张是开发游戏应该是个愉悦且放松的过程,注重过程,而不仅仅是结果。
当然躺平式开发还是有些条件的,就我自己来说
[*]首先我有一份还算稳定的工作
[*]其次我一个人开发,包括前后台,美术资源,ui,游戏效果,音乐音效,都是一个人完成的(当然美术素材是找的开源资源自己切图的,风格上尽量保持统一),这就意味着不会有人催你干活——你想想平时上班被领导PAU就够惨了,下了班写写代码放松下还要被人催,你能开心起来吗?明显不符合躺平定义
[*]我确实比较懒。。。尤其是当我终于有机会闲下来了,首先想的是愉悦自己(指打游戏,不是写游戏。。。)
开发成本
我个人的性格就比较喜欢白嫖,所以能不花钱的资源不会花钱
硬件成本:一台Macbook Pro,14年买的(我不会说我是因为特别喜欢Macbook的设计买了Macbook。。。)
软件成本:
[*]iOS开发者账号服务,648 RMB/年,这个是必须的,不然游戏无法上架。当然我建议你如果第一次接触iOS开发,可以不急着买开发者服务,xcode下载是免费的,你可以先熟悉开发环境和游戏引擎,你写的代码可以跑在模拟器中,等到一切差不多了,再去购买开发者服务。
这里要讲一件事情避免大家掉坑里:我一开始学习游戏开发的头几年确实没购买开发者服务,只是注册了开发者账号,跑程序都用的模拟器,但我发现模拟器上游戏引擎似乎有bug,我用了一些物理引擎但总是出现边界判断问题,导致我一度怀疑引擎本身有问题,还花了半年时间重新写了一套mini版的游戏引擎。后来我才注意到这是因为模拟器帧率太低了,导致游戏预设帧率和模拟器无法匹配,边界条件始终存在问题。这个只能通过购买开发者服务获取provisionning文件用真机测试才能解决。我当时用的是14款macbook pro模拟iPhone8就开始有问题了,不知道现在更先进的M1 Macbook还有没有这个问题。如果你真的是因为帧率而产生问题,那你就只能开始购买开发者服务了
[*]云服务器,358 RMB/年,阿里云ECS服务器最低配(1核1G RAM+40G硬盘)。这个不是必须的,你的游戏除非有联网需求才需要这个,甚至你开发iOS内购服务也可以不需要云服务器。我呢是因为我很早其实是个服务器开发,写过不少通信服务,不写点服务器代码我不舒服(闭嘴。所以你看看这也侧面印证了躺平式开发的真谛,我写代码是我开心,不是为了完成某个人交代的任务。
另外就是如果你的游戏确实需要联网,买了云服务也不要急着买域名和证书,这都不是必须的,有公网IP就行,除非你有面向用户的网页。特别是你的前后台交互如果走https,自己签一个证书就行了。
以上就是全部开销,大概1000 RMB/年。
另外有人问到只会开发不会美工是不是要到淘宝上购买素材。以下建议针对2d游戏,3d我不清楚:如果你对美工的要求不高且初次接触游戏开发我的建议是没必要,开源素材网上一搜一大把,你也可以学着从开源素材修改成自己想要的素材,这个过程自己动手干还是很有必要的,因为你会逐渐了解到自己需要什么样的素材,比如人物的动作达到几个frame会比较自然,甚至学会像素风格绘画(当然我自己并没有学会。。。)/p>收集素材的过程本身就是一个累积,包括你再开发第二个游戏的时候,你会发现可以借用很多你之前收集的素材
至于音乐和音效,也可以采用类似办法。
iOS游戏引擎选型
其实没啥好建议的,我就开发过一个游戏,而且从开发开始就定性为2d像素风游戏(因为美工简单。。当然现在看来要做好也不简单),另外我做开发的时候主要使用的语言是C++,所以选来选去Cocos2d-x非常合适
不过现在看来用C++开发iOS游戏其实是个挺蠢的主意,首先就是C++非常啰嗦,我又是个有代码强迫症的人,光基础架构就重构了3,4回,只是为了让代码逻辑结构更清晰,复用程度更高;其次如果稍微触及一些系统调用(特别是你引入了store的kit来完成内购流程),你还是免不了和objc打交道,特别是你之前没学过objc,那你就会和我一样吃尽苦头,Cocos2d-x对于系统调用的给出的解决方案是C++和objc混写,但网上对于混写的样例不多而且还有不少错误,绕了半天你还是要理解objc的语言特性和变量类型定义才能完成混写。
所以我建议游戏引擎选择的时候还是要注意支持的语言类型,尽量别用C++。在与iOS系统调用关联的时候如果引擎能做到边界管理那是最好的
服务器选型
什么也别说了,Nodejs是永远的神!为了它学javascript太值了!
AppStore上架流程
待补充。。。
页:
[1]