🐟 鱼丸游戏平台发布!

fishpi-play.jpg

上周发布了元素纪元,得到诸位鱼油的支持,也给出了很多建设性的意见,游戏更加完善了!

如果你有看过元素纪元的代码仓库,就会发现元素纪元其实是一个部署在 GitHub Page 的纯前端游戏!那么游戏的云存档是怎么实现的呢?答案就是今天的主题——鱼丸游戏平台!

这是一个专为纯前端单机游戏打造的全方位集成平台。通过简单的 SDK 接入,就可以为游戏提供后端能力,包括用户认证、云端存档、数据同步以及管理后台。对游戏而言,只需要使用平台提供的 SDK,就可以简单接入,即使纯前端开发的游戏,可以做用户登录认证,云存档管理。下面简单介绍一下集成操作:

游戏注册

首先需要到鱼丸游戏平台注册游戏,访问 https://play.adventext.fun 使用鱼排账号登录后,进入游戏注册界面,填写游戏信息:

  • 游戏名称
  • 游戏Key:通常使用英文代号,不可重复。在使用 SDK 时作为唯一标识;
  • 游戏描述:你这个是什么样的游戏;
  • 回调路径:登录后回调路径,届时需要在该界面处理用户认证信息;写相对域名的路径即可,比如 /login;
  • 域名白名单:可以使用你这个游戏 Key调用 SDK 的域名白名单;

填写好后提交申请,待我这边通过(我会收到通知),你就可以使用平台功能了!

安装 SDK

安装 SDK 超级简单,只要执行下面的命令即可:

npm install fishpi-play

集成功能

首先初始化,初始化一个单例 SDK,然后全局都使用这个:

import { GameSDK } from 'fishpi-play';

export const sdk = new GameSDK('YOUR_GAME_KEY');

触发登录跳转只要把登录后要访问的地址传递给 login 函数即可:

sdk.login(window.location.href);

前面注册游戏有填写了一个回调地址,那么我们需要在该地址打开时调用认证初始化,也可以在访问这个地址时检查是否已经登录,若没有则跳转登录:

// 处理回调中的登录信息
await sdk.initAuth();

// 检查是否已经登录,若没有则跳转登录
if (!await sdk.isAuthenticated()) {
    sdk.login('/');
} else {
    location.href = '/'
}

还可以获取登录用户的信息:

const user = await sdk.getUserProfile(); 
console.log('欢迎, ' + user.nickname);

用户信息的数据结构如下:

interface UserInfo {
    id: string;       // 用户唯一 ID
    username: string; // 用户名
    nickname: string; // 昵称
    avatar: string;   // 头像 URL
    isAdmin: boolean; // 是否为管理员
}

还可以进行存档管理:

// 上传存档 
await sdk.saveArchive(JSON.stringify({ score: 100 })); 
 
// 获取存档 
const archive = await sdk.getArchive(); 
if (archive) {
     const data = JSON.parse(archive.content); 
}

还可以进行实时的数据交换

// 连接实时消息服务(连接了才能显示在线状态)
sdk.connectRealtime((msg) => {
    console.log('Received message:', msg);
});

// 设置属性
sdk.setAttributes({ status: 'in-game', level: 5 });

// 获取当前属性
const attrs = sdk.getAttributes();

更多接口可以查看:https://www.npmjs.com/package/fishpi-play

游戏管理

集成 SDK 后,就可以登录鱼丸游戏平台管理游戏了,可以直接查看游戏的注册用户,用户的在线状态,还有上传的存档,设置的属性等。

admin.png

后续计划

后面可能会集成鱼排市场的插件市场功能,游戏可以通过平台分发买卖游戏道具。如果你有什么更好的建议,可以在评论区告诉我哦~


[1] 鱼丸游戏平台:https://play.adventext.fun/

[2] GitHub 仓库:https://github.com/FishPiOffical/fishpi-play

