我目前正在考虑使用Java客户端开发MMORPG。这将是一个生存沙盒游戏,有很多荒野。
现在我想知道是否有任何程序可以从正在运行的客户端的缓存中获取加载的世界。 (作为图像或其他可见的东西)我需要这个,因为世界将是巨大的,它将有助于分发游戏的官方地图。
答案 0 :(得分:0)
您可能希望从查看VBO和VAO开始(以非常快的方式在GPU而不是CPU上存储顶点,法线,纹理......数据)。我还建议您查看Blender,我相信您已经听说过,以及OBJ扩展所知的易读格式(OBJ扩展由WaveFront开发)。有许多库允许您读取这些文件,但格式足够简单,您可以编写大约80行或更少的高级网格加载器。
我不完全确定你的问题是什么意思,你是否可以从缓存中获得一个世界,但如果你想从图像中获取3D数据,你可以查看高度图。但是,对于没有洞穴的一般地形,高度贴图更好。通常这样的东西是从3D建模程序的输出中加载的。
这可能违背了其他人的想法,但最好的方法是将OpenGL用于其潜力。当然,这涉及为着色器等实现自己的矩阵堆栈,但最终简单的引擎修改的回报是巨大的。关于OpenGL的好处是即使您可能使用Java或C ++或某种语言,但这些方法(通常)也是相同的。但是,语法确实有所不同,就像语言本身一样。
Pyglet(OpenGL的Python绑定)是一个有趣的起点,如果你想要开始使用OpenGL同时保持编程的简易性和快速调试(因为它是一种解释语言),动态类型有助于因为OpenGL可以挑剔关于它接受的类型。