羊了个羊微信小游戏开发技术解析

contact information 1.7.8.8.8.5.4.0.6.4
Charles4.6.2
Proxifier
Burpsuite1.7.33

《羊了个羊》小游戏功能开发文档

1.登录注册模块:

1.1微信一键登录注册

2.首页

2.1城市定位

22地区通关人数排行榜

2.3个人信息名片

2.4固定弹幕发送

2.5话题PK得宠物换装

26地区羊群随机显示固定数量通过人信息
羊了个羊微信小游戏开发技术解析_第1张图片

# -*- coding: utf-8 -*-

"""
配置类
@author :  徐文176.888.54.064
@time : 2022/9/15 12:35
"""
import os

# 以下参数根据自己的需要进行修改:
SYS_CONFIG = {
    # 获取到的header中t值,必须修改为自己的
    "header_t": "eyxxxxxxxxx.xxxx",
    # 获取到的header中的user-agent值
    "header_user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.27(0x18001b36) NetType/WIFI Language/zh_CN",
    # 设定的完成耗时,单位s,默认-1随机表示随机生成1s~1h之内的随机数,设置为正数则为固定
    "cost_time": -1,
    # 需要通关的次数,最大支持10,默认1
    "cycle_count": 1,
    # 闯关羊群开关: 1开启/0关闭 ,默认打开
    "sheep_type": 1,
    # 闯关话题开关: 1开启/0关闭 ,默认关闭
    "topic_type": 0
}


def get(key: str):
    value = os.getenv(key)
    if value is None:
        if key in SYS_CONFIG:
            value = SYS_CONFIG[key]
    return value

2.7游戏圈跳转微信游戏论坛

28朋友圈功能显示好友历史排行榜

3.游戏模块

3.1开关背景音乐

3.2开关背景音效

3.3开关震动

3.4开关弹幕

35移出砖块道具

3.6撤回砖块道具

37洗牌道具

一个算法带来的巨大利益,难度升级的真相。

相信就算不是程序员的人也不难看出,这个游戏存在的算法就像商场的抓娃娃机,就是随机;你可能一直抓不到,也可能一抓就抓到,有很大的运气成分在里面。

"""
主程序类
@author : 徐文176.888.54.064
@time : 2022/9/15 12:00
"""
import random
import sys
import time

import requests

import config

map_api = "https://cat-match.easygame2021.com/sheep/v1/game/map_info?map_id=%s"
# 完成羊群接口
finish_sheep_api = "https://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=%s&rank_role=1&skin=%s"
# 完成话题接口
finish_topic_api = "https://cat-match.easygame2021.com/sheep/v1/game/topic_game_over?rank_score=1&rank_state=1&rank_time=%s&rank_role=2&skin=%s"

header_t = config.get("header_t")
header_user_agent = config.get("header_user_agent")
cost_time = config.get("cost_time")
cycle_count = config.get("cycle_count")
sheep_type = config.get("sheep_type")
topic_type = config.get("topic_type")

request_header = {
    "Host": "cat-match.easygame2021.com",
    "User-Agent": header_user_agent,
    "t": header_t,
    "Referer": "https://servicewechat.com/wx141bfb9b73c970a9/17/page-frame.html",
    "Accept-Encoding": "gzip,compress,br,deflate",
    "Connection": "close"
}

"""
调用完成闯关羊群
Parameters:
  cost_time - 耗时
"""


def finish_game_sheep(skin, rank_time):
    s = requests.session()
    s.keep_alive = False
    res = requests.get(finish_sheep_api % (rank_time, skin), headers=request_header, timeout=10, verify=True)
    # err_code为0则成功
    if res.json()["err_code"] == 0:
        print("\033[1;36m恭喜你! 本次闯关羊群状态成功\033[0m")
    else:
        print(res.json())
        print("请检查t的值是否获取正确!")


"""
调用完成闯关话题
Parameters:
  cost_time - 耗时
"""


def finish_game_topic(skin, rank_time):
    s = requests.session()
    s.keep_alive = False
    res = requests.get(finish_topic_api % (rank_time, skin), headers=request_header, timeout=10, verify=True)
    # err_code为0则成功
    if res.json()["err_code"] == 0:
        print("\033[1;36m恭喜你! 本次闯关话题状态成功\033[0m")
    else:
        print(res.json())
        print("请检查t的值是否获取正确!")


if __name__ == '__main__':
    print("【羊了个羊一键闯关启动】")
    # 前置判断,程序员何必为难程序员呢,针对恶意刷次数对服务器造成压力的进行拦截
    if cycle_count > 10:
        print("程序员何必为难程序员,请勿恶意刷次数对服务器造成压力,请设定cycle_count的值小于10以下的值,本次程序运行结束")
        print("【羊了个羊一键闯关开始结束】")
        sys.exit(0)

    i = 1
    success = 0
    while True:
        print(f"...第{i}次尝试完成闯关...")
        interval_time = random.randint(2, 6)
        print(f"生成随机时间间隔,防止游戏服务器接口限流导致失败 : {interval_time} s")
        if cost_time == -1:
            cost_time = random.randint(1, 3600)
            print(f"生成随机闯关完成耗时: {cost_time} s")
        try:
            if sheep_type == 1:
                finish_game_sheep(1, cost_time)
                success += 1
            time.sleep(interval_time)
            if topic_type == 1:
                finish_game_topic(1, cost_time)
                success += 1
        except Exception as e:
            print(f"游戏服务器响应超时或崩溃中未及时响应,缓缓吧,等待服务器恢复后再试!本次失败请忽略,错误日志: {e}")
        if success == cycle_count:
            print("【羊了个羊一键闯关结束】")
            sys.exit(0)
        print(f"\033[4;32m已成功完成{success}次\033[0m")
        i += 1