上一篇
所以生命啊,它璀璨如歌
公司的猫死了,就是前几天的事。 从一脸震惊与遗憾跑进办公室向行政汇报的内勤人员口中我得知此事。 “啊?怎么就死了?” “不知道啊,我在空调外机下面看到了它的……尸体。”内勤说出最后2个字时内心做了一番挣扎,但是一通翻江倒海也找不到更合适且避讳的词语了。 “我还想给它补猫罐头跟猫条来着…”行政坐在我的 ....
下一篇
第四十章:星际贸易代表
两道光芒再次亮起,朝着远处的一个光点飞去。他们的速度越来越快,周围的景象变得模糊起来。时空裂隙中的能量波动变得越来越强烈,仿佛在为他们的旅程送行。 不知道过了多久,他们终于到达了目的地。眼前的景象让他们感到惊讶。这是一个完全由机械构成的世界,到处都是高耸入云的机械塔,空中飞行着各种机械生物,地面上则 ....
时间排序
【观察】你的时间真的非常紧张吗? 绝版恒大美女套图 周末我吃了什么 【新应用】ForeastDraw 第四十章:星际贸易代表 🐟 鱼丸游戏平台发布! 所以生命啊,它璀璨如歌 鸡🐔 的分享 + 猪猪🐷 分手之感悟 小羊的做饭日记(含大厨做饭绝版秘籍) 【今日说法】如果在这里做普法栏目会不会显得很奇怪
上一篇
【新游戏】从捡起一块木炭开始,重走人类化学的万年征途
[图片] 你蹲在熄灭的篝火旁,伸手拨开温热的灰烬。指尖触到的不是灰白粉末,而是一块黑色的、轻飘飘的碎块。你把它扔回火星,它没有冒出白烟,只是静静地发出暗红色的光。 碳。元素周期表上的第六号元素,就此点亮。 这不是一堂枯燥的化学课,而是一场横跨万年的人类科技史诗。《元素纪元》是一款以真实化学史为脉络的 ....
下一篇
【随手拍】傍晚的阳光
[图片]
当前作者
【随手拍】精神奕奕的树 【随手拍】可算下雨了 【随手拍】傍晚的阳光 🐟 鱼丸游戏平台发布! 【新游戏】从捡起一块木炭开始,重走人类化学的万年征途 终于基本建完 MC 小屋了 Coding Everywhere —— Web VSCode 搭建指南 关于复杂界面扩展开发指南——弹窗聊天室开发详解 鱼排扩展集市源码解析
上一篇
周末我吃了什么
本人及其懒惰,并且一般都会冰箱剩啥我吃啥,给大家简单分享下 1.周六早餐 [图片] 因为有剩下的虾滑150g,所以先刷牙洗漱,正好把虾滑化冻,再挤到小碗里后塑型煎成虾饼 以及一个煎蛋+盐水肠,面包片作为碳水和膳食纤维 再搞点无糖酸奶+蓝莓,我没办法直接喝无糖酸奶,我会加点蓝莓,至少不是纯酸。酸奶我想 ....
下一篇
【抽象】女侠夜行录·宅中卷
女侠夜行录·宅中卷 从妖司回到洞府开门的时候,洞府里的灯亮着,法阵还散发着微微的亮光,客厅飘出一股熟悉的、懒洋洋的气味——说不上来,大概是空调、阳台漏进来的热风、和道友没来得及扔的外卖盒混在一起的那种味道。道友已经到了。道友总是比我早到家,她妖司近,通勤比我少一大半时间。我换鞋的时候,她已经从厨房探 ....
热门排序
【这是菜谱】本来想玩梗的但是好奇怪的北京炸酱面制作教学 没有谁会一夜长大 4 【短篇小说】小寒 【分享】周末美食 周末我吃了什么 🐟 鱼丸游戏平台发布! 【抽象】女侠夜行录·宅中卷 别把向往一直留在想象里 想上传 live 【分享】周末拍荷小记 那些年我用过的那些手机。(流水账)