看情况啦。没玩过题主说的游戏不过目测:单机双人

双人分别用同一键盘不同键位输入?

无鼠标输入?

题主又提到有源码,随意想了想,依据源码质量和抽象程度有以下几种可能方案:搭建信道传输键盘输入及窗口图像(及音频等输出)信号, 如图

都不用服务器了,P1(比如说)运行游戏,P1P2直接搭建实时数据传输通道,P2的输入数据传过去通过钩子之类的传入P1游戏进程,游戏窗口图像和音频输出数据等(只需图像的话直接捕捉屏幕或窗口图像数据都行)通过通道传到P2并显示

优点:土法炼钢,最简最易,适普性强

缺点:十分山寨,体验差,特别是P2可能会有延迟,而且要求P1与P2无共用键位,无法灵活设置

2. 如果源码抽象解耦出输入接受部分:

与1类似结构,但不用钩子,可直接将P2输入数据转换传入游戏,甚至同时将P1输入也转换输入而非直接读入

优点:获得更灵活键位设置和输入方案,比如游戏需要用到鼠标,那么1可能就不适用了。

3. 如果源码在2基础上解耦出图形音频输出生成部分:

如图。将解耦出的图像音频生成部分和输入部分做成单独的客户端与游戏本体通信(本体可运行在P1/P2或远程服务器),P1和P2的本地仅运行服务器捕捉输入发送至本体,并接受本体数据生成图像音频等

优点:若抽象解耦程度较高,数据传输需要带宽很小,3就已经算是比较好的方案了。

缺点:得改源码,操作起来复杂

当然还有各种其他的较奇葩方案,不过不成熟也体验差还难操作,就此按下不表。

基本就这样吧,又秀了一把灵魂画风真开心哦也。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