# HelloNewWorld **Repository Path**: vblog/hello-new-world ## Basic Information - **Project Name**: HelloNewWorld - **Description**: 全新的世界,玩家即引擎 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://vblog.gitee.io/hello-new-world/ - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2022-01-24 - **Last Updated**: 2024-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 你好,新世界 ### 这是什么? 《你好,新世界》是一款2D横版沙盒游戏,基于HTML5 Canvas实现的游戏引擎,额。。。好吧。 实际上遗憾的是我们并不提供通用游戏引擎也不提供完整的游戏。 我们既不想设计一款优秀的游戏引擎(实际上也没这能力)也不想完整的制作一款游戏(人类总是懒惰的 : P)。 假如,每个玩家都能够为这个游戏写一段代码,而这些代码将实时用于构建整个游戏世界,我们只提供一个底层的游戏运行容器并开放大量接口,一个由大量玩家一起开发的游戏会是怎样的图景呢?: D 项目目前还在初步开发阶段,敬请期待,尚处于乱糟糟阶段。 ### 如何使用? 您可以使用最简易的方式打开这个项目,只需要使用浏览器将 index.html 打开即可。 如果您已安装Node.js,则可以在项目根目录打开终端,输入以下命令并执行,它会开启您的浏览器并在您保存代码时热刷新页面。 ```bash node server/app.js ``` ### 开发计划 ##### 2022-01-30 - [ ] 改进优化现有代码结构 - [ ] 实现远程/本地资源加载器并提供进度监听 - [ ] 规划描述完整场景的数据结构(如地图、精灵等等) - [ ] 实现鼠标、键盘等事件监听 - [ ] 实现行为树封装并可绑定于Node上 - [ ] 实现非线性动画并可绑定于Node上 - [ ] 实现矩形碰撞检测 ### 基本世界观 1.世界中所有实体构成的基本元素都是一种名为像素的玩意。 2.世界中的像素是无限的,每位玩家可以无门槛随时获得。 ### 创造物品 通过将像素拼装得到新的元素、道具、物品,并为他们实现接口和行为、属性,将不同功能的元素拼接一起时将通过接口联动新元素的行为、属性,比如可以设计管道接口,行为是将管道1的数据传到管道2,通过将多个这样的道具拼接一起得到新元素,将它命名为”电线“,将”电线“和某些制造出来的用电器接入就可以将信号(电压、电流等)通过管道传入用电器实现驱动效果,当然在这个世界也可以不遵循常理不用电作为能量形式。 ### 实验沙箱 当新的元素被制造出来时,需要先进入独立于每个用户空间的实验沙箱中去实验这些元素、道具、物品的功能,比如某个道具是在当前土地上制造一个沙雕,实验沙箱是为了避免用户做出了某些逆天功能,直接跑到公共世界破坏游戏平衡性,在测试完毕后可以提交审核,通过后将实时集成到世界中。 ### 审核上线 管理组需要对用户提交的新元素、道具、物品进行审核,特别是对其代码逻辑review,确认未破坏游戏的平衡,以及进行损耗周期定义,审批通过后创造者者可以为它定价以及发行数量等发布到公共世界的商店中,发行也需要成本,使用元素越复杂越多成本越高,后面整个世界里该物品的存量会和价格息息相关,存量多价格会贬值,存量少了则会升值,商店分销后将会把收入结算与创造者分成并收取一定的税费。 ### 道具使用 用户除了自己创造元素、道具、物品外,还可以在自己购置的土地上建设商店,从别处进货售卖,可以基于别人的东西进行魔改后再提交审批,可以在自己的土地和公共世界中使用道具。 ### 土地购置 用户拥有一定资产后可以自己购置土地,别人无权在该土地上修改或使用道具,土地可以转手售卖。 ### 相关文档 - [Lodash 中文文档](https://www.lodashjs.com/)