@海阔天空 go在计算密集型应用中虽然很快,但不代表能比肩C,在内存利用上,C还是那个王者,这点在游戏服务器资源利用上很重要,还有就是协程的运用,虽然协程在处理并行运算很有强,但是真正并行计算还是根据物理CPU核心数来定的,所以起内部有一套排队处理机制,说白了就是处理完了一个事情后马上去处理另外一个事情,其他请求在来的话那就要进入等待了,那这个等待就会造成游戏延迟,因为他不想web应用,多等待半秒没什么感觉,但是到fps游戏来说,服务器处理那就是要在10ms以内,在加上用户的网路延迟,这样才算是可接受的,因为携程的特性,服务器能保持更多连接,但能不能处理那么多连接的请求,这个是不好把握的,go的优势其实就是在兼顾性能的同时还能自动GC,这点在编译型语言中是没有的,在性能要求比较极限的应用中C当之无愧是王者,还有就是如果是斗地主类游戏,用go开发就比较好 @海阔天空 如果在前端完成,那就不可避免的能够存在例如一刀秒的外挂存在,这种就相当于服务器信任了前端数据,收到这个数据,然后广播给其他玩家,这个怪物被这个玩家打掉了,其他玩家相应地图要更新,最好的方式就是在服务器上计算,客户端只上传出招信息,服务器计算血量,广播给其他用户,这样在多方抢夺同一个怪物收益时就更好处理,谁拿到完全看最后是谁杀死的,对玩家的出招时机以及血量把握有一定要求,这样才能体现出竞技性,同样的还有射击类游戏,对于坐标点计算的,不同游戏也有不同计算需求,其中有个很经典的就是AOI兴趣点计算,简单的说就是有10个玩家在线,一个玩家移动了位置,并不一定要给剩余9个玩家发送位置,只需给一部分离那个移动玩家近的玩家发送位置就行,也就是说我离你好远好远,我根本不关心你移动了还是怎么了,反正我又看不见,你只要到达了离我一定范围内,我就开始接收你的位置信息,这个是最简单的,类似于lol这种因为涉及到草从已经切换角色视角来了解战局,基本上是全部广播的,但其中的计算也是比较复杂的 @海阔天空 go在计算密集型应用中虽然很快,但不代表能比肩C,在内存利用上,C还是那个王者,这点在游戏服务器资源利用上很重要,还有就是协程的运用,虽然协程在处理并行运算很有强,但是真正并行计算还是根据物理CPU核心数来定的,所以起内部有一套排队处理机制,说白了就是处理完了一个事情后马上去处理另外一个事情,其他请求在来的话那就要进入等待了,那这个等待就会造成游戏延迟,因为他不想web应用,多等待半秒没什么感觉,但是到fps游戏来说,服务器处理那就是要在10ms以内,在加上用户的网路延迟,这样才算是可接受的,因为携程的特性,服务器能保持更多连接,但能不能处理那么多连接的请求,这个是不好把握的,go的优势其实就是在兼顾性能的同时还能自动GC,这点在编译型语言中是没有的,在性能要求比较极限的应用中C当之无愧是王者,还有就是如果是斗地主类游戏,用go开发就比较好 @海阔天空 如果在前端完成,那就不可避免的能够存在例如一刀秒的外挂存在,这种就相当于服务器信任了前端数据,收到这个数据,然后广播给其他玩家,这个怪物被这个玩家打掉了,其他玩家相应地图要更新,最好的方式就是在服务器上计算,客户端只上传出招信息,服务器计算血量,广播给其他用户,这样在多方抢夺同一个怪物收益时就更好处理,谁拿到完全看最后是谁杀死的,对玩家的出招时机以及血量把握有一定要求,这样才能体现出竞技性,同样的还有射击类游戏,对于坐标点计算的,不同游戏也有不同计算需求,其中有个很经典的就是AOI兴趣点计算,简单的说就是有10个玩家在线,一个玩家移动了位置,并不一定要给剩余9个玩家发送位置,只需给一部分离那个移动玩家近的玩家发送位置就行,也就是说我离你好远好远,我根本不关心你移动了还是怎么了,反正我又看不见,你只要到达了离我一定范围内,我就开始接收你的位置信息,这个是最简单的,类似于lol这种因为涉及到草从已经切换角色视角来了解战局,基本上是全部广播的,但其中的计算也是比较复杂的