零代码基础独立游戏开发经验分享--前后端的开发


零代码基础独立游戏开发经验分享--前后端的开发


前端可玩性DEMO的开发

准备工作搞得差不多,项目开始正式启动了。第一阶段是制作一个单机可玩的DEMO,验证玩法。用dota来打比方的话(再次重申我做的不是moba),就是先把地图做出来,小兵的刷新机制,防御塔的简单AI,胜负判定条件,以及1-2个可用的英雄,但是缺少道具和商店以及相关的逻辑。

这阶段最大的特点就是,每天要实现的功能我都不会做~哪怕是最基本的旋转移动物体。解决办法就是上百度直接搜“unity 如何让物体围绕自身旋转”。看完几页链接的代码再去查一下API,95%的设计都能实现出来。

由于每天都是先搞“研究”再开工,所以工作量不太好估。有时候我以为很困难的功能,做起来1个小时就完成了。也有时原本认为超级简单的东西,要做上好几天。因此这个阶段没有定非常严格的开发计划,只是以周为单位设计大体的实现目标。坦白讲,每天都学到新东西,把以前不知道怎么实现的东西通过自己的双手做出来,还是一件很有成就感的事。每一个机制,每一个功能对于代码菜鸟的我来说都是挑战,通过攻克这些难关,我切实的感受到了所谓的“心流”体验。

初期有一个问题,就是unity和VS的报错信息看不懂。多亏了我有很多优秀的前同事,遇到看不懂的报错信息就QQ打扰他们,也不好意思总打扰一个人,就轮着挨个骚扰……还好报错就那几种,两只手数的过来,大概一个月以后,绝大多数的编译错误和unity报错都能自己解决了,也在此感谢前同事们的支持~

由于并不打算用这个DEMO去融资什么的,因此美术效果全部没有用心做,比如UI部分是上unity商店买了一套最便宜的,特效部分也是从简,只要能表现出逻辑即可,没有花时间细调。

前面写过我想做异步对战的游戏,因此需要将一名玩家的所有配置(类比COC中的基地布局)保存为一个尽量简化的类,这个类数据还应该具有一定的可读性,为后面的调试工作打好基础。比如我想更换一件装备或者修改一个配置,不管这个类数据是存成字符串还是保存在服务器上,应该都能直观的看懂配置并直接加以修改。

这个阶段大约持续了2个月左右,单机DEMO已经制作完毕,一次单独的游戏流程(类比DOTA的一次游戏)可以完整的循环起来。

单机存档以及道具相关系统的开发

游戏流程能跑通以后就需要开发道具(或装备)相关的系统,我们需要一个背包,玩家能对道具进行获取,装备,合成,贩卖等操作。这个背包的数据暂时用xml文件保存在本地,做后端时再改格式。同时也包括一整套的背包UI。

由于一个人的精力十分有限,因此与道具相关的系统设计要尽可能的精简,要素越少,逻辑越清晰,QA的成本也越低。因此这个游戏的道具系统没有像通常的卡牌手游那样有大量的狗粮卡牌和复杂的升级数值。以我个人看来基本上精简到了极致。

整个的背包UI基本上就是参考NGUI的范例写的,反正这种代码谁写出来都差不多,自己写完能看懂就行。基本上还是兵来将挡水来土掩,哪里不会就直接百度查,UI丑一点也没事,资源到位后换图还是挺快的。


零代码基础独立游戏开发经验分享--前后端的开发

NGUI的范例挺强大的


这个过程大概一个月左右。

这两个阶段过后,已经有了一个非常粗糙的游戏原型。下一步是开始做后端。

后端的开发

后端的部分有一个曲折的过程,一开始我想的是把整个后端部分外包给前同事做,反正功能都比较简单,工作量不大。后来想了想还是自己先摸索一下做着试试。于是我先咨询了一下,资深程序同学告诉我大部分后端是用JavaScript或C++写的,相对来说JavaScript相对容易点。故技重施,去网上下教学视频,从头开始学。学到第二天的时候我躺在床上突然想到,有没有C#写的服务端呢?有的话岂不是省掉学语言这一步了?上网搜了一下还真有,有个“光子引擎“是用C#写的,有些上线的手游和页游是用这个引擎做的。在开发阶段也不收费,免费的key可以支持100人同时在线,完全可以满足开发的需求。

