Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I'm too lazy to write the English version and my English is not very well. (Chinglish)

有疑问请加QQ:858345934,或者E-Mail:Qiuyixuan_last@outlook.com

鸣谢

使用了JsonCpp,因为我实在不会写JSON解析(

千方百块 / Craeft

千方百块励志成为Minecraft社区版,解决掉Minecraft的诸多问题,包括但不限于基岩版开发者不干人事,双版本特性不统一,两个版本史山代码太多,且不开源,对于社区支持性不好,优化差,不跨平台(Java版无法运行在手机上,基岩版无法运行在Linux上)等,且目标是让玩家满意,不强求“合理”而删除掉特性。 技术细节请参考这里或直接阅读代码。

计划

我决定使用C++、SDL2以及OpenGL实现。开源,允许魔改。

列表(随时更新)

服务端

(待完成#1)

添加注册表(Registry)并使用JSON数据驱动。

添加区块。区块使用24格方块作为长宽高。记得考虑维度数量。大区块使用12格区块作为长宽高。一个文件存储一个大区块。文件大小约24MiB左右,文件大小适中。我原来还算错了(emm)。

添加方块(Block)、实体(Entity)、物品(Item),并达到可玩状态。

NBT数据以及方块实体称为数据(Data)、方块状态和实体的变种(比如羊的16色;比如某变种既有性格差异又有渲染差异,那就由两个变量决定)叫做渲染状态(RenderState)。 这样可以区分材质包纹理包与数据。

玩家实体可以也可以不由客户端控制,因为客户端要与玩家“挂钩”才行,这样方便实现假人模组。

(待完成#2)

添加计划刻、世界加载、卸载、生成、保存等。

(待完成#3)

学习TCP/IP或者UDP,实现前后端交流。

客户端

(待完成#4)

学习OpenGL和SDL2,实现最基本的画面渲染。毕竟Mojang已经用了15年没换过了,而且现在只是有迹象表明Mojang在优化,无法证明Mojang真的要换渲染引擎。

About

我要重写一个Minecraft

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages