尝试使用 Decentraland SDK
首先,先下载 nodejs 。安装完后,开terminal 输入
npm install -g decentraland
然后去一个空的directory ,输入
dcl init
dcl start
就搞定了。 你去browser 浏览
http://localhost:8000/?SCENE_DEBUG_PANEL&position=-1%2C-1&realm=localhost-stub
就会看到场景了。
一行代码都还没写就有一个拥有multiplayer 环境的场景出现了。 这时如果你开第二个browser 去同一个页面 , 你就会看到两个人了 。
就是那么简单.
不过,虽然人物是自动 multiplayer 了, 但里面的物件可不是自动 multiplayer的。 比如说其中一个人按了那个箱子可以产生更多的箱子, 但另一个人却没看到。
Decentraland 提供给你两种方式把 物件的state multiplayer 化。
第一种是 P2P的, 基本上就是提供了 emit 和 receive function 。
玩家A 要干什么, 就要把该动作 emit , 其它在场的玩家就会 receive 到。不过,如果你物件换了几次state ,玩家 C 才刚进入场景 , 那玩家C 就错过了 receive 。
第二个就是 把所有物件的 state 传送到自己的私人 server , 然后任何玩家刚进来就必须先到那个私人server 拿所有物件的state .
要建立一个server 来存放物件的state 基本上不用太复杂, 只要一个基本的 key value 库例如 memcached 就可以了。 找了几个免费的例如
https://meeiot.org/ 或
http://keyvalue.immanuel.co/
用最简单的 http get/put 来存/读取就可以了。
来说说 Decentraland 的3D 环境。 基本上, Decentraland 走的是 Low Poly 风格,
Low Poly 基本上是 3D 的一门艺术 , 就是要用最少的polygon 来呈现3D 物件/人物。 3D物件格式支援 .gITF 格式。这个基本上包含了 物件的 mesh , texture, animation 。在blender 上建模可以直接 export 成此格式。
不会用 blender也可以到 google poly 去下载物件。
在来说说代码的部分。
Decentraland基本上是使用 typescript , 基本上就是 javascript 的superset 。 只要会写javascript, 基本上是没什么问题的。
目前就研究到此。
其它的以后在说
谢谢阅读。
Leave 尝试使用 Decentraland SDK to:
Read more #hive-105017 posts
Best Posts From tensaix2j
We have not curated any of tensaix2j's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From tensaix2j
- 收藏 POAP NFT
- 在 Decentraland 上给Hive.blog 刷存在感
- 参加了Decentraland GameJam 2020 游戏制作赢了一些奖金
- 第二个上Metazone 的游戏。有Youtuber到此一游
- 把本地电视台在Decentraland场景里的电视屏幕播放
- 尝试写一个跑马游戏
- 尝试制作篮球游戏
- 写好游戏放到 metazone 贩售
- 尝试做一个桌球游戏
- 尝试做一个弹珠台 (Pinball) 的游戏
- 一人一款怀旧游戏 | Habbo 旅馆
- 尝试把建好的游戏Deploy到Decentraland的土地
- 尝试做BomberMan游戏 Part02, 制作炸弹和爆炸效果
- 尝试制作 Bomber Man 游戏
- 用 Decentraland SDK 制作一个多人连线扑克游戏
- 制作一个Decentraland 的象棋场景 PART 3 多人连线
- 制作一个Decentraland 的象棋场景 PART 3 多人连线
- 制作一个Decentraland 的象棋棋盘 PART 2
- 用Decentraland SDK制作一个可以互动的场景
- 尝试使用 Decentraland SDK