C++ 游戏中事件记录的适当体系结构
我试图修改一个游戏引擎,使其记录事件(如按键),并将这些事件存储在远程服务器上的MySQL数据库中。游戏引擎是用C++编写的,我现在有以下的直截了当的架构,使用MySQL +直接将代码>插入< /COD>记录到适当的数据库: 不幸的是,当连接到MySQL服务器时,会有很大的开销,游戏会停止很长一段时间。将一批Xs值的事件推送到服务器会导致游戏性的显著延迟(60秒值的事件可能需要12秒才能同步)。让MySQL端口公开访问显然也存在安全问题 我正在考虑另一种选择,而不是向服务器发送命令,服务器可以在自己的时间内与数据库交互: 在这里,游戏只发送必要的信息(例如,要更新的表和要插入的数据)。我不确定速度提升是否足够,或者什么系统适合管理游戏中发送的命令C++ 游戏中事件记录的适当体系结构,c++,mysql,events,game-engine,C++,Mysql,Events,Game Engine,我试图修改一个游戏引擎,使其记录事件(如按键),并将这些事件存储在远程服务器上的MySQL数据库中。游戏引擎是用C++编写的,我现在有以下的直截了当的架构,使用MySQL +直接将代码>插入< /COD>记录到适当的数据库: 不幸的是,当连接到MySQL服务器时,会有很大的开销,游戏会停止很长一段时间。将一批Xs值的事件推送到服务器会导致游戏性的显著延迟(60秒值的事件可能需要12秒才能同步)。让MySQL端口公开访问显然也存在安全问题 我正在考虑另一种选择,而不是向服务器发送命令,服务器可以
,但显然我需要一个C++解决方案。是否有合适的现有框架来实现我想要的功能?
大多数收集用户界面交互数据(在您的例子中是击键)的应用程序都将其放入某种本地文件中 然后在适当的时间(例如在游戏结束或另一个游戏开始时),他们将该文件(通常以压缩形式)发布到可公开访问的web服务器。web服务器上的软件解压缩数据并将其加载到分析系统(在您的情况下是MySQL服务器)中进行处理 因此,我建议如下这样,您将建立一个更安全的分析系统和一个响应更快的游戏。我支持这一点。此外,如果游戏已经有了客户机-服务器体系结构,那么服务器无论如何都应该验证用户命令,因此它也可以在过程中记录这些命令。除非目标是记录本地输入,而不是从输入生成的命令。在这种情况下,仅使用时间戳记录输入状态中的更改,以将记录保持在最小值。