- Python AI游戲編程入門(mén):基于Pygame和PyTorch
- 肖凱
- 686字
- 2024-10-25 14:10:48
1.4.4 游戲AI
AI能給予游戲更多的樂(lè)趣。從工程角度來(lái)看,游戲AI并不是越復(fù)雜越好,而是能滿(mǎn)足游戲的需要。AI領(lǐng)域有一個(gè)黃金原則——搜索和知識(shí)是相互關(guān)聯(lián)的,當(dāng)你擁有更多的知識(shí),你就需要更少的搜索;當(dāng)你擁有更少的知識(shí),你就需要更多的搜索。一個(gè)職業(yè)圍棋選手擁有相當(dāng)豐富的對(duì)弈知識(shí),通常只需針對(duì)幾個(gè)落子選項(xiàng)進(jìn)行少量的計(jì)算。而初版的AlphaGo,在沒(méi)有足夠豐富的對(duì)弈知識(shí)的背景下,只能反復(fù)在海量選項(xiàng)中進(jìn)行最優(yōu)落子方案的搜索。
最早的《吃豆人》游戲中,有4個(gè)追逐玩家的幽靈角色,其AI設(shè)置相當(dāng)簡(jiǎn)單。它們追逐玩家的路線(xiàn)都是通過(guò)硬編碼的規(guī)則確定好的,有的是直接追逐玩家,有的是占領(lǐng)某個(gè)交通要道,有的是隨機(jī)選擇某條通道。這套游戲AI編寫(xiě)得很簡(jiǎn)單,但整體的配合卻讓玩家感覺(jué)很智能,因?yàn)楹?jiǎn)單的規(guī)則中包含相當(dāng)豐富的游戲?qū)沟闹R(shí)。因此,需要視情況采用復(fù)雜程度不同的游戲AI。有時(shí)候,簡(jiǎn)單的隨機(jī)方法或者貪心算法就可以模擬出一個(gè)不錯(cuò)的NPC。
本書(shū)將主要介紹游戲中會(huì)用到的3種AI算法,分別是深度強(qiáng)化學(xué)習(xí)、遺傳算法和蒙特卡羅樹(shù)搜索。深度強(qiáng)化學(xué)習(xí)(deep reinforcement learning)是深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)相結(jié)合的產(chǎn)物,它集成了深度學(xué)習(xí)在函數(shù)擬合上的強(qiáng)大能力,以及強(qiáng)化學(xué)習(xí)基于環(huán)境反饋進(jìn)行試錯(cuò)和決策的能力。深度強(qiáng)化學(xué)習(xí)可用來(lái)解決現(xiàn)實(shí)場(chǎng)景中的復(fù)雜問(wèn)題。遺傳算法(genetic algorithm)是計(jì)算數(shù)學(xué)中用于解決最優(yōu)化問(wèn)題的搜索算法,是進(jìn)化算法的一種。進(jìn)化算法是借鑒進(jìn)化生物學(xué)中的一些原理而發(fā)展起來(lái)的,這些現(xiàn)象包括遺傳、突變、自然選擇以及雜交等。蒙特卡羅樹(shù)搜索(Monte Carlo tree search)是一種用于決策過(guò)程的啟發(fā)式搜索算法,它最引人注目的使用場(chǎng)景之一是被用在AlphaGo中。它也用于其他棋牌類(lèi)等即時(shí)電子游戲和不確定性游戲。
- Unreal Engine Physics Essentials
- 深入理解Bootstrap
- Mastering ServiceStack
- Java入門(mén)很輕松(微課超值版)
- MySQL 8 DBA基礎(chǔ)教程
- Learning ArcGIS for Desktop
- Visual Basic程序設(shè)計(jì)教程
- JavaScript+jQuery網(wǎng)頁(yè)特效設(shè)計(jì)任務(wù)驅(qū)動(dòng)教程
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)(第二版)
- 奔跑吧 Linux內(nèi)核
- Mastering Apache Camel
- Kohana 3.0 Beginner's Guide
- Socket.IO Cookbook
- Lync Server Cookbook
- Scratch 3.0少兒積木式編程(6~10歲)