Skip to content

Zhichii/Craeft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages