2012-03-18 48 views
0

基本上問這個「問題」的原因是爲了獲得一些信息,至少我沒有從stackoverflow找到或實際上沒有發現谷歌搜索。使用Web瀏覽器客戶端爲客戶端創建具有可能性的客戶端軟件的Web服務器的方法?

所以該產品將是一個多人遊戲,將與瀏覽器中播放,也能夠用,可以在C#,C++或其他任何語言能夠進行編程,客戶端軟件正在播放。 「桌面」客戶端的語言編碼不應該是這裏討論的內容。

所以這意味着我們應該能夠分離演示代碼,網絡代碼和實際基礎的遊戲邏輯,使服務器處理的遊戲邏輯,同時從服務器的客戶端目前的數據,無論他們是否是網頁版或桌面客戶。

畢竟,因爲這是一個多人遊戲,我們必須採取帳戶的連接數。 每個「遊戲室」的連接數量或多或少大約在8到12個之間,服務器可能僅限於處理它可以處理的內容,因此不存在任何問題。

這裏是什麼,我想,但我不知道這是否是甚至正確的方向可言。

Web界面可以使用javascript進行編碼,並使用ajax 或ajax-like技術。

在服務器端PHP可以或許使用,這也將 讓我們讓我們的插座,這將允許客戶端軟件 連接到服務器的。

但是你能靜靜地更新所產生的PHP使用JavaScript 頁,而無需有實際的頁面改變行爲? 我擔心的界面閃爍導航 通過不同的頁面時,我真的沒有那麼熟悉 不同的「Ajax技術」更多或更少。

所以我希望聽到並瞭解這種程序構建的不同方法,我相信這個頁面可以成爲其他人爲這類問題而奮鬥的好資源。

回答

1

你的方法是正確的路徑。第一個也是唯一的網頁應該完全用javascript來完成整個遊戲。沒有其他「頁面」的概念需要導航到。你會在JavaScript代碼中做所有事情(瀏覽器操作,遊戲邏輯,轉換,輸入/輸出等)。

可以失去你維護客戶端上,並持續狀態你會保持在服務器上的遊戲狀態。您確實可以通過JavaScript遊戲中的Ajax調用訪問服務器。在服務器端,你會公開那些期望某種參數的API,並返回JSON數據並將結果返回給javascript代碼。

現在在桌面上,您將創建完全相同的遊戲,除了您使用的語言不是JavaScript,而是例如C#或Java或C++。您仍然可以存儲在服務器上的遊戲狀態,並且您可以通過桌面遊戲中的網絡調用訪問它。

+0

雖然這將允許程序使用相同的「保存狀態」,但我們仍然會重新創建客戶端版本的實際遊戲。儘可能讓服務器處理邏輯數據的方法會更好,因爲這樣我們可以讓客戶端/瀏覽器軟件「調用函數」並提供參數。 – Ilariel 2012-03-18 22:19:51

+0

這一切都取決於遊戲的類型。如果它是一種動作/動作類型的遊戲,你真的需要在所有的動畫/遊戲邏輯上在客戶端做很多工作。如果這是一種模擬,那麼桌面遊戲在服務器端做的很多都是有意義的。 – Toad 2012-03-18 22:23:01