就这样我去下了一个光子引擎的教学视频,用了两周时间跟着视频做了一遍,从初始配置开始搞,到后来能在本地正常的传递信息。完成视频教程后照葫芦画瓢回到自己的项目,首先是把需要存在服务器的信息(玩家账号信息,背包信息,装备配置等等)从存储在本地的xml字符串转化成MySql数据库,重写所有的解析方法。花了一周时间尝试一个插件,将客户端和服务器传递的信息统一为相同的类,确实比用JavaScript写后端省事……省的在两种语言中来回解析了。最后大概用了两个月时间,在本地已经能实现unity和服务器之间的正常通信。


零代码基础独立游戏开发经验分享--前后端的开发

光子引擎


这个过程肯定不像说起来这么简单,其中遇到的各种困难没法细说。比如说最开始遇到的问题是服务器和MySql的报错信息看不太懂,不知道怎么解决,只能靠猜着改。这个事还不太好问前同事,因为多数前同事都是用JavaScript和C++写服务器的,没几个人用这种付费的商业服务器引擎……也不好意思把整个工程发给别人,让他们看整个前后端代码DEBUG。幸好没遇到什么解决不了的问题,也是做到一个月左右,所有的报错和异常都能自己解决了。


上真机调试

前后端在本地调试成功后,下一步是上IOS真机调试。这个事分两步,第一步是将后端和MySql挪到云服务器上,第二部是IOS真机打包。

一开始我尝试了一下亚马逊云,后来转念一想还是用腾讯云吧,等到真的想做海外市场时再租腾讯云的海外节点就好。我以为用云服务器就得用他们的数据库,后来一个哥们一语点醒我,直接租一个便宜的windows服务器,把MySql和服务器程序直接放上去就好了。在研发阶段只租配置最低的就好,一个月不到200块,价格还可以接受。

PC端和云服务器调通以后,下一步要打IOS包了。打包需要mac,上苹果官网买了一个比较新的mac mini,接到电视上再配一套键盘鼠标,准备工作就做好了。之后去整一个开发者账号,发现普通的VISA信用卡还不好使……申请开发者账号原来需要银联和VISA或MasterCard双标信用卡才可以……又花了点时间重新申请信用卡。开发者账号和mac都到位后照着百度上搜的流程开始尝试打包。


零代码基础独立游戏开发经验分享--前后端的开发

真机测试


在自己手机上成功安装自己打出来的游戏包还是挺有成就感的。但测试的时候遇到了一个尴尬的问题,手机连接云服务器的时候,一部分通信信息传递不正确……可以成功登陆,说明玩家的用户名和密码可以正确的传递,但是背包信息确是乱的……但PC端就没这个问题。这种模拟器上没事,真机莫名出现的bug就很烦。自己尝试着改了两天没有什么头绪,于是我去unity商店买了一个小插件,一个用于mobile游戏和服务器通信的解析插件。用了发现还是不行……但这个插件是收费的,于是我名正言顺的给插件作者写邮件求助。好久没写英文邮件了不太熟练,尽量把情况和报错信息都贴了过去。这位美国大哥人还挺好,第二天就给我回了邮件,告诉我几种可能的解决办法。综合他的回复,再去unity官网论坛查了一下,终于定位了原因,需要将转译插件及相关方法特殊处理。这个bug花了一周的时间才解决掉,从此手机端和云服务器也跑通了,写了一封热情洋溢的邮件给这位大哥表示感谢。

至此,技术上的瓶颈基本上都克服了。这个过程稍微有点曲折但还算顺利,基本上还是按照原来的开发计划在走。当然还有一些隐患在,比如没有经过压力测试,一两个人登陆没事,玩家人一多服务器会不会挂掉?不过既然已经有成熟的商业项目用这个引擎做到上线,想必是有成熟的负载均衡解决方案吧。走一步算一步。


分享到:


相關文章: