跳到主要內容

發表文章

目前顯示的是 11月, 2023的文章

幀同步技術

  幀同步在服務端採用 房間模式 ,玩家在對戰時創建對應房間並將玩家加入該房間進行對戰,對於在線遊戲玩家數超過單服務器負載上限時可以多開房間服,這樣可以有效分散帶寬壓,為了更好的遊戲體驗一般會對進行對戰遊戲匹配進入合適的房間。 幀同步保證所有客戶端在每一個frame執行後的結果是一致的,但考慮不同客戶端延遲不同使用嚴格模式必須等待所有客戶端消息收到才能廣播,一個客戶端卡會造成所有用戶都卡頓,在這我們使用樂觀鎖模式。 樂觀模式: 服務端每一個turn(frame)無須等待客戶端消息,直接將當前收集到的消息廣播給客戶端,因此卡的客戶端自己會顯示卡頓或是無效,但不會影響到其他用戶 我們務必保證客戶端上傳FrameData依據的關鍵幀Id是準確無誤的,也就是客戶端A在 FrameId = 233 跟客戶端B在 FrameId = 233,不能有時間差,所以保證了客戶端 Update 跟計算關鍵幀都是依據真實時間就能做到這點,這樣客戶端上傳FrameData就醫定是校時過的。 網路平滑化 當然服務端或客戶端收到對方消息可能是網路延遲過N各Frame才收到,這個就看服務端/客戶端的處理是設定平滑多少了,平滑設定間隔大了 服務端處理的是 Current FrameId - N FrameId 的消息,也因此客戶端收到消息必定也是延遲N Frame過後的數。這邊會牽涉到預判跟回滾,因為樂觀鎖不會因為消息沒收到就停止,所以客戶端必須預測目前Frame的玩家行為,但如果預測錯了就必須回滾回去。 邏輯計算要點 在邏輯運算中必須保證多端之間的運算結果是一致的,因此必須保證以下重點 使用隨機必須保證執行結果一致 每一個房間分配一個隨機種子,根據種子計算的到結果一致 禁止使用float進行計算 自行實現float class 客戶端刷新 entity 不可以有順序性問題,譬如判斷 entity.UserId == MyUserId 造成運算順序差異
 打包版本到服務端出現獲取 User 表問題 在本地連到外部數據庫測試也是出現這個現象,後來發現外部數據庫  lower_case_table_names = 0, 這邊連到GCP進行修改並重啟 mysql 就好了,配置如下

聯準會停止升息

 2023年年末, 美國聯準會停止升息,因應就業率問題如果持續高利率會扼殺經濟造成就業惡化, 因此在有效控制通膨情況下應該會開始降息來改善美國國內就業市場問題

安裝 Chloe 插件

首先安裝安裝 Chloe.MySql 插件, 可以參考github作者   [Chloe github] 安裝完成後, 下面寫個測試案例試試看 MySqlContext dbContext = new MySqlContext(new MySqlConnectionFactory( "Server=localhost;Port=3306;Database=Chloe;")); Person person = null; var q = dbContext.Query<Person>(); object _result = q.Where(a => a.Id > 0).ToList(); 運行時出現錯誤 System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. 系统找不到指定的文件。 接著安裝 Microsoft.Bcl.AsyncInterfaces

隱私權政策

  隱私權政策 本站有參加 Google AdSense計畫,由於 Google AdSense 規定的隱私權透明揭示原則,在此提出說明: 當您造訪本站時,我們會透過第三方廣告公司與廣告聯播網來放送廣告。這些公司可能會使用您在本網站和其他網站上的相關瀏覽資訊(不含姓名、地址、電子郵件地址和電話號碼),以便提供閣下感興趣之產品和服務的廣告。將運用 Cookie 提供個人化的內容、廣告和社交媒體功能,並分析流量。此外,我們也會將您在本網站的使用情形提供給社交媒體、廣告服務和分析服務夥伴。這些合作夥伴可能會將上述資訊與您提供給他們的其他資訊 (或是他們在您使用其服務時收集到的其他資訊) 彙整合併。如果您想要瞭解此作法的詳情,以及如何選擇不讓前述公司使用這項資訊,請參見google的隱私權中心: http://www.google.com.tw/privacy/ads/ 。您可前往Google的「 廣告設定 」停用個人化廣告 也可以至  www.aboutads.info ,自行選擇停止任何第三方供應商使用 Cookie 顯示個人化廣告)。 我們也使用搭配多媒體廣告運作而導入的 Google Analytics (分析) 功能(Google Analytics (分析) 客層和興趣報表)。透過廣告設定,您可以透過 這個外掛 停用 Google Analytics (分析) 多媒體廣告並自訂 Google 多媒體廣告聯播網廣告。