Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 5.1 KB

README_zh-CN.md

File metadata and controls

71 lines (43 loc) · 5.1 KB

目录

团队介绍

AOF其实是 After Our Friday 的缩写,翻译过来的意思是“放假后”开发团队(然而不幸的是,after friday并不一定是放假😂)

团队主页

团队成员

  • longjunyu2(发起人,MCinabox的主要作者)
  • JVM(Boat的主要作者)
  • lambda
  • MCredbear
  • ShirosakiMio(澪)
  • tsaltedfishking
  • (开发群里几位没什么存在感的修改过Boat或者MCinabox的开发者)

还有几位github上的国外老哥(有从我们的“竞争对手” khanhduytran0pojav团队那找来的人)

《历史书》

  时间可以追溯到2014年,当时,美籍华裔的张卓为做出了应该是第一个在安卓手机上运行JAVA版MC的软件——BoardWalk
  卓伟的BoardWalk有两个版本,一个是岷叔曾经做过视频的用DVM虚拟机的版本,一个是用JVM虚拟机的版本(版本号为1.9)。 (两者的区别)
  当时的BoardWalk并不稳定,而且不开源,原作者张卓为也在互联网上销声匿迹了好几年,为了获得更好的游戏体验,贴吧里掀起了逆向魔改BoardWalk热潮。   2019年,BoardWalk开源了。JVM修改其源码并自行编译JVM,做出了Boat。由于JVM的手机是32位处理器的,他只编译了32位的JVM。之后,longjunyu2和JVM还有其他几名开发者开始共同开发MCinabox。由于JVM的手机是32位以及他的电脑磁盘空间不足最主要还是因为他想摸鱼,64位的JVM拖了很久才在JVM的帮助下由longjunyu2编译出来。

DVM和JVM虚拟机

JVM 虚拟机就是我们在电脑上常用的那个JAVA虚拟机。这个虚拟机理论上能让我们完整、正常地体验Minecraft(可以使用Forge,Fabric之类的),但编译一个用于安卓系统的JVM是一件非常麻烦的事情。

DVM 虚拟机是谷歌专门为安卓系统做的JAVA虚拟机,几乎所有的安卓应用都要用它来运行。它不能直接运行.jar,它能运行的是经过dx处理的.dex。Minecraft的.jar文件除了要经过dx的处理还要再经过jar2jar的处理才能够运行。另外还因为它加载class文件的方式,如果想用DVM来运行带Mod的Minecraft,不仅Minecraft的.jar要改,Mod的.jar也要修改,这些修改步骤并没有自动脚本能完成。早期的BoardWalk(不是1.9版本的)使用的就是DVM虚拟机,它之所以安装一个版本的Minecraft非常慢不仅是因为下载速度慢,还因为执行dx的计算量是非常大的,在手机上要执行很长时间。

尽管Minecraft是持续更新的,dx却早早地停更了。就我自己的测试,1.9及以上版本的Minecraft都无法被dx成功处理了,这也是BoardWalk无法运行更新版本的Minecraft的原因之一。

游戏性能和报错

图形库

首先要提到的是Minecraft的图形库 OpenGL

而使用Arm处理器的安卓手机所支持的图形库是它的近亲OpenGL ES

尽管是近亲,这两者完全不能互相兼容。得把OpenGL转化为OpenGL ES,这就要用到gl4es了。

gl4es不是完美的,一是它只支持转换版本很旧的OpenGL 2.0和1.5,大大限制了Minecraft的帧数;二是它还有很多bug,比如Forge在启动游戏时那个的敲铁砧的动画会导致游戏崩溃(因此得禁用启动动画黑屏启动游戏)、调整minmap会把游戏画面渲染得奇♂奇♂怪♂怪♂……有人说什么黑屏之类的基本上也是拜它所赐。

JAVA虚拟机

不管是DVM还是JVM虚拟机,都是版本越高性能越好。(当然DVM虚拟机的版本取决于你的安卓系统版本)

横向比较的话,我个人认为DVM的性能更好,因为我曾经用khanhduytran0的pojavlauncher在骁龙855上以一百多帧玩Minecraft。但现在据说khanhduytran0的团队经过讨论认为还是JVM虚拟机的性能更好,他们将改为使用openjdk9mobile。

报错提交

我们当然希望大家提交报错是在github的issue里提交,并且附带上日志文件。但现实是大部分人都不会用github而且在qq群里瞎叫唤。

目前情况和未来方向

  • 我们正在想办法让MCinabox能够自动安装Fabric当然同时还要尽可能适配某些Mod(不过浏览器Mod是不可能了,在安卓系统下这个东西完全不可能运行)
  • 我们的竞争对手 khanhduytran0和他的团队现在的开发重心在pojavlauncher_iOS 上,是的你没听错,在iOS上玩JAVA版Minecraft