Discord浅浅社区游戏体验服【可用】

  开头我先说一句,这篇帖子会很长很长很长,而且写的很凌乱,几乎是想到什么就写什么,但是有一点阅读之前,请务必确保有必要的discord基础知识,提问之前,请先阅读《提问的智慧》

你需要至少了解以下内容:

社交渠道 & 友情链接

实现功能

  • 货币体系
  • 道具商城、技能商城、装备商城系统、任务系统、剧情系统【可选】
  • P2E练级、P2P对战、角色养成、社交
  • 对接曾经发行的社区身份ID-NFT
  • 实现战斗角色信息非同质化 [PlatON Dev Network]

其他

  • 与其他板块联动【确认后公开】
  • 私服:已部署 Alaya 私有网络用于私有化测试,计划部署 Alaya Dev Network 节点联动测试
  • 浅浅社区Discord 暂未已部署本教程机器人。,在秘密服务器中开发、测试【个别社区用户正参与】

部分谍照【提前尝鲜可加入社区开发服务器Discord





指令大全

  • /userbalance:查询你的余额
  • /propshop:查看道具商城
  • /buyshop <option: propname>:购买道具 【必填项:道具名称】
  • /bag:查看背包道具及当前余额
  • /addprop <option 12>:添加新的道具【仅服务器管理员可以使用】
  • /createplayer:创建战斗角色
  • /removeplayer:删除战斗角色【尝鲜版可用,满足用户刷先天三围的意愿】
  • /pk <option: user>:与其他玩家进行战斗

新增指令

  • /useprop:使用道具
  • /addbalance:转账铜板

执行环境

  • 云服务器一台
    • 海外配置:32G8C 240G (托管、开发)
    • 国内配置:4G4C 80G (开发)【须安装配置Shadowsocks,放弃使用】
  • 软件版本
    • 系统:Ubuntu18.04
    • nvm Version:1.1.9 0.31.4
    • node Version:16.14.0 ,12.16.1
    • npm 第三方库
      • @discordjs/builders@0.12.0
      • @discordjs/rest@0.3.0
      • discord-api-types@0.31.01
      • discord.js@13.6.0 [特殊:v13与v12版本改动大,请勿使用v12语法]
      • sequelize@6.18.0
      • sqlite3@5.0.2 [特殊:nvm use 12.16.1 可 npm install,16.14.0 将报错]
      • sequelize@6.19.0
      • sqlite3@5.0.3
      • forever@4.0.3【node进程守护】
      • web3@1.2.4 [PlatON-JS-SDK,nvm use 12.16.1]
  • Discord Applications 注册机器人
    • 获取 ApplicationID 和 Token,并通过 OAuth2 邀请进自己创建的服务器

服务器架构

  • 开发环境Dev
  • 生产环境Product

切记开发与生产分离,否则开发时出现环境事故很麻烦。

游戏道具

  • 基于ERC1155标准的游戏道具合约已于测试网部署完毕(2022年4月10日00点53分20秒)
  • 功能测试:
    • 铸造:测试无误,按预期效果
    • 查询:测试无误,按预期效果
    • 燃烧:测试无误,按预期效果
    • 批量操作:测试无误,按预期效果

是否支持连接钱包

  • Discord 未支持连接MetaMask钱包,因此用户无法通过授权进行道具燃烧,故此项ERC1155的引入仅作为测试使用
  • \small\color{red}{正尝试使用跳转外部URL连接钱包的方案(2022年4月10日17点44分)}

道具文件存储

  • 使用Tomcat 9.0搭建基于云的文件存储方案,浏览器可访问
  • 道具文件:
    • 道具图标
    • 道具 Metadata URI JSON文件

战斗角色

  • 左侧尺骨、胫骨绑定已实现

尺骨、胫骨模型调节

  • 面部骨骼绑定已实现

过会儿放Demo,先占楼

战斗角色具备骨骼绑定上,分为躯干和四肢骨骼绑定,以及面部骨骼绑定。用户可通过骨骼绑定进行个性化捏脸与动作设置。至于如何实现,基于 Blender + Three.js 的模型已经验证完毕【无骨骼绑定】

躯干和四肢骨骼绑定

面部骨骼绑定

Three.js验证Blender模型在浏览器是否可用

这里(跳转查看)主要问题是:

  • 尽管gITF格式较之3ds、fbx已经算体积较小,但浏览器在访问接近32MB大小的模型时,仍需要加载超过40秒,对于用户体验差。

  • \small\color{red}{解决方案:将大模型拆分为若干个分块模型进行异步加载。}

  • 后续需要3D建模工程师配合,Blender基础功能我可以独立实现,但复杂操作仍需专业人士。

智能合约

## 道具是同质化资产,使用1155批量处理
1. PRC1155道具合约:lat14qmea8l7mr8a0dzejdhpf4adasvpulv4rdqy8y
## 装备(特指装备商店出售的正常装备【时装等不包含在内】),使用1155批量处理
2. PRC1155装备合约:lat1jlp6t92zxc7lkhaxmpwygu9tfg6fdlnhczhume
## 装备(特指用户自主铸造),使用721非同质化处理
3. PRC721装备合约:lat1pnu6jzx6scdgafnnjs4xvwtr7725kphx886x0x
## 浅刀(🔪)属于同质化资产,也属于道具的特殊类,因此使用1155[0]同质化处理
4. PRC1155[id:0]浅刀合约:lat14qmea8l7mr8a0dzejdhpf4adasvpulv4rdqy8y

正文(又睡着了)

Github源码

ERC1155 Metadata URI JSON 示例

{
    "name": "一品活血丹",
    "description": "补充玩家失去的部分生命值",
    "image": "https:\/\/qianqian.com\/warbot\/props\/{id}.png",
    "properties": {}
}

卫星地图

经济模型

  在浅浅社区 Discord 内置道具、装备、技能、材料四大类。其中浅刀( \small🔪 )属于道具的一种,在智能合约中id0,是社区通用货币。

\small🔪 浅刀的获取

  浅刀( \small🔪 )是社区通用货币。

  • 来源:

    • 每日签到、社区频道灌水(发言 1 次 + 1 \small🔪 )、活动赠送;
    • 击杀野怪、任务奖励、装备回收、道具回收、材料回收;
    • 来自其他用户的转账;
    • 应该还有其他的,我暂时没想到。
  • 用途:

    • 道具、装备、技能购买;
    • 装备强化、技能升级、P2P交易、粉丝打榜;
    • 铸造个性化装备、镶嵌宝石、装备晋品、开启秘藏;
    • 其他作用暂时没想到,再说吧。

\small🏬 道具

  道具是贯穿社区的重要组成部分,因此创建道具商城,实现 \small🔪 和道具之间的双向流动。

部分道具表

\small🏭 装备

  装备是战斗角色提升战斗力最好的解决方案,当然相比于道具的数量优势,装备也有它独特的套装优势。频道中存在装备商城,装备有很多种,每种又分不同的等级和品质。以生铁剑为例。

  • 生铁剑【战斗角色Lv1可装备】

    • 品质: \small\color{#999999}{普通}\small\color{#3285ff}{精良}\small\color{#ac4fe9}{稀有}\small\color{#f1c232}{传承}\small\color{#d70808}{神器}
    • 强化+ N:攻击+N【强化满级为10级】
  • 生铁剑强化详细属性见下表:【 \small📜 解释:强化符,商城售价 \small10🔪

装备名称 装备强化等级 强化效果 强化所需 强化总价 商城回收价
生铁剑 攻击+0 / / 50 \small🔪
生铁剑 \small⭐ 攻击+1 1 \small📜 1 \small📜 55 \small🔪
生铁剑 \small⭐⭐ 攻击+2 2 \small📜 3 \small📜 65 \small🔪
生铁剑 \small⭐⭐⭐ 攻击+3 3 \small📜 6 \small📜 80 \small🔪
生铁剑 \small⭐⭐⭐⭐ 攻击+4 4 \small📜 10 \small📜 100 \small🔪
生铁剑 \small⭐⭐⭐⭐⭐ 攻击+5 5 \small📜 15 \small📜 125 \small🔪
生铁剑 \small⭐⭐⭐⭐⭐⭐ 攻击+6 6 \small📜 21 \small📜 155 \small🔪
生铁剑 \small⭐⭐⭐⭐⭐⭐⭐ 攻击+7 7 \small📜 28 \small📜 190 \small🔪
生铁剑 \small⭐⭐⭐⭐⭐⭐⭐⭐ 攻击+8 8 \small📜 36 \small📜 230 \small🔪
生铁剑 \small⭐⭐⭐⭐⭐⭐⭐⭐⭐ 攻击+9 9 \small📜 45 \small📜 275 \small🔪
生铁剑 \small⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 攻击+10 10 \small📜 55 \small📜 325 \small🔪
  • 生铁剑晋品详细属性见下表:
装备名称 装备品质 品质增强效果 晋品所需 装备总价 商城回收价
生铁剑 \small\color{#999999}{普通} \small\color{#999999}{无增强} / \small\color{#999999}{100🔪} \small\color{#999999}{50🔪}
/ \small\color{#3285ff}{精良} \small\color{#3285ff}{攻击+5} \small\color{#3285ff}{100🔪} \small\color{#3285ff}{200🔪} \small\color{#3285ff}{100🔪}
/ \small\color{#ac4fe9}{稀有} \small\color{#ac4fe9}{攻击+10} \small\color{#ac4fe9}{150🔪} \small\color{#ac4fe9}{350🔪} \small\color{#ac4fe9}{175🔪}
/ \small\color{#f1c232}{传承} \small\color{#f1c232}{攻击+15,力量+2} \small\color{#f1c232}{200🔪} \small\color{#f1c232}{550🔪} \small\color{#f1c232}{275🔪}
/ \small\color{#d70808}{神器} \small\color{#d70808}{攻击+25,力量+5} \small\color{#d70808}{250🔪} \small\color{#d70808}{800🔪} \small\color{#d70808}{400🔪}
  • 在装备商城中,所有的装备品质均为 \small\color{#999999}{普通} ;玩家【转职锻造师】自主铸造的装备品质会在 \small\color{#999999}{普通} ~ \small\color{#d70808}{神器} 五个档次间波动。概率如下表
装备品质 \small🔨\color{#2dd369}{铸造师Lv1} 概率 \small🔨\color{#2d9cd3}{铸造师Lv2} 概率 \small🔨\color{#d32d97}{铸造师Lv3} 概率
\small\color{#999999}{普通} 70% 58.08% 46%
\small\color{#3285ff}{精良} 24.51% 33.02% 40.4%
\small\color{#ac4fe9}{稀有} 4.49% 6.98% 9.76%
\small\color{#f1c232}{传承} 0.79% 1.58% 3.16%
\small\color{#d70808}{神器} 0.21% 0.34% 0.68%

玩家可在Lv30 之后转职成为锻造师,从根本上改变品质的概率


部分装备表

\small⚡ 技能

(略)

\small📦 材料

  • 来源:
    • 击杀野怪、装备熔炼
  • 用途:
    • 可寻找铸造师铸造更高品质的装备,或自主转职后铸造

角色模型

  玩家战斗角色具象化,使得游戏充满更多可玩性与趣味性,无论是时装比拼、装备竞赛还是数值之间的一争高低。早期社区ID-NFT是2D的像素风造型,它可以作为头像或者在技术条件满足的情况下被3D模型化(目前来看,是短期内难以实现的)。

  因此做了两个预案,偏3D化的角色展示和横板2D的角色展示。

role

role_attack

  此类预案对画师要求较大(目前没有专业团队),因此昙花一现,我个人更倾向于第二种预案。

role01
role02
role3
role4

称号体系

原本我并没有想过要做这个体系,但既然有打榜,称号就不可避免

大概看一下效果

后台系统

2 个赞

睡了俩天?我不服 :joy:

1 个赞

噗,我是点铅笔写修正的,正文还不知道写啥好,放个图吧

顶贴顶贴顶贴,水字数

其实你完全可以做一个文字游戏,而不是需要3d啥的,纯文字游戏

游戏奥义:

  • 减少文字的使用,增加画面与特效呈现

大道,不同,不选择去谋划。

富而可求也,虽执鞭之士,吾亦为之。如不可求,从吾所好。

啥?什么大道?(字符字符字符)

贪夫殉财兮,烈士殉名; “夸者死权兮,品庶每生。

你在说啥=。=我一个字也没看懂

你这是主动给这俩词加了链接吗

必须的

yibei最近找的女朋友越来越好看了啊

哈哈,这的感谢蓝先生

1 个赞

志不在MUD~~