https://github.com/PacktPublishing/Unity-2018-Artificial-Intelligence-Cookbook-Second-Edition

1 Behaviors - Intelligent Movement

Behaviors – Intelligent Movement, explores some of the most interesting movement algorithms based on the steering behavior principles developed by Craig Reynolds and work from Ian Millington.

They act as a foundation for most of the AI used in advanced games and other algorithms that rely on movement, such as the family of path-finding algorithms.

2 Navigation

Navigation, covers path-finding algorithms for navigating complex scenarios.

It will include some ways of representing the world using different kinds of graph structure, and several algorithms for finding a path, each aimed to different situations.

3 Decision Making

Decision Making, explains different decision-making techniques that are flexible enough to adapt to different types of games, and robust enough to let us build modular decision-making systems.

4 The New NavMesh API

The New NavMesh API, shows the inner workings of the NavMesh API introduced in Unity 5.6, and explains how it enables us to grasp the power of the NavMesh engine and tune it in real time.

5 Coordination and Tactics

Coordination and Tactics, deals with a number of different recipes for coordinating different agents as a whole organism, such as formations and techniques that allow us make tactical decisions based on graphs, such as waypoints and influence maps.

6 Agent Awareness

Agent Awareness, explores different ways to simulate sense stimuli on an agent.

We will learn how to use tools we already know to create these simulations: colliders and graphs.

7 Board Games and Applied Search AI

Board Games and Applied Search AI, covers a family of algorithms for developing board games, as well as turn-based-game techniques for creating AI.

8 Learning Techniques

Learning Techniques, explores the field of machine learning. It will give us a great head-start in our endeavor to learn and apply machine learning techniques into our games.

9 Procedural Content Generation

Procedural Content Generation, explores different techniques for enabling replayability in our games by creating content procedurally.

It will give us some pointers in the right direction for different types of content.

10 Miscellaneous

Miscellaneous, introduces new techniques and uses algorithms that we will have learned in previous chapters to create new behaviors that don't quite fit in a definite category.

1 Behaviors - Intelligent Movement

In this chapter, we will develop AI algorithms for movement by covering the following recipes:

  • Creating the behaviors template
  • Pursuing and evading
  • Adjusting the agent for physics
  • Arriving and leaving
  • Facing objects
  • Wandering around
  • Following a path
  • Avoiding agents
  • Avoiding walls
  • Blending behaviors by weight
  • Blending behaviors by priority
  • Shooting a projectile
  • Predicting a projectile's landing spot
  • Targeting a projectile
  • Creating a jump system

  Introduction

  Creating the behaviors template

  Pursuing and evading

  Adjusting the agent for physics

  Arriving and leaving

  Facing objects

  Wandering around

  Following a path

  Avoiding agents

  Avoiding walls

  Blending behaviors by weight

  Blending behaviors by priority

  Shooting a projectile

  Predicting a projectile's landing spot

  Targeting a projectile

  Creating a jump system

2 Navigation

In this chapter, we will cover the following recipes:

  • Representing the world with grids
  • Representing the world with points of visibility
  • Representing the world with a self-made navigation mesh
  • Finding your way out of a maze with DFS
  • Finding the shortest path in a grid with BFS
  • Finding the shortest path with Dijkstra
  • Finding the best-promising path with A*
  • Improving A* for memory: IDA*
  • Planning navigation in several frames: time-sliced search
  • Smoothing a path

  Introduction

  Representing the world with grids

  Representing the world with points of visibility

  Representing the world with a self-made navigation mesh

  Finding your way out of a maze with DFS

  Finding the shortest path in a grid with BFS

  Finding the shortest path with Dijkstra

  Finding the best-promising path with A*

  Improving A* for memory – IDA*

  Planning navigation in several frames – time-sliced search

  Smoothing a path

3 Decision Making

In this chapter, we will cover the following recipes:

  • Choosing through a decision tree
  • Implementing a finite-state machine
  • Improving FSMs: hierarchical finite-state machines
  • Implementing behavior trees
  • Working with fuzzy logic
  • Making decisions with goal-oriented behaviors
  • Implementing a blackboard architecture
  • Experimenting with Unity's animation state machine

  Introduction

  Choosing through a decision tree

  Implementing a finite-state machine

  Improving FSMs: hierarchical finite-state machines

  Implementing behavior trees

  Working with fuzzy logic

  Making decisions with goal-oriented behaviors

  Implementing a blackboard architecture

  Experimenting with Unity's animation state machine

4 The New NavMesh API

