2010-01-14 118 views
2

我們正在開發一個使用TCP連接的silverlight多人遊戲。我們將所有的遊戲對象和引擎存儲在一個單獨的組合中,我們的意思是讓SL客戶端和服務器應用程序共享。但是,似乎特殊的SL程序集不能與純.NET應用程序共享,反之亦然。沒有共享代碼庫的客戶端 - 服務器

那麼我們有什麼選擇?我們知道SL 4.0 beta提供了大部分基本命名空間的部分共享程序集,但我們目前對測試版不感興趣。

在服務器端運行所有的遊戲邏輯甚至是遠程可能的,然後讓SL客戶端發送輸入到服務器,並按照服務器的指示渲染圖形?

回答

0

純.NET應用程序甚至能夠鏈接Silverlight 3.0程序集,只需嘗試一下。只是他們現在爲4.0做了這個功能的營銷。 ;-)

但是,我遇到了一些小問題(似乎有些Func<>/Action<>代表不兼容)。當您選擇該編譯器選項時,Silverlight 3.0程序集也不會進行優化。

你可以做的是添加現有的源代碼文件在您的項目作爲鏈接。但是當你有很多東西並且經常創建新的或者刪除源代碼文件時,這確實是一種痛苦。您還無法鏈接完整的文件夾。 : -/

RIA服務的Visual Studio工具(Silverlight LOB應用程序的當前Microsoft RAD方法)使用T4從運行在承載Web服務的Web服務器上的.NET項目中複製實體類代碼到Silverlight項目。對我來說,這並不像一個乾淨的方法。但是,也許你不像我一樣頭疼,並且可以檢查是否可以利用該功能來達到目的。

+0

我們嘗試引用SL 3.0程序集,並且我們得到了一個對話,說它不可能。我們不得不使用TCP或更低級別的網絡來獲得可接受的性能。 – 2010-01-14 16:42:51

+0

嗯,它對我來說工作得很好。我使用了silverlight類庫的程序集,當然我除了System和System.Core之外都扔掉了所有東西。也許如果有那些更好的Silverlight UI組件的依賴關係,它將不再工作。 – herzmeister 2010-01-14 17:53:03

+0

你是對的!我們可以做出參考,但是我們的應用程序聲稱System.Core以某種方式失敗。我們認爲這是由於silverlight和.NET之間的差異,但真正的罪魁禍首是使用Action/Func。感謝幫助 – 2010-01-17 00:28:40

相關問題