AI-Driven-Game-NPCs

Welcome to the AI-Driven-Game-NPCs repository! This is a place to store and showcase personal projects related to game development, with a focus on non-player characters (NPCs) powered by both machine-learning techniques and traditional algorithms.

Table of Contents

About

In this repository, you'll find a collection of projects that explore the exciting intersection of game development and artificial intelligence. The primary focus is on creating intelligent and dynamic NPCs using a combination of machine learning and traditional algorithms.

This repository serves as a platform to document, share, and collaborate on various game development and AI projects. Whether you're interested in enhancing your game's NPCs, experimenting with AI-driven game mechanics, or just passionate about both fields, this repository is for you.

Projects

Here are some of the projects you'll find in this repository:

  • Project 1: MoveToGoal - Using Unity and ML-Agents, the project empowers an NPC to autonomously learn and navigate toward a predefined goal using reinforcement learning PPO algorithm.
  • Project 2: Unreal/MoveToGoal - Using Unreal, Ray RLlib, and PyTorch, the project empowers an NPC to autonomously learn and navigate toward a predefined goal using a reinforcement learning PPO algorithm. Unreal does not have a framework such as mlagens from unity, so I build scripts that communicate unreal with python to train the agent.

Feel free to explore, use, and contribute to any of the projects. Each project will have its dedicated folder with detailed documentation and instructions on how to get started.

Usage

To use or contribute to any project, simply navigate to the respective project's folder and follow the instructions provided in its README. Be sure to review the project-specific documentation and dependencies to get started.

If you're interested in contributing, you can open issues, submit pull requests, or even propose new projects. Please make sure to follow best practices and provide clear and concise documentation for your contributions.

Contributing

Contributions are welcome and encouraged! Whether it's fixing a bug, adding a new feature, or proposing an entirely new project, your input is valuable. To contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with descriptive messages.
  4. Push your branch to your fork.
  5. Submit a pull request to the main repository.

Please ensure that your code follows best practices and includes relevant documentation for your changes or additions.

License

This repository is licensed under the MIT License. You are free to use, modify, and distribute the code for your own projects while giving appropriate attribution.

Happy coding and game development!