我正在用Node.js和Socket.io構建一個大型多人遊戲。所有玩家都會在同一張無限地圖上移動(想想Minecraft)。隨着玩家的移動,我加載他們看得見的瓷磚。當玩家移動他們的動作時應該發送給所有可以看到他們的玩家。在多人Socket.io遊戲中管理套接字
我的問題是;我應該如何去構建我的套接字?對於所有玩家來說只有一個插座看起來好像不會縮放。我可以將世界分成塊,但我不知道如何管理塊邊界。由於大多數玩家在大部分時間都無法看到對方,所以我更希望每個玩家的套接字只能獲得與他們相關的更新。
我讀過,Socket.io有一個「房間」的概念,它們只是能夠得到相同消息的套接字。爲每個連接的玩家設置一個單獨的房間,我可以添加任何其他在附近移動的玩家的插槽,這是否可行?然後,每次玩家移動時,我都可以向該房間發送消息。當觀衆離開或加入房間時,我該如何管理?
顯然這是一個模糊的問題,但我只是尋找最佳實踐建議。有關該主題的文章的鏈接將不勝感激。
您是否想過使用[Quadtrees](http://en.wikipedia.org/wiki/Quadtree)查找玩家位置?開始尋找如何解決這個問題的好地方是[BrowserQuest源代碼](https://github.com/mozilla/BrowserQuest)。 – hughsk 2012-03-30 00:16:23