There are a lot of fields where you can apply AI in game development nowadays.
From bots for skill-based PvP games to complex social non-combat behaviour.
So, I think, it would be great if GameDev.tv team will create such a course. Especially if it will cover Utility-based approach.
Oh, and there will be great synergy with Unity RPG course as well.
This sounds incredibly difficult and huge in scope. I could see some complications with trying to do this as a general course. That being said, it also sounds incredibly worth-while and valuable.
I would love this.
I find unit/character behaviors to be especially fascinating, but I would love learning many different aspects and approaches of AI design, and working through specific challenges, etc.
Maybe you will find it interesting:
http://intrinsicalgorithm.com/IAonAI/2013/02/both-my-gdc-lectures-on-utility-theory-free-on-gdc-vault/
A couple of lectures about AI decision making based on utility.
I support the idea about game AI course(s).
This is a difficult and complicated topic, not many online courses cover it yet, and definitely valuable.
I fully support this idea and was about to post this if it wasn’t there. It doesn’t have to be that complex but just covering the basics of AI programing would be really great. Things can be so confusing on the web, it would really be a great addition to the other courses. I even feel it is one of the missing pieces of the collection to feel “complete”. (Maybe add a game to the Unity Course that is specifically designed around AI instead of a whole new course ?)
Last one article to inspire you to dig into AI.
It is about decision making and I think it is brilliant. And not so complex to code.
I support this idea if the course goes further than A* or similar algorithms.
I would love to learn to make an AI for a 3D first person view game which has equal or comparable resources to determine his choices on as the player.
AI is complex, and that’s exactly the reason why a course should exist.
This idea has my vote. Yes, AI is complex, but a course could cover a subset that applies to games.
This is a really cool idea! Here you can find an example of a game in development, that uses Machine Learning techniques in Unity to improve their AI:
It looks great, Niels! Thanks for the link.
AI gets my vote , an introductory course that gives you a taste so you can go on to develop your own AI entity .
Video Game AI Agents and Machine Learning are kind of two separate concepts. If they are included in the same course, I’m not sure either subject could be exhaustively covered.
I believe a more in depth course would be better. Build an AI system from scratch, something usable like RAIN.
I really love the idea of an AI course for unity. I think that in order to do it well, though, Ben & the gang would need to really dive into the AI scripting options provided by the asset store, both free and paid. There’s just so much to be covered and a lot that already exists.
Having originally posted on the facebook page asking for an AI course, I was directed here to post it. Since there was already a topic suggesting an AI course, I decided it would be best to post in here. I would like to try and elaborate a bit more on what could go into a course such as this, as AI is a huge subject.
My own interest in this course, is a desire to brush up on my theory from nearly ten years ago, and I believe that a course like this would go hand in hand with the other game development courses that GameDev.tv put out. GameDev.tv has courses that cover many other core aspects of game development and this would seem like a logical next step on the road to providing the entire package.
I’m not trying to tell you how to run a course, but I find it easier to describe if I write it up in the way I would do this myself, though it should be stated that this is very much still only on a basic pitch level.
I will be presenting this course proposal/pitch through the following sections
- Student Level
- When should students be looking at this course
- Subjects
- Theoretical or practical
- Using existing games as examples
Student level
While a subject like AI is not for complete beginners, the course could be taught to someone with no knowledge if so desired, simply for an understanding of the underlying structure and use of AI. For the purpose of practical use though, the level requirement would probably be based on how theoretical versus practical the course is going to be.
For at theoritical only course, the level would at least be intermediate or higher as a certain amount of experience is needed to visuallize how to practically use the systems and algorithms taught.
If using a more practical approach, then the level would be beginner to intermediate as the student would be actively implementing solutions.
More on this subject later, when I elaborate on the two approaches.
When should students be looking at this course
Students would probably come in two categories. Those that know about AI and need a refresher course and students that have completed one or more of the other game development courses available at gamedev.tv and want to know more in order to make better game. I do not believe this a course that students will or should take as a first effort into game development.
Of course there might just be those that would like to get to know more about AI, but I believe that these will be few and far between.
Subjects
AI is a very broad subject and thus it is important to break it up into more managable subjects that are easily relatable to existing games.
A list of subjects come to mind, when talking about games and what could be considered core subjects
- Pathfinding
-
- Chase/Evade
-
- Obstacle avoidance
-
- Wall following
-
- Breadcrumbing
-
- Algorithms like
-
-
- A*
-
-
-
- Dijkstra
-
-
-
- Depth and breadth-first
-
-
-
- maybe others?
-
- Rule based AI
- Finite state machines
- Crisp/fuzzy logic
- Flocking
- Decision trees and reversed decision trees (Reasoning)
- First order logic
- Machine learning
Breaking it down like this, we can see that there is a large amount of subjects to cover, and these are just some of them. I do believe that they will cover most of the students needs for the games that they make, unless they are delving further into the world of AI. In that case they propably already know most of this stuff anyway.
Pathfinding is a large subject in and of itself, and I have tried to break it down to relevant subjects. Pathfinding as a subject could easily be taught as a course on its own, but could also be part of a larger course covering several other subjects. This would have an impact on how deep the material on pathfinding would be. Cutting some subjects from the pathfinding subgroup, might be necesary.
First order logic, while interesting, would probably be out of scope. A smaller section for a short introduction might be in order.
I believe that machine learning is also out of scope for a course like this, and should be given its own course if it were to be taught. As with first order logic, a short mention would be enough.
Other than the above mentioned subjects, I believe a history section would be appropriate as well as a section on real world, not game related, uses for AI.
Dedicating an entire section to breaking up one or more existing games into their components and analysing them for their possible AI implementations would also be a good idea, as it would help build understanding of how it all goes together and show the interaction between differing AI systems in the same game. This is also mentioned in the “using existing games as examples” section.
Theoretical or practical
How the course is taught is also an important consideration for a course of this type, as it can be a purely theoretical course or it could incorporate practical assignments as well. Depending on the chosen approach, the structure would be very different as well as the amount of preparation that would go into it from the instructors.
Deciding to run the course at a purely theoretical level would raise the student requirement level, as they would need to be able to visualize and work out how to implement the differet theories and algorithms on their own, based on the presentation by the instructor. The instructor would only cover the theory and stucture behind the subjects. The use and analysis of real life examples from games would become even more important as this would be the only tangible connection between theory and practice that the student would get.
I believe this would limit the amount of students that would decide to engage with the course as the barrier to entry for understading would be that much greater.
Going for a more practical approach to the course, would let students get their hands into the actual implementation side of things. This would take longer for the instructors to prepare, as they would need to build small game implementations for assignments. While the students should be coding, it would be a waste of time for the to build the entire setup in order for them to practice implementing the AI procedures. They should only fous on the implementation of these. This way the students time would be more focused on what is the actual meat of the course. Luckily, some assignments can share a common base for implementation, but this would need to be planned out.
In the end, it is not really one or the other, but more of a combination of the two approaches, if practical assignments are to be added. It should be possible to cut down on, but not completely omit, the game examples and analysis that is the main element for building student understanding of the subject in the theory based approach.
Using existing games as examples
Getting proper context for the different subject is important, especially if going with the theoretical approach. What ever approach is used, having real life examples from games would help building understading of the practical use of the theoris and algorithms.
When doing this, I believe it is important to pick games that most people will have at least some idea of what is. Examples could be games in genres like MOBA, RTS etc. Either one should be able to produce examples for all above subjects.
I would then end the course by picking one or more games and disecting them, AI-wise. Determine what types of AI are or could have been used for the different aspects/objects/artifacts/players of the game. Doing this for more than one game, picking some simple games (Simple platformers) and building up to a complex game (MOBA/RTS, should include AI player), would help build students understanding of how the different subject can interact in a game to produce a complete experience. This should also provide them with an idea of the amount of work/effort is put into such games. This could also make for interesting subjects for live discussion sessions.
Hopefully this will also provide plenty of inspiration (isn’t that the main point) for their own games and how to develop interesting AI for those games.
I would be happy to answer any questions that might arise or elaborate on any subjects that any of you might feel necesary.
Any feedback is welcome, in order to improve the above pitch and on the pitch in general.
Rather than build a new course, is it possible to add an AI player to the Unity-Multiplayer course? It is already building an RTS so it would be cool to have a combination of AI and real oppoents/