Skip to content

JuanOlaya/Artificial-Intelligence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Artificial Intelligence for Video Games

This repository is associated with the course Artificial Intelligence for Video Games taught in the university School of Arts and Letters (Bogotá) by Juan Olaya in the semester 2017.1. For this course we use Unity 3D as game engine and Mixamo as 3D animated characters repository.

1. Animated Characteres and AI Behaviours for Video games

For this course we developed a third person video games. We use Non-Player Characters (NPC) as enemies with the following AI Behaviours:

  • Patrolling Behaviour
  • Pursuing Behaviour (Pathfinding)
  • Attacking Behaviour
  • Return to patrolling when the chase is canceled (Pathfinding)

Also, we implemented the following non-artificial intelligence behaviours for the movement of the main character:

  • Idle
  • Walking
  • Turning
  • Jumping
  • Kicking
  • Punching

And for both, the main character and Non-Player Characters we implemented:

  • Dying Behaviour
  • Shove Reaction

2. Blend Trees (Animator window)

At the beginning of this course we focused on the implementation of main character's movement. We use the Animator window of Unity and its functionality Blend Trees. This functionality allows us blend character's animations. For instance, from walking to running. In the Animator Controller we blend the following character's animations:

  • Idle to Turn Right and Turn Left
  • Walk Backward to Walk Backward Right and Walk Backward Left
  • Walk Bacward to Idle and Walk Forward

Assigment: Create a Blend Tree to manage the animations related with the motion of the main character that we spoke above. Use the Animator window of Unity. Also create an interface script that map the input of the keyboard and the Animator Controller.

3. Finite State Machine (Animator window)

We use the functionality of Unity Finite State Machine using the Animator window to manage the behaviours that must available in any moment with Any State including the Blend Tree associated with the main character's movement.

Assigment: Create an Animator Controller and use the Animator window to create transitions From "Any State" to link and manage the following state (animations): - Jumping - Kicking - Punching - Dying - Punching Reaction - Includign the Blend Tree

4. Chasing Script (Navmesh)

Assigment: Create 5 waypoints in the Scene View of Unity and locate a Non-Player Character (enemy) near of these waypoints. Create a Navigation Mesh taking into account the obstacles and the tilts of the terrain. Create a script that manage the movement of the Non-Player Characters with the following AI behaviours:

  • Patrolling Behaviour
  • Attacking Behaviour
  • Pursuing Behaviour + Avoiding Obstacles (Pathfinding with Navmesh)
  • Return to patrolling when the chase is canceled (Pathfinding with Navmesh)

5. Software Patterns for Health Player Management

Assignment 1: Manage the health for the main character and the enemies. For this assignment, you must to detect the collisions between NPC and the main properly using scritping and colliders in Unity. Then, create a health bar (HUD) that shows the amount of health for the main character. Take into account that this script must to management the Dying Behaviour and the Shove Reaction (character animations)

Assignment 2: Identify the software patterns that have been used by these scripts. Recommended Book: Game Programming Patterns, Nystrom (2014) - Online version

6. Interactive Experience

For the video game is relevant includ the concepts of Game Design, such as: goals, score, rules, awards, convincing mechanics and vivid interactive storytelling. In addition, it is important to enrich the video game experience with:

  • Waypoints (to move characters, animals or vehicles around)
  • Textures
  • Physics Simulation
  • Explosion Simulation
  • Sound Effects

AI Bibliography

Student Projects

The students designed and developed 4 Entertainment Games using Unity in the course Artificial Intelligence for Video Games. This course was taught in the second semester of the year 2017.1 The video below shows these projects:


Video Game Resources

About

Artificial Intelligence for Video Games (Unity)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages