1、背景
弄这个东东,主要想探索下元宇宙中的数字人(AI)领域和游戏领域结合的平行世界到底怎么玩?特别是高性能游戏服务器框架设计
元宇宙安全设计-技术人产品思维修炼(9)_luozhonghua2000的博客-CSDN博客
2、传统逻辑架构
2.1、消息流程:
客户端 -> Protobuf封装游戏数据 -> 打包成自定义数据包Packet -> 编码器将Packet编码为二进制字节流Bytebuf -> 发送给服务端 -> 服务端 -> 收到二进制字节流Bytebuf解码为Packet -> 服务端业务处理handler根据Packet协议号和Protobuf协议文件取出相应的请求数据进行游戏逻辑处理 -> 下发协议给客户端
2.2、protobuf生成协议代码,这个重要,没有这个协议代码是无法完成通信数据交换的
各rpc协议汇总对比,游戏领域的应用肯定是跨语言的,特别是通信,除了游戏,工业,IOT,元宇宙,数字人等领域需要集成的都需要考虑跨语言
生成参考:
除了这个,代码没啥可将的,都很基础,最后会附上代码,提供大家了解。
3、验证
3.1、通信代码
client钩子
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
if (NettyTcpClient.instance().getChannel() != null) {
NettyTcpClient.instance().getChannel().disconnect();
}
NettyTcpClient.instance().setChannel(ctx.channel());
System.out.println("登录 " + ctx.channel().remoteAddress().toString().replace("/", "") + " 成功");
}
server钩子 public void channelActive(ChannelHandlerContext ctx) throws Exception { super.channelActive(ctx); log.info("[{}] connected", ctx.channel().remoteAddress()); System.out.println("----channel:"+ctx.channel()); ref.put(ctx.channel(), ctx.channel()); }
通信与协议Netty+Protobuf-游戏设计与开发(1)配套代码-Java文档类资源-CSDN下载
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)