我有一个用python编写的游戏服务器和扭曲的游戏服务器,以及一个python中的旧游戏客户端。我在Javascript中编写了一个新的游戏客户端,它将与websockets连接。我现在面临一个设计决定,
编辑:链接和清晰度
答案 0 :(得分:6)
这里缺少很多信息。
选项1肯定看起来很吓人,但它可能不适合你。重要的是你不要在你自己的项目出轨的情况下降落,因为你已经开始做出巨大的努力,你可能会在某些时候失去完成的动力。
选项2和3看起来更容易实现。我认为主要区别在于必须学习Node.js和额外的守护进程来管理选项2。
您可以随时选择执行2或3,如果您不满意,最多可以选择1。
答案 1 :(得分:1)
我假设您这样做是因为您还希望基于浏览器的游戏客户端能够连接,尽管您的问题并不清楚。
您可以查看wsproxy(HTML5 VNC客户端)附带的noVNC。它是TCP套接字代理的通用WebSockets。 wsproxy与noVNC一起使用,以连接到没有WebSockets支持的VNC服务器。在C,python和node.js中有三个单独的wsproxy实现。
免责声明:我制作了noVNC(和wsproxy)。
答案 2 :(得分:1)
如果你疯了并且真的知道JavaScript,重写应该是Node.js中非常好的练习。
虽然这取决于您获得了多少代码,但是使用JavaScript编写的客户端和服务器都会减少上下文切换,并且如果您正在进行大量插值的客户端,则可以重新使用代码。
如果您想学习Node.js并且您已经知道如何进行异步编程,我会说要重写。
另外,我用Node.js做了2个游戏服务器,所以如果你在路上有进一步的问题,我有很多经验:
https://github.com/BonsaiDen/NodeGame-Orbit
https://github.com/BonsaiDen/NodeGame-Shooter
您可能还想查看BiSON以节省使用WebSockets的带宽,我已经专门针对HTML5游戏编写了这样的内容:
https://github.com/BonsaiDen/BiSON.js
答案 3 :(得分:0)
是的,node.js非常适合游戏服务器开发。 node.js网络IO能力比python好得多。 但重写是一个很大的代价,如果只有一个node.js进程,你仍然无法利用可扩展性。 已经有一个游戏服务器框架支持多个进程并且可扩展性更高,请查看: https://github.com/NetEase/pomelo
此外,还有一个完整的开源演示: https://github.com/NetEase/lordofpomelo