In this chapter, we will learn how to make use of the new NavMesh API,through the following recipes:

  • Setting up the NavMesh building components
  • Creating and managing NavMesh for multiple types of agents
  • Creating and updating NavMesh data at runtime
  • Controlling the lifetime of the NavMesh instance
  • Connecting multiple instances of NavMesh
  • Creating dynamic NavMeshes with obstacles
  • Implementing some behaviors using the NavMesh API

  Introduction

  Setting up the NavMesh building components

  Creating and managing NavMesh for multiple types of agents

  Creating and updating NavMesh data at runtime

  Controlling the lifetime of the NavMesh instance

  Connecting multiple instances of NavMesh

  Creating dynamic NavMeshes with obstacles

  Implementing some behaviors using the NavMesh API

5 Coordination and Tactics

In this chapter, we will learn techniques for coordination and devising tactics:

  • Handling formations
  • Extending A* for coordination: A*mbush
  • Introducing waypoints by making a manual selector
  • Analyzing waypoints by height
  • Analyzing waypoints by cover and visibility
  • Creating waypoints automatically
  • Exemplifying waypoints for decision making
  • Implementing influence maps
  • Improving influence with map flooding
  • Improving influence with convolution filters
  • Building a fighting circle

  Introduction

  Handling formations

  Extending A* for coordination – A*mbush

  Analyzing waypoints by height

  Analyzing waypoints by cover and visibility

  Creating waypoints automatically

  Exemplifying waypoints for decision making

  Implementing influence maps

  Improving influence with map flooding

  Improving influence with convolution filters

  Building a fighting circle

6 Agent Awareness

In this chapter, we will learn some algorithm recipes for simulating senses and agent awareness:

  • The seeing function using a collider-based system
  • The hearing function using a collider-based system
  • The smelling function using a collider-based system
  • The seeing function using a graph-based system
  • The hearing function using a graph-based system
  • The smelling function using a graph-based system
  • Creating awareness in a stealth game

  Introduction

  The seeing function using a collider-based system

  The hearing function using a collider-based system

  The smelling function using a collider-based system

  The seeing function using a graph-based system

  The hearing function using a graph-based system

  The smelling function using a graph-based system

  Creating awareness in a stealth game

7 Board Games and Applied Search AI

In this chapter, you will learn a family of algorithms for developing board game AI:

  • Working with the game-tree class
  • Implementing Minimax
  • Implementing Negamax
  • Implementing AB Negamax
  • Implementing NegaScout
  • Implementing a Tic-Tac-Toe rival
  • Implementing a Checkers rival
  • Implementing Rock-Paper-Scissors AI with UCB1
  • Implementing Regret Matching

  Introduction

  Working with the game-tree class

  Implementing Minimax

  Implementing Negamax

  Implementing AB Negamax

  Implementing NegaScout

  Implementing a Tic-Tac-Toe rival

  Implementing a Checkers rival

  Implementing Rock-Paper-Scissors AI with UCB1

  Implementing regret matching

8 Learning Techniques

In this chapter, we will explore the world of machine learning through the following topics:

  • Predicting actions with an N-Gram predictor
  • Improving the predictor – Hierarchical N-Gram
  • Learning to use a Naïve Bayes classifier
  • Implementing reinforcement learning
  • Implementing artificial neural networks

  Introduction

  Predicting actions with an N-Gram predictor

  Improving the predictor – Hierarchical N-Gram

  Learning to use Naïve Bayes classifier

  Implementing reinforcement learning

  Implementing artificial neural networks

9 Procedural Content Generation

In this chapter, we will learn different techniques for procedural content generation with the following recipes:

  • Creating mazes with Depth-First Search
  • Implementing the constructive algorithm for dungeons and islands
  • Generating landscapes
  • Using N-Grams for content generation
  • Generating enemies with the evolutionary algorithm

  Introduction

  Creating mazes with Depth-First Search

  Implementing the constructive algorithm for dungeons and islands

  Generating landscapes

  Using N-Grams for content generation

  Generating enemies with the evolutionary algorithm

10 Miscellaneous

In this chapter, you will learn different techniques for:

  • Creating and managing Scriptable Objects
  • Handling random numbers better
  • Building an air-hockey rival
  • Implementing an architecture for racing games
  • Managing race difficulty using a rubber-band system

  Introduction

  Creating and managing Scriptable Objects

  Handling random numbers better

  Building an air-hockey rival

  Implementing an architecture for racing games

  Managing race difficulty using a rubber-band system

