React是创建基于Web的游戏的不错选择,特别是对于回合制或棋盘游戏 。 它的声明式方法非常适合此类游戏。
几天后,我们设法创建了一个名为graceless.city的简单游戏,使用react-create-app引导了一个React客户端,并在服务器上使用了socket.io和node.js。 背后的想法很简单,它由回合制游戏组成,所有玩家都应在5秒内移动自己的位置。 每回合,玩家的位置都会更新,玩家可以继续前进。
您可以在这里尝试游戏。
具有node.js和socket.io的服务器
使用socket.io确实令人满足:只需几行代码,您就可以与客户端进行实时通信。
服务器保留连接的玩家列表,并收听即将到来的消息。 映射在网格上的玩家通过频道发送他们的下一个动作。 服务器每5秒更新一次所有玩家位置,并将其广播给客户端。
我们想建议的另一个工具是火炮,它使对socket.io环境进行压力测试变得如此容易。

客户端与React
可以使用npm来安装Create React App,它非常适合引导没有配置的React应用。 Package.json将仅包含一个依赖项和少量脚本。 它将为我们处理Babel , ESLint和webpack 。

当用户通过Web应用程序加入游戏时,我们打开套接字连接,并且每隔5秒就会收到更新的玩家位置通知。 我们将leaflet.js与React结合使用,将玩家放置在地图上。 每次我们收到新数据并设置状态时,我们都会使React 重新渲染网格上的玩家,以便他们可以采取其他行动。
结论
发展无情的城市,我们感到非常开心! 我们有一个很短的时间内就可以处理许多并发玩家的原型。 React声明式方法很容易推理一个棋盘游戏。 Socket.io以快速,可靠的方式处理实时通信,同时保持代码的简洁明了。
尼克和朱斯法尔科