We may earn an affiliate commission when you visit our partners.
Course image
Unity Technologies and Dustin Carroll
Welcome to NPC Programming, the third course in Unity's Gameplay Programming Specialization! This course is exam preparation for Unity's Expert Gameplay Programmer Certification Exam. This course will challenge you with a series of realistic programming problems in Unity video-game projects, inspired by one or more of the topics covered in the Expert Gameplay Programmer Exam. Throughout this course, you will work on a 3D “Dual-Stick Survivor” game project. This will help you practice programming NPCs within games, including scripting NPC logic and behavior, navigation and pathfinding, raycasting, and NPC spawning and placement. ...
Read more
Welcome to NPC Programming, the third course in Unity's Gameplay Programming Specialization! This course is exam preparation for Unity's Expert Gameplay Programmer Certification Exam. This course will challenge you with a series of realistic programming problems in Unity video-game projects, inspired by one or more of the topics covered in the Expert Gameplay Programmer Exam. Throughout this course, you will work on a 3D “Dual-Stick Survivor” game project. This will help you practice programming NPCs within games, including scripting NPC logic and behavior, navigation and pathfinding, raycasting, and NPC spawning and placement. This is an advanced-level course, intended for industry game developers or very experienced Unity enthusiasts who are looking to “level-up” their gameplay programming and implementation strategies. To succeed in this courses, you should have at least 2-3 years of experience developing games with Unity. You should be familiar with the full-game lifecycle (working from early concept to launch), creating and working with Prefabs, understanding game asset and animation pipelines, and have some experience with Unity Services. You should also have advanced programming skills, particularly in the C# language.
Enroll now

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Targets senior game developers or very experienced Unity users
Teaches advanced topics tested on the Expert Gameplay Programmer Certification Exam
Focuses on NPC programming for video games
Includes hands-on practice with NPC scripting and AI in a 3D game project
Requires significant prior Unity experience and advanced programming skills
Assumes knowledge of full-game development lifecycle and Unity Services

Save this course

Save NPC Programming to your list so you can find it easily later:
Save

Reviews summary

Expert gameplay programming course

This advanced-level Unity course is an excellent preparation for the Expert Gameplay Programmer Certification Exam. With only one review at the moment, learners will find that this course is quite challenging with realistic Unity video-game projects.
You must have at least 2-3 years of experience with Unity game development.
"To succeed in this courses, you should have at least 2-3 years of experience developing games with Unity."
This course is designed to prepare you for the Expert Gameplay Programmer Certification Exam.
"This course is exam preparation for Unity's Expert Gameplay Programmer Certification Exam."
This course is challenging with a series of realistic programming problems.
"This course will challenge you with a series of realistic programming problems in Unity video-game projects..."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in NPC Programming with these activities:
Review your notes and assignments from previous Unity courses
Refresh your memory on key concepts and techniques
Browse courses on Unity
Show steps
  • Gather your notes and assignments from previous Unity courses
  • Review the material, focusing on topics relevant to this course
  • Complete any practice problems or exercises that you find
Attend a local Unity Meetup or Game Development Meetup
Connect with other Unity developers and learn about the latest trends in game development
Browse courses on Networking
Show steps
  • Find a local Unity Meetup or Game Development Meetup
  • Attend the Meetup and introduce yourself to other attendees
  • Participate in discussions and ask questions about Unity and game development
Complete the 'Unity NPC Programming Drills' online course
Reinforce your understanding of NPC programming concepts
Show steps
  • Enroll in the 'Unity NPC Programming Drills' online course
  • Complete all of the course's lessons and exercises
  • Review the course material and test your understanding by completing the practice drills
Five other activities
Expand to see all activities and additional details
Show all eight activities
Read 'Game Programming Patterns' by Robert Nystrom
Get an understanding of common design patterns used in games
Show steps
  • Read the book's introduction and chapters 1 through 3
  • Work through the exercises provided in the book
  • Create a simple game that implements some of the patterns discussed in the book
Watch video tutorials on 'Advanced NPC Programming Techniques in Unity'
Expand your knowledge of NPC programming techniques
Show steps
  • Search for and find video tutorials on 'Advanced NPC Programming Techniques in Unity'
  • Watch the tutorials and take notes on the techniques discussed
  • Try out the techniques in your own Unity projects
Develop a 3D 'Dual-Stick Survivor' game
Apply knowledge of NPC programming to a practical project
Browse courses on Game Development
Show steps
  • Design the game's levels and gameplay mechanics
  • Create the game's assets, including models, textures, and animations
  • Implement the game's core gameplay systems, including NPC AI and pathfinding
  • Test and debug the game, making improvements as necessary
  • Publish the game to a platform of your choice
Write a blog post about your experiences developing the 'Dual-Stick Survivor' game
Reflect on the challenges you faced and the lessons you learned
Browse courses on Game Development
Show steps
  • Brainstorm a list of topics to cover in your blog post
  • Write a draft of your blog post, including an introduction, body, and conclusion
  • Edit and proofread your blog post
  • Publish your blog post on a platform of your choice
Create a presentation on the 'Dual-Stick Survivor' game for potential investors
Practice pitching your game to potential investors
Browse courses on Game Development
Show steps
  • Outline the key points you want to cover in your presentation
  • Create slides for your presentation, including visuals and data to support your points
  • Rehearse your presentation multiple times
  • Give your presentation to a group of friends or colleagues for feedback

Career center

Learners who complete NPC Programming will develop knowledge and skills that may be useful to these careers:
Game Programmer
Game Programmers work in the Programming department and are responsible for writing and maintaining the code that underlies video games. This course, NPC Programming, may be helpful for those with a strong interest in programming artificial intelligence for non-player characters in video games. The course teaches advanced skills in navigation, pathfinding, and NPC spawning and placement. These are important aspects of AI programming that would be very useful for Game Programmers.
Game Designer
Game Designers work on the Design team and are responsible for planning, designing, and documenting the gameplay, characters, stories, and levels that make up a video game. These professionals bring their understanding of game mechanics, user experience, and storytelling to the development team. NPC Programming helps build a foundation in the AI-driven aspects of gameplay. With this course, students will be able to deepen their understanding of how NPCs are programmed and how they interact with the player and the world around them.
Technical Game Designer
Technical Game Designers bridge the gap between programming and design. They create game prototypes to test out ideas and collaborate with programmers and designers to implement game mechanics and features. NPC Programming can be an asset to those seeking a career as a Technical Game Designer. The focus on AI and NPC behavior and pathfinding in this course will be very relevant to anyone who wishes to work on programming the AI-driven aspects of video games.
Software Engineer
Software Engineers work on the Programming team or as independent contractors to design, develop, test, and maintain a wide range of different applications. They work on the back end of applications to ensure programs operate as intended. NPC Programming may be of interest to Software Engineers who want to learn more about AI and NPC behavior for video games. They will learn C# coding and programming techniques for NPC spawning and placement.
AI Engineer
AI Engineers design, develop, test, and maintain AI software applications. They work on the research, design, and development of algorithms for artificial intelligence. NPC Programming introduces advanced C# coding and programming principles for AI-controlled characters. By completing this course, students will learn programming techniques for NPC spawning and placement.
Game Animator
Game Animators work in the Art department and create the animations that bring video games to life. They use a variety of software tools to create character animations, facial animations, and environmental animations. This course, NPC Programming, is unlikely to be of much direct use in a career as an Animator. However, a Game Animator will benefit from a deeper understanding of the AI that is driving the characters and their movements.
Game Artist
Game Artists work in the Art department and create the visual assets for video games, including characters, environments, and objects. They use a variety of software tools to create 2D and 3D art assets. This course, NPC Programming, may be helpful for Game Artists who want to learn more about AI and NPC behavior for video games. They will learn programming techniques for NPC spawning and placement.
Game Producer
Game Producers work on the Production team and are responsible for planning, coordinating, and managing the development of video games. They oversee the entire development process, from concept to launch. NPC Programming could be helpful for those considering a career as a Game Producer. The course provides an overview of the AI-driven aspects of gameplay. Anyone who wants to work in Game Production will benefit from a deeper understanding of AI-controlled characters.
Game Tester
Game Testers work on the Quality Assurance team and are responsible for testing video games to find and report bugs. They play through games to identify any issues that may affect the gameplay experience. NPC Programming may be of interest to Game Testers who want to learn more about AI and NPC behavior for video games. They will learn programming techniques for NPC spawning and placement.
Game Writer
Game Writers work on the Design or Writing team and are responsible for writing the story, dialogue, and other text content for video games. They collaborate with other members of the development team to create a cohesive and engaging narrative experience. NPC Programming may be helpful for those interested in learning more about the role of AI and NPC behavior in video games. They will learn programming techniques for NPC spawning and placement.
Level Designer
Level Designers work on the Design team and are responsible for creating the levels and environments that players explore in video games. They use a variety of software tools to create 3D environments, place objects, and design gameplay challenges. NPC Programming may be of interest to Level Designers who want to learn more about the role of AI and NPC behavior in video games. They will learn programming techniques for NPC spawning and placement.
UX Designer
UX Designers work on the Design team and are responsible for designing the user experience for video games. They focus on making games easy to use, enjoyable, and accessible. NPC Programming may be of interest to UX Designers who want to learn more about the role of AI and NPC behavior in video games. They will learn programming techniques for NPC spawning and placement.
Audio Designer
Audio Designers work on the Audio team and are responsible for creating the sound effects, music, and voice acting for video games. They use a variety of software tools to create and edit audio assets. NPC Programming is unlikely to be of much direct use in a career as an Audio Designer. However, there may be some overlap in the programming techniques used for AI and the programming used for audio.
Community Manager
Community Managers work on the Marketing or Community team and are responsible for building and managing relationships with the game's community of players. They engage with players on social media, forums, and other online platforms. NPC Programming is unlikely to be of much direct use in a career as a Community Manager. These two roles are in different fields.
E-sports Coach
E-sports Coaches work in the Coaching or Management team and are responsible for training and managing professional e-sports players. They develop strategies, analyze gameplay, and provide feedback to players. NPC Programming may be of interest to E-sports Coaches who want to learn more about the role of AI and NPC behavior in video games. They will learn programming techniques for NPC spawning and placement.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in NPC Programming.
Provides a comprehensive overview of AI game programming techniques, including NPC programming. It valuable resource for both beginners and experienced game developers.
Introduces a variety of design patterns that are commonly used in game development. It helpful resource for understanding how to structure and organize your code.
Provides a comprehensive overview of AI for games, including NPC programming. It valuable resource for both beginners and experienced game developers.
Provides a comprehensive overview of Unity, including its core concepts and features. It valuable resource for both beginners and experienced Unity developers.
Provides a comprehensive overview of networking in Unity. It valuable resource for both beginners and experienced Unity developers.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser