DGF的詳細解說[Sumtec]

來源:互聯網
上載者:User

實際上在很早之前,我曾經發表了好幾個Post,來解說我這個計劃的總體思想以及一些詳細的解說,也許是比較零散吧,可能有部分朋友沒有能夠全面的瞭解。先給大家收集一下這些文章的串連,不過也許我那些都說得太詳細了,如果您嫌麻煩,可以跳過這些連結,我會嘗試用簡潔的語言,從另外一個角度描述整個的計劃。當然,如果您能夠耐心的看完所有的這些東西,自然最好,畢竟詳細的解釋比起簡單的解釋不容易引起歧義。下面是串連:

[公告] 重新寫的“註冊描述”[Sumtec]   (這裡給大家清楚地講解了整個項目的目的)
[構想] 關於架構-1 [sumtec]   (這裡告訴大家我的計劃並不是實現一個映像引擎)
[構思] 關於架構-2 [sumtec]   (這裡給大家展示的是我一個很玄乎的想法,目的是和普通的遊戲引擎概念區別出來)
[構思] 關於架構-4 [sumtec]   (這個Post裡面展示的是幾個比較現實的東西,有一些正在這裡面實現)

上面都是文字資料,看起來也許會頭疼。下面給出一些映像資料:

[討論] 我的簡單架構圖[Sumtec]  (這裡有一個比較完整的結果圖,用圖形來展示整個計劃的結果和想法,雖然比較粗糙,但是總可以瞭解一些基本的東西)
[討論] 分散式運算的Action,我的解決方案[Sumtec]  (這個是我的“分散式運算”的一個解決方案,說的是“動作”方面的問題的解決。如果沒有仔細看前面的文章,也許並不能夠很好的瞭解這個意圖)

好了,下面開始簡單的進行介紹:
首先這個計劃並不是一個具體的遊戲計劃,其次不是一個傳統意義的遊戲引擎的計劃。所謂傳統意義的遊戲引擎是指,基本上圍繞解決圖形系統的圖形引擎(例如QuakeIII的引擎)或者圍繞多媒體方面的、各種感官方面的引擎。
那麼我們圍繞的問題是什麼呢?遊戲當中物件模型的建立、資料儲存問題、網路連接與傳輸問題、分散式處理問題,等等,簡而言之就是一個底層的基礎架構。對照.NET Framework的作用和意義,就能夠明白這個.Game Framework的作用和意義——我們不是僅僅提供一個GDI+,而是所有與遊戲開發相關的底層基礎。
有人會有疑問,你的想法是不是太大了?對,這個想法是太大了,但是我並沒有說立刻要實現,這個只是一個最終的目標。.NET能夠實現,為什麼我們的計劃是不可能實現的呢?Mono不也一樣在逐步建立嗎?

另外,我在這裡向澄清一下一些問題。比如說分散式處理中的資料安全問題。
首先需要說明的是,這個問題不是說一兩句話就能夠說明白的。如果真需要知道這些細節問題,需要看一下《應用密碼學》這本書。
很多人會提出來,如果分散式處理的話,資料安全很難保證。理由如下:
1、.NET的程式很容易破解
2、客戶的資料在用戶端很容易被破解
3、外掛更容易實現,或者功能會更加強大

對於上面這三點我一一解釋:(當然,還有更多的問題,簡便起見這裡不討論了。)
1、.NET的程式的破解並不是如你想象的那麼簡單。
   首先.NET的強命名可以保證你的程式不被修改。其次,native和msil混合模式(也就是非託管和託管的混合模式)能夠抵抗“反編譯——再編譯”這種破解方式,因為ildasm無法得到native的反組譯碼。或者說目前沒有什麼好的辦法對付混合模式的程式。最後,我們應當相信.NET的安全機制,這個機制保證了我們只需要有一個“混合模式”的核心,就可以用這個核心以及.NET提供的安全機制來阻止整個代碼遭受入侵。
   因此說,.NET的程式的計算過程應當是可信的。或者說我們不需要擔心計算過程被破壞,或者計算資料被篡改。但是這樣並不解決資料的傳輸和儲存問題,這個問題我在下面一點說明。

2、用戶端的資料在用戶端的修改也許並不容易。
   為瞭解決這方面的問題,我們需要對整個資料進行加密。實際上我們完全可以做到整個資料是不可被修改的。簡單的說一個方案來示意一下(也許有漏洞):每一次用戶端希望儲存資料的時候,把儲存的資料的散列值發送到服務端儲存,下一次讀出的時候和服務端的散列值比較,如果不一樣代表被修改了。這個方法的安全強度取決於散列的方式,如果採用比較安全的散列演算法,甚至交由伺服器來散列,這個過程應當是相當安全的。這裡需要說明一下,這個散列並不是.NET的HashCode函數那種簡單的散列,而是密碼學裡面的散列。雖然意思是一樣的,但是安全形度看則完全不一樣。密碼學的散列要求的是資料的改變對於散列值的改變是不可預測的(不是不可重複的),如果有疑問,還是先看看相關書籍。

3、從漏洞方面看,也許給外掛的漏洞更大,但是不代表我們不能夠比目前的遊戲做得更好。
   我之所以這麼說,主要的原因是現在的網路遊戲的資料轉送實在是做得很弱,從資料安全形度說,也就是說我們完全可以做到比他們更安全。當然,如果他們也採取了和我們一樣的措施,也許會更安全一點。但是我想告訴大家的是,如果認真去做著一件事情的話,也許對於資料安全專家才能夠感覺到分布式與傳統的C/S模式之間,在資料轉送安全方面的差別。為什麼這麼說呢,我舉一個例子:比如說我們傳輸的資料完全可以數位簽章,簽名之後別人就不能夠修改或者偽造我們的資料了。你覺得破解數位簽章會很容易嗎?我想關於如何破解簽名,知道的人並不多,何況我們傳輸的資料有效時間很短暫,想要有效進行攻擊,是一件非常困難的事情。那麼分布式與C/S模式之間的資料安全問題有什麼區別呢?有,但是也只有真正研究這方面的人才知道。而且我可以說,這最多是降低了安全強度,但是同樣是非常困難的一件事情。

最後,我再強調一下這個項目的目的:把遊戲設計者從繁重的、與遊戲設計本身無關的那些物件模型建立、傳輸協議設計甚至資料安全等各方面的任務裡面解脫出來,專心做遊戲劇情的設計等。

如果我有空,還會繼續寫一些稍為詳細一點的架構結構圖出來給大家看。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.