Welcome to this learning project dedicated to enlarge both theoretical and practical knowledge about research and artificial intelligence development applied to video games and interactive applications in general.
The original learning project was created in the Spanish Wikiversity.
This learning project offer the possibility to know the fundamentals of artificial intelligence, such as the principals techniques of modeling and development like whatever tools and languages available to develop this type of IT systems, looking for it's practical application in industrial interactive environment. The emphasis is on enabling participants to understand and analyze problems related to reasoning and automatic planning, the behavior of intelligent agents, or computer creativity, and then design and implement effective and efficient computer solutions to these problems.
In addition, participants are encouraged to put what they have learned into use by developing a series of workshops that illustrate all the principles and processes seen in the theory, and that allow them to begin the work of an Artificial Intelligence Engineer for Video games.
On this page you can consult the concepts that are formally addressed in this learning project:
The main didactic materials of this project are the 'lessons' that are developed collaboratively among all the participants. These lessons, and in general the activities of this learning project, may have associated recommended readings : bibliographic sources, guides, articles from Wikipedia itself or from Wikibooks. The most relevant complements for the entire learning project are compiled in the references section of this page.
Although it has a certain theoretical component, this learning project includes numerous 'activities' of a practical nature. Exercises, practical cases, knowledge level tests, group work or similar tasks are welcome, all activities that should be associated with their respective lessons.
There is a class calendar with the real dates of the different editions of the university course that the participants carry out and which suppose the beginning of this learning project. The calendar includes the "real tasks and practices" that have been carried out week after week, so that it can serve as a reference when adapting the learning project to the specific circumstances of each new participant:
Below is a list of the different lessons that have been generated as teaching material for this learning project. The lessons are organized in different blocks (or themes) and at the end there is a section with annexes that complement the information of the lessons.
It is important that, when creating or editing lessons, keep in mind the following tips:
These lessons introduce basic questions about artificial intelligence and its relation to the world of videogames.
Lecciones:
In this block it is suggested to continue researching different types of intelligence than human (more as an expressive tool), usual applications of AI in video games (distinguishing between genres and available technologies). However, it does not deepen in applications that are far from the scope of the video game.
These lessons come fully into the problem of developing computer systems capable of solving problems through reasoning, or at least knowing that they require some intelligence similar in some way to that of the human being. We focus on modeling problem solving as a search in the space of possible states, and in turn when we use different strategies for this search. A typical application in video games is route planning, as will be discussed later.
Lessons:
In this block it is suggested to continue researching other paradigms of AI, use of libraries that offer different search strategies, even more specific variants of the algorithms. We will not be able to deepen in the problems of satisfaction of restrictions, very useful in Logistics, but that we will not deal with since it is not so relevant in videogames.
These lessons address the issues of representation (frameworks, logic, production rules ...) and use of knowledge (and its types), as well as decision-making.
Lessons:
In this block it will be suggested to continue investigating in: reasoners that can connect externally or go integrated with a videogame, tools and languages to define behavior through rules or other techniques, and even ontologies. Although it is a very important issue, we will not tackle the field of Machine Learning in any block because it remains pending to be addressed in other subjects and their corresponding learning projects.
These lessons address the concept of intelligent agent as well as the most common techniques to achieve autonomous behavior in videogames, delving into issues related to what an intelligent agent does in the game, as well as thinking: perceives, communicates and acts. The typical application in video games is the design of non-player characters (NPCs).
Lessons:
In this block it will be suggested to continue investigating Distributed Artificial Intelligence and multi-agent systems, in Natural Language Processing and probabilistic models to perform some of these functions. We will not see anything about Artificial Vision and Robotics, although they are closely related fields, we will not delve into the use of the current cognitive services offered by the large cloud platforms of Microsoft Azure, IBM Bluemix and others.
These lessons delve into issues related to the procedural generation of content and advanced techniques to know the player, dynamically adapt the game and evaluate the impact of artificial intelligence (Computational Creativity, in fact, even speaking of Artistic Expressiveness) in the final experience of the player. The typical application in video games is the automatic generation of content such as levels, missions, characters or whole arguments.
Lessons:
In this block it will be suggested to continue investigating in player modeling, dynamic adaptation of the game and evaluation of the experience.
To complement and summarize the most relevant content of the lessons are offered 'annexes' complementary to these. It is not a matter of making exhaustive lists but of gathering here references mentioned in the relevant lessons and listings for this learning project.
The following annexes are proposed that will be in a permanent process of construction and expansion:
The activities of this learning project are workshops on specific topics and practices related to these and developed by the participants. These activities will be explained below to serve as examples and case studies for the study.
It is important that, when creating or editing activities, keep in mind the following tips:
These are the workshops where specific issues of the development of artificial intelligence systems are addressed:
These practices are cases that students have made throughout this learning project:
As the main source of information for this learning project, we have certain "basic bibliography" in the field. This is composed of some well-known books on artificial intelligence, articles on the techniques of implementation of these systems, and some other material that we consider reliable. The references of each lesson are documented on their own pages, but as the main references of the course we have these books:
And in a complementary way, to know more, it is recommended to consult articles from relevant websites or conferences in this field, as well as consult other books that present very inspiring theories and points of view. Some of these are mentioned in the lessons as references:
Active participants in this learning group: