美文网首页iOS Developer
刀塔传奇-公会管家的开发经历(1)

刀塔传奇-公会管家的开发经历(1)

作者: 千煌89 | 来源:发表于2015-04-23 16:18 被阅读3504次

    项目背景

    先来说说这个项目的起因。我在玩一款叫刀塔传奇的手游(真不是打广告),作为7年经验的刀狗,这款手游在内容上深深的吸引住了我,第二个区从14年8月开始玩到现在了,第一个区要追溯到14年2月。最近刀塔传奇开了新的核心玩法公会战,因为奖励丰厚,所以史无前例的撕逼大战轰轰烈烈的开始了。
    关于公会战的要素有很多,可以看下下面3个介绍,不多做展开。

    然后问题来了。
    其一:每一条路上的战斗顺序是按照战斗力从高到低的顺序排的,因为存在阵容克制,你又看不到对方布阵,所以出战顺序会非常重要。然而,公会界面里的分路查看是这个样子的:

    Screen Shot 2015-04-23 at 13.43.00.png Screen Shot 2015-04-23 at 13.44.39.png

    完全是按照成员排序的,成员内部排序也是乱的
    这对于一个想要精心布阵以弱胜强的会长大人来说是很头疼的问题。

    其二:公会面对成绩压力,会根据活跃程度以及实力、潜力进行人员优化,那就需要清楚地知道每个成员的战力,排名。(虽然我们很尽力的想要不放弃每一个会员,但是公会成绩不好很难向土豪和那么用心玩的低v交代。)然而,公会里面查看每个成员是这样的:

    Screen Shot 2015-04-23 at 14.07.05.png

    管理界面也只能看到活跃和团本挑战次数:


    Screen Shot 2015-04-23 at 14.07.32.png

    项目需求

    由上面的问题可以看出,我们需要做一个数据可视化的东西出来,由于手游的特性,我们要做的是一个APP。(之前也试过excel来统计,可这玩意对于精确到英雄的可视化实在没什么好办法)
    但是这个游戏分为3个大区,安卓区,iOS越狱区,iOS正版区。由于安卓和越狱的特性,是可以直接读取游戏内的数据的,各种xx助手也数不胜数,所以我们只需要做iOS正版的APP。(我会跟你们说我只会iOS么)

    这个APP功能出要有:

    • 添加,删除成员
    • 战力排序的成员列表
    • 添加,编辑,删除队伍
    • 选择英雄
    • 每条分路上的队伍数量,队伍次序
    • 每条分路上的战力分布
    • 预备几种分路方案,一键分路

    开发过程

    1. 英雄列表,上刀塔大师网上去把英雄扒下来。
      我原本是要扒小头像的,但是大师里面的小头像藏得好深,而且一下子没有找到正确的映射,只能退而求其次,扒封面。
      原网址在这里http://dtcq.gamedashi.com/cards/index.html
      要一张一张的下真的好low啊,而且做不到图片与英雄id,url,以及英雄名字快速对应起来。我想用爬虫爬,可是Ruby我只懂个皮毛,Python我又不会。最后没办法,只能显示网页源代码,直接操作字符串了。
    Paste_Image.png
    这字符串弄下来了,写个正则又嫌麻烦,索性直接使用</li>这样的标签分割字符串,最终把图片用SDWebImage都下下来,做成了个plist:
    1. 数据存储
      由于这个版本没有网络请求,所有数据都采用CoreData存储。我使用了个非常强大又傻瓜的开源库,ObjectiveRecord,对于我这样的菜鸡来说比MagicalRecord好用不知道多少倍= =。以下是成员,队伍,英雄的模型关系:
      Paste_Image.png

    理论上是成员拥有队伍,队伍包含英雄的关系。

    1. 战力分布图
      这里我使用了PNChart(用行动替周大神打广告)

    成果展示

    公会成员列表 添加公会成员 成员队伍配置 添加队伍 分路概览 每路队伍出战次序及阵容 分路战力分布图

    使用效果

    一阶段开发完毕之后,我开心的发给各位会长大大使用,结果发现了很多问题。

    1. 英雄选择界面图片太多产生内存警告。
    2. 手输一小时才输了50多队,一个强力公会一共有400多队甚至500多队,全部输完要1天!
    3. 公会一共有会长一名长老5名,管理层之间想要共享数据,总不能都手输一遍吧?

    解决方案

    1. 第一个问题的原因是[UIImage imageNamed:xxx]将图片都缓存到内存里不释放,替换成[UIImage imageWithContentsOfFile:path]即可
    2. 2,3问题合成一个,用服务器存储数据,不过安全保密性要好,不然被人知道分路了怎么办?做一个网页用来编辑阵容,会长发出一个外链给公会成员自己编辑阵容,编辑完成之后提交,类似git pullrequest这样的操作,会长选择性的合并即可。

    最后问题来了,我这个菜鸡不会写网页和服务端啊?难道要自学么?还是有朋友愿意来帮我?

    相关文章

      网友评论

        本文标题:刀塔传奇-公会管家的开发经历(1)

        本文链接:https://www.haomeiwen.com/subject/qrxpfttx.html