9月14日,一款名为《羊了个羊》的消除类小游戏一度空降微博热搜第一,不仅激发了一众游戏主播体验试玩、出攻略,也使得淡定许久的微信小游戏重回大众视野,人气之旺导致《羊了个羊》服务器在24小时内崩溃三次。

更多项目商机详情点击查看

百度指数

微信指数

据微信小程序,已有超100万人玩过了这款游戏。而“羊了个羊”的百度指数也在一天内从0次上升至9月13日的58604次。随着相关话题热度的攀升、慕名而来的玩家人数的跟涨,羊了个羊官方微博已发布三次服务器异常的通知,和“羊了个羊”有关的话题则一直挂在微博热搜,阅读次数超过16.6亿次。此外,该游戏相关攻略视频播放量持续增长,仅在B站就有多个视频播放破万次。

羊了个羊官方微博

以高难度进行反向营销

小游戏成吸金新阵地

据腾讯官方近期发布的《2022微信小游戏增长白皮书》显示,微信小游戏开发者数量已达到10万+,月流水千万级游戏款数同比+50%。目前,微信小游戏用户规模数亿级,30岁以上用户群体占比逐年提升,从2018年的59%逐步提升到2021年的69%,高付费用户规模持续增长。

根据《白皮书》,目前微信小游戏主要有三种变现形式,IAP(内购付费)、IAA(广告变现)、IAP+IAA(混合变现)。以《羊了个羊》为例,主要采用的是IAA模式,用户观看一条广告可获赠道具等。

2022年上半年微信小游戏畅销榜中,从游戏玩法来看:卡牌玩法在吸金能力上表现出色,大盘占比约 22%。此外,MMORPG、经营、放置占比位居前列。

小游戏三大套路

1、中奖诱惑玩家付费

以去年爆火的小程序游戏《合成大西瓜》为例,就是凭借诱导性的广告,让玩家在玩游戏时,领取游戏界面弹出的带有“100 手机话费券”。

大量网友在微博等社交媒体上反馈称,自己在玩游戏时领取了所谓的“100手机话费券”,但在按网站指示支付了9.9元或19.9元后却发现话费无法兑现,也不能退款。根据中新网的报道,有超166万人领取了这样的话费券。如果按每个人支付19.9元来计算,涉及的总金额已超3000万元。

2、提现环节连环挖坑

在中奖的诱惑外,还有不少小游戏直接给钱,但提现的过程几乎让人崩溃。

如近几年流行的《阳光金币屋》《欢乐养猪场》《欢乐摇钱树》等小游戏,其中《阳光金币屋》明确设置了75元的提现门槛,让很多玩家升级动力十足。

有玩家反馈,一开始很容易就升级到三四十元,可是此后每日任务给的金币也开始变少,但距离提现额度还差十五元的时候,可能需要持续玩半年。当用户辛苦积攒够提现门槛的七十五万金币时,又弹出新要求,需要拉五个人头,每个人头玩够三十万金币才可以提现,这也让用户几乎不可能真的提现成功。

3、99% 误点广告几率

还有部分小游戏,不需充值也不需提现,但在游戏界面设计中,很容易就点到广告链接。此类小游戏一般玩法简单粗暴,很容易满足用户的虚拟成就感,以《我的逆袭人生》小游戏为例,广告误点率为 99%,甚至动不动就会自动下载个App。以现在App的获客成本看,通过小游戏的方式获客无疑是一种低成本且效率很高的方式。

而以《羊了个羊》为例,则是开创了以设置高难度为门槛,激发用户胜负心后诱导用户点击广告的新模式。

羊了个羊做对了什么

截止9月15日早上10点,单#羊了个羊#一个话题在微博的浏览量超过21亿,仅14号单日浏览量就超过12亿。

我分析了以下几点因素:

1、地域的设置

游戏内显示每个省份的排名,玩家在通关后可以加入羊群,为“本省”出力。

这个设置也引发了不少玩家的归属感和荣誉感,希望自己的家乡更胜一筹。

2、朋友圈排名

和大多数游戏一样,这款游戏同样设置了朋友圈的排名。排名可以满足玩家的荣耀感,也会促使玩家群体更加的“内卷”。

试问谁不想在自己好友圈里名列前茅,显示自己足够厉害呢?

3、超高的游戏难度

这款游戏在微信小程序简介上标榜“通关率不到0.1%,有玩家表示玩了3天都还没有通关。地狱级的难度也激起不少人的挑战欲,纷纷尝试进入游戏挑战。

还有游戏关卡难度的反差也带来不少话题。有玩家表示“第一关的难度相当于1+1=2的幼儿园题目,而第二关的难度相当于高考题。”

这种跨越级的难度升级,也引发了玩家的大量吐槽,自发宣传游戏。

此外,游戏内还设置了3种游戏道具来帮助玩家通关,但玩家需要转发游戏来获取机会,分享的过程也促进了声量的传播。

4、魔性的背景音乐

游戏内的背景音乐名叫《普通DISCO》,魔性的旋律让不少玩家被洗脑,也让玩游戏的过程变得不那么枯燥。有玩家表示,自己愿意一直尝试通关的原因,就是想听音乐。

5、分享诱导

游戏在转发词上也“费尽心机”,例如用了“敢不敢”、“0.01%”、“智力排行”等关键词,可以激起新用户的好奇心和挑战欲。

当然游戏能爆火,很多时候并不是偶然。除了游戏本身的机制和玩法,游戏之外的因素也相当重要。

你可能感兴趣的:(软件开发,python,开发语言)