Unity 2018 Artificial Intelligence Cookbook Second Edition (Jorge Palacios 著)的更多相关文章

  1. Getting.Started.with.Unity.2018.3rd.Edition

    Getting Started with Unity 2018 - Third Edition: A Beginner's Guide to 2D and 3D game development wi ...

  2. Artificial Intelligence Research Methodologies 人工智能研究方法

    Computer Science An Overview _J. Glenn Brookshear _11th Edition To appreciate the field of artificia ...

  3. (转)A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers

    A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers. Updated 20 ...

  4. AI AND THE BOTTOM LINE: 15 EXAMPLES OF ARTIFICIAL INTELLIGENCE IN FINANCE

    https://builtin.com/artificial-intelligence/ai-finance-banking-applications-companies f there's one ...

  5. Artificial intelligence(AI)

    ORM: https://github.com/sunkaixuan/SqlSugar 微软DEMO: https://github.com/Microsoft/BotBuilder 注册KEY:ht ...

  6. (转) Artificial intelligence, revealed

    Artificial intelligence, revealed Yann LeCunJoaquin Quiñonero Candela It's 8:00 am on a Tuesday morn ...

  7. Unity Shaders and Effets Cookbook

    Unity Shaders and Effects Cookbook 最近在读 <Unity Shaders and Effects Cookbook> 中文名称:<Unity 着色 ...

  8. Artificial Intelligence Language

    Artificial Intelligence Language Objective We know, a true AI program should have ability to underst ...

  9. 拼写纠正 Artificial Intelligence: A Modern Approach

    Artificial Intelligence: A Modern Approach http://mindhacks.cn/2008/09/21/the-magical-bayesian-metho ...

随机推荐

  1. 部署Springboot项目到Linux云服务器

    前言 环境:IDEA.Springboot.Maven(自己电脑安装的Maven) 一.打包jar包 检查自己的pom.xml文件下面有无Maven的依赖插件,即有无如下: <build> ...

  2. python--基础知识点梳理(之数据结构)

    数据结构: # 按逻辑结构(面向问题)分为:集合结构.线性结构.树形结构.图形结构 # 按物理结构(面向计算机)分为: # 顺序存储结构(把数据元素放在地址连续的存储单元中,数据间的逻辑关系和物理关系 ...

  3. pytest执行用例时从conftest.py抛出ModuleNotFoundError:No module named 'XXX'异常的解决办法

    一.问题描述 在项目根目录下执行整个测试用例,直接从conftest.py模块中抛出了ModuleNotFoundError:No module named 'TestDatas'的异常: 二.解决方 ...

  4. 借助Git实现本地与GitHub远程双向传输(同步GitHub仓库)以及一些使用错误解决

    前言 GitHub作为程序员必备的学习交流平台,虽然在国内速度不算快,但只要好好利用这个平台,我相信还是可以学习到很多东西.在暑期的时候,我曾经就初次远程连接到了GitHub,但开学后,不知道为什么又 ...

  5. C++ 运行时类别识别

    运行时动态类型的识别其实应该是多态方面的知识,这里我直接拿来单独成章. dynamic_cast和static_cast 1.static_cast用法如下: static_cast < Typ ...

  6. java高并发系列 - 第11天:线程中断的几种方式

    java高并发系列第11篇文章. 本文主要探讨一下中断线程的几种方式. 通过一个变量控制线程中断 代码: package com.itsoku.chat05; import java.util.con ...

  7. 前端之html5和css3

    圆角,透明度,rgba CSS3圆角 设置某一个角的圆角,比如设置左上角的圆角:border-top-left-radius:30px 60px;同时分别设置四个角: border-radius:30 ...

  8. PDF目录编辑器使用介绍

    PDF目录编辑器使用介绍 魏刘宏 2019.06.28 PDF 是一个比较优秀的文档格式,能够保证在任何终端显示的样式是一样的.但同时也带来了一个问题,就是编辑不方便,其实这也是这个格式特意为之的,无 ...

  9. HashMap框架源码深入解读,面试不用愁

    在Java Collections Framework的体系中中,主要有两个重要的接口,一个是List.Set和Queue所属的Collection,还有一个就是Map接口了.在上一篇文章中介绍了Li ...

  10. 对data标签获取到的时间进行比较

    前言 data(时间属性)是HTML5中新增的一个属性,常用于选择日期.时间,但这个是无法通过属性去限制其不能选择过去的时间的,这个时候就需要我们在JQ中对其进行比较了! 由于放效果图,需要在数据库里 ...