拉登遊戲開發 分布式計算服務機客戶機程式設計

2021-09-05 06:46:12 字數 1761 閱讀 1720

關於拉登遊戲的開發本身並沒有太大難度,主要還是要解決計算結果需要很長時間的問題。要在時間上縮短就有兩種方式:演算法效率足夠好,計算機運算能力足夠強。對於這個問題而言,演算法的改進沒有太大可能性,而且問題本身就是乙個大量遍歷的過程,只有通過遍歷才能在其中找到更多的資訊,更多的美妙的發現。

下面的圖是設計的基本思路:

遊戲本身的研究價值似乎倒不是太多,而其中的趣味性還是蠻高的。

程式的設計思路如下:

服務計算機端執行程式為服務程式;個人pc端執行的程式為計算程式;儲存資料主要記錄計算的結果,計算過程日誌記錄。

計算程式和服務程式的互動資訊傳遞:

1.服務程式啟動監聽計算程式

2.計算程式傳送計算請求

3.服務程式響應請求

4.服務程式劃分,協調,分配計算任務

5.服務程式傳送計算任務訊息

6.計算程式接收計算任務資訊

7.計算程式計算(最為耗時,耗計算機資源)

8.計算程式傳送計算結果資訊

9.服務程式接收計算結果資訊

10.服務程式處理計算結果資訊,儲存記錄

乙個計算週期1-10完成,繼續進行2-10操作。  

下面是服務程式部分**:

public

class serverdiscompute  catch (unknownhostexception ex)  catch (ioexception ex)  

} public

void serverstart()  

} catch (ioexception ex)  } 

服務程式以多執行緒來與每乙個計算程式進行通訊。對與使用c/s模式設計,這部分可以繼續改進。在這裡可以將通訊的連線變為請求---應答---斷開---請求---應答方式。

下面是服務程式部分**:

class serverhandlerdiscompute implements runnable  

@override

public

void run()  catch (ioexception ex)  } 

服務程式執行主要監聽電腦程式發回的資訊。

下面是計算程式部分**:

/**

* 客戶端計算程式啟動方法

*/public

void clientstart()  catch (ioexception ex)  

try  catch (ioexception ex)  

//執行計算

executecompute(); 

try  catch (ioexception ex)  } 

程式的計算部分**在

拉登遊戲開發--在時間積累中尋找美麗的圖案

文章中。

有關分布式計算的整體設計基本完成,通過多個計算程式與服務程式同時執行,對同乙個n元格仔的進行計算尋求最終的計算結果值可以實現。

對於乙個n的值,尋找所以可能的計算結果將不用考慮計算結果被其中乙個計算程式獲取到,服務程式需要向其他正在進行n元格仔的計算程式發出中斷訊息。計算程式可以靈活的向服務程式傳送計算能力的相關訊息,服務程式可以協調性的分配任務。

下面是n=35,一共有1225中可能,在其中尋找最終的結果,目前運算的情況截圖如下:

目前這個運算不存在分布式,乙個計算程式在進行處理,出現上面vm摘要圖,並且此時此刻計算程式還在執行當中。如果對於乙個n僅僅找出乙個符合的結果就結束本次n的計算,則對已經獲取的資料結果進行分析是非常重要和有價值的。這對於服務程式分配任務有很大的參考價值。

分布式遊戲伺服器設計

登入伺服器 中心伺服器 遊戲伺服器 儲存伺服器 依賴系統 流量限制 橫向擴充套件 訊息內容加密 訊息序列 sequence 驗證 訊息完整性 crc 驗證 訊息時間戳驗證 黑名單 版本驗證 心跳 強制下線 登入控制 排隊系統 登入驗證 響應訊息 廣播訊息 對於特定的名單的訊息,提供名單群體推送功能 ...

分布式開發使用Dubbo時服務異常解決方法大全

1.確認註冊中心 如zooleeper 及dubbo是否開啟與配置是否正確 在搭載dubbo的伺服器中 web inf目錄下dubbo.properties屬性檔案是否正確配置 dubbo.registry.address zookeeper 為註冊中的實際位址。2.確認web應用配置檔案是否與自己...

分布式遊戲伺服器通用架構的設計

對於遊戲伺服器架構,不同專案除了遊戲玩法 匹配規則大不相同外,其餘部分如日誌系統 tcp 連線管理,玩家資料儲存,資料庫連線與訪問等大同小異。遊戲伺服器架構中高併發 可擴充套件是主要的設計點。本 chat 將從 0 到 1 的設計乙個高併發 可擴充套件的通用遊戲伺服器架構。該伺服器架構已在多個專案中...