109-2024-06-16周总结

  1. 关于统一后台的思考
  2. 快手小游戏问题
  3. dotnet使用publish输出有些dll不更新

1. 关于统一后台的思考

之前的想法是所有游戏用一个游戏中台,中台里面集成账号,事件,充值,游戏向接口(比如游戏列表),也按照这个部署了几个游戏。这样的好处就是其他游戏接入这些功能会比较简单,缺点就是更新迭代需要比较谨慎,影响所有游戏,同时因为是中台化,各个不同类型游戏可能会有不同需求需要特殊处理(特别是事件,每个游戏侧重点不太一样),需要有人力去汇总需求,并维护这一块代码。

另外一种方案就是每个游戏单独部署这些功能,但不是从0开始,而是通过插件引入,插件自己有条线不断维护升级(主要是合并其他游戏新增的一些通用功能),游戏从某个插件版本引入之后就独立于插件了,可以自己根据游戏类型二次开发,但如果想升级的话,就需要自己手动合代码进来。这种方案的优点就是所有功能跟随游戏进程直接部署,要部署多个环境会很方便,同时跟我上周提到的远端配置中心会更契合一点,可以随意控制配置中心将地址指向不同环境的游戏,另外人力可以下降到每个游戏自身。缺点就是如果已经二次开发过升级会比较麻烦,需要自己手动拷贝代码过来升级。但也能接受,随着插件里面的通用功能越来越多,后续要升级的情况也会更少。

所以准备给接下去的游戏使用各自独立部署的方案去做。

2. 快手小游戏问题

吐槽下快手小游戏开发体验比较差,开发工具连个模拟器都没有,同时命令行调用也没有,做不了自动化上传。另外有些报错或者函数不兼容的时候直接不返回导致卡住(比如我使用了一个btoa方法,调用了直接卡住)

另外cocos不能直接输出快手工程,但可以直接兼容微信输出的工程。cc.platform也没有快手定义,工程里面判定是否快手平台比较麻烦。

包体过大

快手小游戏上传的时候不会自动过滤.map文件,需要手动删除下,比较挫。

json里面有二进制问题

http post请求的json里面有个字段是二进制,导致二进制被截断了(在微信和抖音里面都没出现),改用base64下解决了这个问题

3. dotnet使用publish输出有些dll不更新

我们使用jenkins自动编译和部署测试服务器,使用的命令是dotnet publish xxx, 但是有些时候dll会不更新,不知道什么原因,通过手动把Debug/下的所有dll重新拷贝一次解决