- Python AI游戲編程入門:基于Pygame和PyTorch
- 肖凱
- 686字
- 2024-10-25 14:10:48
1.4.4 游戲AI
AI能給予游戲更多的樂趣。從工程角度來看,游戲AI并不是越復雜越好,而是能滿足游戲的需要。AI領域有一個黃金原則——搜索和知識是相互關聯的,當你擁有更多的知識,你就需要更少的搜索;當你擁有更少的知識,你就需要更多的搜索。一個職業圍棋選手擁有相當豐富的對弈知識,通常只需針對幾個落子選項進行少量的計算。而初版的AlphaGo,在沒有足夠豐富的對弈知識的背景下,只能反復在海量選項中進行最優落子方案的搜索。
最早的《吃豆人》游戲中,有4個追逐玩家的幽靈角色,其AI設置相當簡單。它們追逐玩家的路線都是通過硬編碼的規則確定好的,有的是直接追逐玩家,有的是占領某個交通要道,有的是隨機選擇某條通道。這套游戲AI編寫得很簡單,但整體的配合卻讓玩家感覺很智能,因為簡單的規則中包含相當豐富的游戲對抗的知識。因此,需要視情況采用復雜程度不同的游戲AI。有時候,簡單的隨機方法或者貪心算法就可以模擬出一個不錯的NPC。
本書將主要介紹游戲中會用到的3種AI算法,分別是深度強化學習、遺傳算法和蒙特卡羅樹搜索。深度強化學習(deep reinforcement learning)是深度學習與強化學習相結合的產物,它集成了深度學習在函數擬合上的強大能力,以及強化學習基于環境反饋進行試錯和決策的能力。深度強化學習可用來解決現實場景中的復雜問題。遺傳算法(genetic algorithm)是計算數學中用于解決最優化問題的搜索算法,是進化算法的一種。進化算法是借鑒進化生物學中的一些原理而發展起來的,這些現象包括遺傳、突變、自然選擇以及雜交等。蒙特卡羅樹搜索(Monte Carlo tree search)是一種用于決策過程的啟發式搜索算法,它最引人注目的使用場景之一是被用在AlphaGo中。它也用于其他棋牌類等即時電子游戲和不確定性游戲。
- Docker and Kubernetes for Java Developers
- The Android Game Developer's Handbook
- HTML5 移動Web開發從入門到精通(微課精編版)
- Vue.js入門與商城開發實戰
- DevOps入門與實踐
- Cassandra Design Patterns(Second Edition)
- 深入淺出DPDK
- TypeScript實戰指南
- 利用Python進行數據分析(原書第3版)
- Haxe Game Development Essentials
- 高級語言程序設計(C語言版):基于計算思維能力培養
- Haskell Data Analysis Cookbook
- MongoDB,Express,Angular,and Node.js Fundamentals
- Learning Apache Karaf
- Domain-Driven Design in PHP