threejs尝试开发一个RPG游戏

最近尝试用 Threejs 开发一个 RPG 游戏Demo。没有特别宏大的目标,就希望实现角色在地图上的路线规划 和 简单的战斗打怪。基于此仍然遇到了不小的技术挑战和性能瓶颈

Live: knight-adventure.vercel.app/

Code: github.com/luosijie/kn...

场景构建

这次场景和角色使用了开源的设计素材

最终在 Blender 创建了一个小场景

导出了的素材包括了

  • 场景的 glb 文件
  • 渐变贴图
  • 用于路线规划的navmesh

角色处理

从网上下载的角色一般不会直接拿来使用

  • 需要自己添加或修改一下模型,比如添加希望出现的道具
  • 还要删除多余的动画预设,最大限度减少资源的体积

路径规划

刚开始用的是比较常用的库 three-pathfinding,发现在处理动态路障方面比较麻烦。

后来发现了 recast-navigation-js 可以比较顺利的处理当前的场景

问题与挑战

用 Threejs 开发类似的项目,遇到的主要挑战还是 性能问题 。

即便是在这样简单的场景下,在去除阴影效果的前提下,也无法同时容纳很多 动画绑定的角色。

如何在有限的资源和性能约束下,做出流畅又丰富的游戏体验。将是 游戏设计者 和 开发者 面对的问题

相关推荐
用户831348593069820 小时前
Cesium实现动态流动火烧云晚霞效果(可用slider调整火烧云浓度)
vue.js·webgl·cesium
张人玉21 小时前
茶树 NeRF(Neural Radiance Fields,神经辐射场)三维重建与数据分析可视化系统——基于神经辐射场的茶树三维重建方法实现可视化大屏
python·数据挖掘·数据分析·echarts·three.js
xiaominlaopodaren21 小时前
three.js最小地图运行时(八): 瓦片调试网格
javascript·gis·three.js
IT爱学堂1 天前
Three.js可视化企业实战WEBGL课,2023年全新WEB 3D THREEJS技术
前端·javascript·webgl
用户594404103562 天前
Three.js 实战:从零构建智慧城市 3D 可视化大屏,附完整交互式代码
three.js
爱喝麻油的小哆2 天前
🐾 Day 5|桌面数字人-接入llm可以对话啦
前端·three.js
xiaominlaopodaren2 天前
three.js最小地图运行时(七): MapRuntime 与地图交互
javascript·gis·three.js
智商偏低2 天前
attribute 与 uniform 本质区别(WebGL)
webgl
进哥AI研习社3 天前
WebGL 与视频背景——首屏视觉层的性能博弈
性能优化·webgl·gpu·canvas·shader·帧率·视频背景
xiaominlaopodaren4 天前
three.js最小地图运行时(六): 地图运行时
javascript·gis·three.js