2012-02-19 65 views
0

我目前正在建造我的第一個網站只是爲了練習。我在HTML5和JavaScript中扔了一場pong的快速遊戲。我想知道如何才能把它變成網絡遊戲。與HTML5,Javascript和AJAX網絡遊戲。這會工作嗎?

有沒有什麼能夠阻止我說出來,將用戶登錄到我的網站,將他們的信息存儲在sql數據庫中,然後查找另一個登錄並等待玩我的遊戲的人。要處理網絡,我可以創建一個sql數據庫並使用AJAX將新信息發佈到專門處理網絡的表中?

這裏是什麼,我一直在集思廣益的視覺例如:

[sql table: network] 
    [logged in user: Josh] [Josh paddle position Y] 
    [logged in user: Tim] [Tim Paddle position Y] 

    Use Ajax XMLHttpRequest to post Josh paddle position Y and Tim Paddle Position Y 
    to the network table, updating each client's screen accordingly (maybe use XMLHttpRequest.responseText to get the other person's information) 

    delete network table when both users have left the game 

無論如何,如果你不認爲這種方法會工作,你可以點我也許是正確的方向?我對網絡編程還很陌生,所以也許我很想理解Ajax的工作方式。當涉及到Web應用程序時,網絡通常如何完成?

回答

0

有幾個問題你的方法:

  1. 你能儘可能快地用戶移動它更新槳位置?網絡通信滯後,DB需要時間更新其數據。
  2. 即使對於少數用戶來說也不是這樣的問題,對於很多人來說,處理這麼多的用戶請求會變得非常痛苦。
  3. 如何通知一個用戶另一個操作?在你的計劃中,你應該非常頻繁地詢問服務器以獲取更新。這增加了總體負載。

該解決方案可能是點對點連接,但JS現在不支持它。

要發佈更新並獲得有關它們的通知,您可以使用持久性連接:而不是每個查詢的重新連接連接,只需執行一次,然後將其用於雙向通信。從這個額外的好處是逃避輪詢服務器關於更新的需要。 請參閱維基百科上的Server push文章。

另外使用DB可能會造成代價昂貴。實際上,對於每個遊戲,您需要的是連接關閉時將刪除的幾個變量,因此您可以將它們存儲在內存中。