我花了几个月时间打造了一款名为The Leaderboard的游戏。这个游戏的设计文档简直就是整个游戏的介绍:整个游戏都是一个排行榜,你唯一的目标就是让自己的数字大于其他人。没有故事,没有游戏玩法。通过打开游戏、每天登录和完成一些无意义的挑战(例如“重复按任意键46次”、“保持5分钟不做任何事”),你可以获得积分。游戏内商店出售积分,其中最贵的商品名为“付费胜利”,价格高于游戏本身。
# 为什么我做了它
我注意到很多在线服务游戏中,排行榜往往是人们真正关心的部分,它通常是点击的标签,你需要点击它才能看到真实游戏的结果。所以我删除了真实游戏。剩下的内容令人惊讶地诚实:数字不断增加,其他人的数字也在增加,你会对此产生一些感觉。只有当数字是真实的,才会产生讽刺效果,这意味着一切都必须是全球性的和竞争性的。这就是有趣的个人开发者约束的起点。
# 约束:零后端
我是一个人,没有钱买服务器,懒游戏意味着人们会让它运行几个小时。任何用户级别的托管成本都会让我破产。所以我给自己定下了一个硬性规则:永远不使用自定义后端。Everything都运行在Steamworks上。
排行榜是最容易的部分
Steam排行榜可以实现全球、朋友和国家范围的排行榜,几乎是免费的。全球聊天是有趣的问题。通常,聊天室意味着服务器。然而,我在Steam大厅聊天上建立了它:每个聊天频道都是一个公共Steam大厅,带有元数据键命名频道,限制在250名成员。客户端搜索具有该频道标签的大厅,加入其中,并通过Steam的大厅聊天回调发送消息。Steam是服务器。我的托管费为零。季节性重置是相同的技巧,从不同的角度来看,每个月都是一个新排行榜,名为season_YYYY_MM。月度竞争,没有cron任务,没有数据库。通过Steam云保存。最终,我确实对保存文件进行了HMAC签名,因为这个游戏绝对不能承受轻易编辑的分数。这是建立一个关于无意义数字的游戏的讽刺:数字必须像它意味着什么一样被捍卫。
# 我没有预料到的东西
在此过程中,我写了一个Discord机器人。它从Steam Web API拉取实时板,并通过OAuth链接绑定玩家的Steam帐户,发布月度赛季赢家,自动授予角色当玩家击败前三名,运行快乐时段倍增器,实际上读取游戏中的倍增器,并有一个“作弊警察”模块。要诚实地说,这是部分范围的膨胀。但它也解决了一个真正的问题:没有后端的懒游戏无法向玩家发送任何信息,而Discord成为我无法承担的实时运营层。
# 我在哪里
Steam页面刚刚上线,作为即将上线的游戏,很明显,这个游戏的商店免费赠送所有内容,没有DLC和真正的微交易。出售积分的现实钱会更有趣,但也会更加邪恶。很高兴深入讨论我采用的任何方法,并分享任何你可能感兴趣的细节。Steam页面:https://store.steampowered.com/app/4493240/The_Leaderboard/
评论 (0)