游戏业余爱好者疑问:服务端lua脚本和客户端如何优雅的交互?市面常见游戏的lua交互是如何设计的呢?
我着重强调一下:我不是问lua和c++在技术代码上如何交互的问题,我是问服务端lua和客户端如何交互。
我10年c++,游戏业余爱好者。
我举个例子来描述我的问题:
1、客户端玩家点击NPC
2、客户端发送消息到服务端
3、服务端收到消息,调用lua脚本
4、【lua脚本将脚本中的文字发送到客户端】
5、客户端将文字显示在和NPC交互的对话框上。
一、这是我想像的游戏的逻辑处理流程,我也不知道游戏开发公司是不是这种逻辑思路来处理的?
二、最大的问题在于:【lua脚本将脚本中的文字发送到客户端】 这一部分,因为lua脚本本身并不具备网络通信的功能,那么我能想到的就是用c++封装好一个网络通信函数,然后lua脚本调用我这个函数将脚本中的文字发送到客户端,理论上这是可行的。但是我觉得这有一个问题啊:游戏中有成千上万的业务逻辑的lua脚本,也就意味着有成千上万的lua脚本调用c++封装好的网络通信函数 即使把这些通信函数进行归类,那归完类也还是有很多啊,难道我真的要在c++程序中造这么多种不同的网络通信函数,留给lua脚本调用吗?这就是我的疑问。我想知道的是:是否有成熟的非常好的解决方案来解决这个问题?
因为我从来没做过游戏,所以我想也许我这个问题就是弱智入门级的问题,而且早就有人想到这个问题了,早就有现成的思路了,我就是想知道这个思路,和如何处理的。