目前能讓人立刻想到與人工智慧有密切關係的遊戲有兩種:
一是所謂的戰棋/策略類比遊戲,二則是棋弈遊戲。人工智慧的比重與深淺度,在不同的遊戲類型中各有不一。有的電腦遊戲非標榜著高人工智慧不可,不然沒有人買;有的則是幾乎渺茫到讓玩家無法感覺有任何人工智慧的存在。
導向式思考
ai最容易製作的的方式,同時也是早期遊戲ai發展的主要方向就是規則導向或稱之為假設導向。在一些比較簡單的電腦遊戲中,程式員可以好不困難地將遊戲中的規則與設定轉化成一條條的規則,然後將它們寫成電腦程式。讓我們以角色扮演遊戲為例。決大多數的企畫在設定所謂電腦怪物時,所設定的屬性通常有以下幾種:
生命值 攻擊力 防禦力 法力 屬性
最後一個“屬性”是我在設定時喜歡增加的項目之一。透過這項屬性的設定,我可以把怪物設定成“貪生怕死的”,也可以把戰士設定為“視死如歸”。以目前我們所掌握的資料,在戰門系統中的大綱如是誕生了:
規則一
if (生命值< 10) // 邊臨死亡了嗎
{ if (屬性== 貪生怕死)
結果 = 試圖逃跑
if (有任何恢複生命值的物品或法術可用)
結果 = 使用或施展相關物品或法術
}
規則二
if (可施攻擊性法術 && 有足夠法力)
{
結果 = 施展攻攻擊性法術
}
由以上一連串的“如果--就--”規則設定,建立了最基本的ai。說這樣的制方式只能建立基本ai其實並不當然正確。只要建立足夠及精確的規則,這樣的方式仍然有一定水準的表現。
規則導向的最大優點就是易學易用。在沒有深奧的理論概念的前提下,仍有廣大的使用群。所以很多老道的玩家常常沒兩下就摸清楚敵人的攻擊策略,移動方式等等。
推論式思考
相信曾經接觸過電腦語言課程,或是自習過相關書籍的朋友們,都曾曾經聽過一個著名的程式,那就是井字遊戲。用井字遊戲作為討論ai的入門教材,我個人覺得是最適當的例子。或許有人還不知道井字遊戲怎麼玩。只要任何一方在三乘三的方格中先先成一線便勝利了。我們在前面談過的規則導向,在這裡也可以派得上用場。
if任何一線已有我方兩子&&另外一格仍空//我方即將成一線嗎
結果 = 該空格
if任何一線已有敵方兩子&&另外一格仍空//防止敵方作成一線
結果 = 該空格
if任何一線已有我方一子&&另外兩格仍空//作成兩子
結果 = 該空格