本章節將會說明本篇論文之研究背景,簡單介紹過去發展的輔助工具,
並說明在這些工具上存在的問題。在 2.1 節我們會介紹過去發展的編輯器 與其提供的功能,而在 2.2 節我們會介紹電腦對局遊戲桌機網格,特別著 重在其中的工作者與通訊協定的問題。
2.1 棋譜編輯器(Game Record Editor)
在發展電腦對局遊戲之人工智慧時,棋譜編輯器是很重要的,它能使 開發者方便分析人工智慧所產生之棋譜樹與紀錄等等,甚至能夠支援創 建開局庫、與電腦對局遊戲桌機網格連結等等附加功能。
過去我們先找到一款開原的五子棋編輯器,將之修改成能給六子棋使 用的版本,稱作 Connect6Lib[6]。後來再基於它修改出象棋、圍棋等等版 本的編輯器。它包含棋盤顯示、樹顯示、一些輔助的分頁、以及用來提
圖 3:Connect6Lib
Connect6Lib 以我們的眼光來看,已經越來越難維護,舉例來說,在 棋盤顯示畫棋盤、棋子的函數被分割成六子棋版、圍棋版、象棋版,在 這樣的狀況下,想再加入其他棋類會越來越困難。
2.2 電腦對局遊戲桌機網格
電腦對局遊戲桌機網格系統(Computer Game Desktop Grid)是研究 室發展的一套專門用來解決電腦對局遊戲領域問題的系統[21],其為一種 計算型的網格系統,同時也是一個志願型計算系統,包含使用者、仲介 者、工作者。
在第一章我們已介紹過電腦對局遊戲桌機網格,這邊我們將只著重在 工作者與系統的通訊協定對開發者造成的麻煩做說明。
2.2.1
工作者(Worker)
工作者安裝於一般家用桌上型電腦上,在對電腦使用者造成最小限度 的干擾下進行高度動態的工作執行以及管理,並即時將結果以串流技術 回傳至仲介者處。
實作上,工作者經由 Socket 與仲介者溝通,同時,對工作者創建的 應用程式行程則是用標準輸入與標準輸出的重新導向,也就是說,以輸 出來說,應用程式端只需經由標準輸出來發出訊息,工作者便會將其經 由仲介者送至對應的使用者端。
圖 4:工作者概念圖
過去我們已經分別為 Windows 與 Linux 開發了工作者,但是由於開 發時的思慮不夠周詳,導致程式碼在不同的作業系統上各維護了一份,
造成維護上的麻煩,且若我們需要將工作者移植到其他作業系統上會相 當辛苦。
2.2.2
通訊協定與連線機制
以終端開發者的角度而言,電腦對局遊戲桌機網格內有些細節是相當 繁瑣的,譬如說通訊協定的內容與連線機制等等。
由於多重仲介者計畫,整個電腦對局遊戲桌機網格有些機制與通訊協 定上的修改。以終端要連線到仲介者為例,相對於以前的直接連線,在 多重仲介者架構下,需要先問整個系統該連線到哪台仲介者,接著才回 到原本單一仲介者狀況。
另外整個通訊協定是基於 XML 設計的,因此對開發者來說,他必須 知道各種 Tag 與其內容,瞭解通訊協定的細節對其他組織的開發者也是 種負擔。
圖 5:CGDG 通訊協定範例