我目前正在与Irrlicht合作开发多人游戏。

所以很明显,在客户端,我们有Irrlicht来执行渲染,在服务器端有Bullet来执行物理计算。

其余的我们使用Qt(GUI,网络等)。

Irrlicht有一些有用的功能,例如:

  • 从存档文件加载网格,纹理等,而无需将其解压缩。

  • 我们将所有资源存储在TAR文件中,服务器将其发送到客户端,然后Irrlicht加载它(不解压缩),这真的很有用。

    但是Bullet需要了解执行碰撞检测的模型,因此我需要加载模型。

    一种解决方案是使用Qt和libarchive开发TAR解析器,并告诉Bullet用ConvexDecomposition::WaveFrontObj加载它。但是更简单的解决方案是使用Irrlicht从存档中加载网格(因为代码已经完成)。

    因此,有没有一种方法可以在不渲染到视频驱动程序的情况下使用服务器端Irrlicht?

    最佳答案

    我终于找到了使用Irrlicht服务器端的方法。

    因此,我希望Irrlicht在不进行任何渲染的情况下执行一些计算。解决方案非常简单,我只需要使用NULL驱动程序类型创 build 备:

    SIrrlichtCreationParameters params;
    params.DriverType = EDT_NULL;
    device = createDeviceEx (params);
    

    关于c++ - 非法服务器端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17124117/

    10-09 06:37