关于小游戏与app发布内容有所不同的一个解决方案讨论

产生原因:

大家都知道小游戏性能的确不敌app,所以,项目在发布小游戏的时候,为了保证流畅度,在保证品质的情况下,除了进行一些资源优化外,还会对粒子特效等一些内容进行删减,而app发布的时候,保留了100%的内容,那么问题就来了,随着项目的迭代,app和小游戏始终是存在一些差异,最终不得不面临一个发布上的问题。

解决方案

项目在制作过程中肯定是100%内容的开发,仅仅是小游戏平台会做一些精简,以下是我能想到的一些解决方案,各有优劣

  • 解决方案1

  • 代码同时兼容app、wx,即wx和app用的是真正的一套代码

    • 优点:仅仅维护一套代码
    • 缺点:
      • 代码为了兼容app、wx,各种 if else 判断,项目越负责,维护成本越高
      • app、wx的内容可能容易窜,本来wx上不显示的,结果app上没有显示,也就是上边说的维护成本高,想要玩转,需要从代码架构上去解决这个问题,而不是依靠各种逻辑判断
      • 因为真正的共用一套代码,所以连资源都一模一样,即使,wx上没有使用到这个资源,也要加载,因为app也用到了
  • 感觉弊大于利,不是很推荐这种方式

  • 解决方案2

  • Git分支:大家都在APP分支上开发,然后,发布微信小游戏的时候,切换到wx分支并与APP分支进行合并,然后对wx分支做必要的修改

    • 优点:共用同一份代码,wx分支代码仅仅是对app分支的一个修改
    • 缺点:
      • wx分支只能跟app分支合并,而app分支 禁止 和wx分支合并,至于为什么?你懂得。
      • 如果wx分支要精简的内容过多,app、wx分支其实差异已经很大了,而app禁止和wx分支合并,导致app作大量修改的话,可能wx分支合并会出现很多问题,最终导致wx分支合并app分支后的不能使用,慢慢的2个分支会发展为2个项目
    • 感觉这种方案只适合少量的差异
  • 解决方案3

  • 方案2 进行优化,公共逻辑提取出来,公司不缺钱的话,直接分2个项目组,app和h5

最后

不知道大家有什么好的解决方案,欢迎赐教

两个工程

直接一个h5工程,打包app就建个webvive怎么样

关键是wx要做删减,app保留100%的内容,你这个思路估计就是按照精简的制作开发了

个人的看法:
公共逻辑提取出来,需要分平台的,
每个平台单独的实现方式,统一接口,使用manager做为入口以及统一管理

资源的话使用一些自动化的工具根据打包平台进行导入同步
不过这样的话打包微信或者快游戏的话代码会比较多,不过由于开发的时候就做了处理,可以直接写个工具直接删代码就行

我们现在用git分支的方案,不同的是可以在分支间合并,但需要注意的是要减少提交的粒度,将可以合并的修改单独commit,然后通过cheery-pick单独将commit合并到分支。这需要很细心的工作,确实也比较麻烦。

马克下。

我会采用这种方式,总之不会写两套代码,也不会用两个分支。