為什麼你的遊戲人工智慧需要模組化行為?

source:http://aigamedev.com/modular-behaviors/motivation

從設計的觀點來看,近代的遊戲行為越來越複雜。因此實做出來的程式和資料就變得越來越難以管理。
模組化行為針對下列基本的問題提供了可行的解答:

  • 藉著重複使用,工作量減少了
  • 現在流程可以更容易地被管理,工作也可以更加輕易地分割
  • 實做一個簡單的行為不再需要那麼多的資料
  • 隨著行為變得好管理,設計上也得到更多好處。

人工智慧引擎通常都擁有這些功能,使用模組化設計也是一個達到這個目的的好方法。

halo.png

圖(作者說之後會放大一點的圖)
Halo2 中所有行為的一個子集

實際上,當你在做一款遊戲的時候如果有下列現象,你就會注意到這是行為的模組化。

  • 行為可以被應用在任何符合必要功能的遊戲上
  • 增加一個新的行為對程式設計師而言相當容易
  • 設計師或是script撰寫者可以很容易地重新使用其他已經存在的行為
  • 行為可以被用在不同的等級和不同的角色上

所以,讓我們接觸更多技術上得細節,這些模組化的行為到底長什麼樣子?

Startcraft Ghost 再起?

source: Blizzard Still Has “Hope” for Starcraft Ghost
從這篇看起來,Blizzard並沒有完全放棄Ghost。唔,這真是好事,很想看看Blizzard能把第三人稱射擊遊戲作成怎樣呢!!!
不知道Blizzard做的3D射擊遊戲會不會比較不容易頭暈 😛
不過希望這次可以出到pc上,要不然也出到xbox上,這樣我可以順便買藍龍來玩玩XD

不過他們也說了,近期內是沒有人力的….

DokuWiki

Dokuwiki真的算是最好用的wiki了(比較對象有mediawiki and pmwiki)。我想最主要的好處在:

  1. 可以從前端進行設定 (外掛啟動與否、權限控制…etc 這部份mediawiki沒有辦法) ,無須修改.php檔案
  2. 不使用資料庫(對於中小型的站台來說,使用資料庫對他們來說是個負擔,備份又麻煩。)
  3. 速度快(mediawiki的速度喔…..)。

缺點:

  1. 外掛不多 (不過他幾乎基本的都有了,不太需要額外裝些什麼。外掛數量這方面,pmwiki and mediawiki勝出)
  2. 佈景主題不多(ㄟ..好像跟上一個一樣耶XD)
  3. 開發較慢(跟開發者人數有關吧…不過很夠用了)。

最近因為開始了一些小計畫,所以開始用這套,用起來感覺很不錯。如果你的站台屬於中小型,那麼Dokuwiki就很夠用了。用到mediawiki,結果可能會跟我研究所的wiki一樣,用不到10%的功能,卻要付出很多代價。

弄的差不多了,過幾天可以再回過頭來寫DBN了,每次寫出來的東西都跟腦海裡長得挺不一樣的XD。

ref:http://www.robbin.cc/dokuwiki/doku.php?id=syntax:syntax

update:

感謝 網站製作學習誌的站長jaceju 大人在迴響中的整理,這份整理的比較好 😛

dokuwiki的好處有:

1. 安裝容易 (其實根本就是解壓縮以後就開始用了) 。
2. 支援程式語言變色功能。
3. 內建有輸出 RSS 的功能。
4. 頁面能用 namespace 來建立階層關係。
5. 能外掛 Blog 及 Tag 等 plugins 。

遊戲人工智慧中的模組化行為

source:http://aigamedev.com/modular-behaviors

每個人都了解模組化在程式設計中的好處。實際上,今日所有的遊戲引擎都至少有著某種程度的模組化。但是在人工智慧的行為這領域中模組化意味著什麼?一般來說在實際的情況下它是如何完成這些工作?和 還有哪部份它可以增進的地方?

這系列的文章包含了人工智慧的模組化方面你所需要知道的事情

作者歡迎提問,只需留言在原網址下

沒有這個命喔…

話說前幾天我在組織門口的廣場看到一堆巨大的木箱,我還以為是要組裝一台機器人…

沒想到這幾天在一樓資訊中心的機房 看到應該是這個等級的東西..

看起來好像很小…實際上大概有1U機架寬度的六七倍吧…. 而且好像不只三大個而已喔…….

在組裝的時候,真的很像在裝機器人,一堆人一邊看說明書一邊裝XD 還有拿小椅子爬上爬下的..

唉 為什麼我不是在資訊中心阿…這種東西應該要給我玩一玩阿 !!11

我們中心的比起來大概就像R2/D2..那種大小..   ..而且我還碰不到  T_T

什麼是遊戲中的人工智慧?

(唔,標題的中文似乎有點怪….)

source:http://aigamedev.com/learn

遊戲人工智慧基本上與行為有關。你需要設計並且實做程式控制你的演員讓遊戲變得有趣。要達到這個目標,你需要這樣做:

  1. 收集有關這個世界的資訊
  2. 需要的時候,記住某些東西
  3. 搶在時間之前決定怎麼做
  4. 嘗試跟著計畫走,檢查發生的問題

有許多方式可以做到這些,但是在這個網站你將會學到一些在實做上最棒的技術。你將會很快地發現世界上所有專業的遊戲人工智慧開發者都使用類似的技術 – 但是會產生非常不一樣的結果。在這個網站上你將會從經驗中學到一些很重要的課程,而這會幫助你把事情做對。

一個好的遊戲人工智慧引擎基本上必須遵守下列的原則:

使用ffmpeg,mencoder 把wmv 轉成flv

最近組織的線上觀看要改成使用flash 來放。不過原本因為跟中華電信合作,使用他們的串流伺服器,所以原始檔是..wmv(wmv 7)。而原始檔是動態用程式去組合起來的(vb6+不知名元件)一堆東西,所以要改成輸出raw data 再來轉就不太可能。

把wmv 轉成flv 可以選用 ffmpeg or mencoder,不過這兩套都有點問題,簡單來說,mencoder 對於flv的支援不太好,ffmpeg對於wmv的支援不太好。 如果直接使用這兩個程式把wmv -> flv的話,就會產生奇怪的問題(因為wmv 7是封閉格式嗎?)。

以這次的例子來說,我轉某些檔案(有些wmv會有些不會..@@)會有播放到某個畫面停滯的問題(兩套皆然,我還用過很多套轉檔程式,都會有這個問題),使用mencoder的話,某些檔案的時間軸會不對,就算修復了meta資料也還是一樣,主要的現象是無法正常跳到你點選的時間點。

突然想到,那就把wmv->avi(或是其他中介格式)-> flv看看。唔,結果某個年代久遠的wmv格式還是會卡死在某一格。所以就變成現在這種尷尬局面。不過測試到現在應該是可行的,如果有人有類似的問題,可以試試看這種詭異的作法。

1.wmv->avi (使用mencoder)

mencoder wmv\xxx.wmv -o avi\xxx.avi -ovc lavc -oac lavc

2. avi->flv (使用ffmpeg)

ffmpeg -i xxx.avi -ab 56 -ar 22050 -qscale 6 -b 500 -r 15 -s 320×240 flv\xxx.flv

這樣時間軸就可以正常拉動,有些有問題的檔案也不會卡死在某一格,不過要注意的是,這邊參數都沒有最佳化,得到的品質/檔案大小 不見得符合你的需求喔 !!!