Reference https://medium.com/@noahlandonpaige/how-to-create-smarter-npcs-in-games-10e384295f35,
Problems with Current NPCs,
How NPCs can be Improved.
Conclusion , “ While the gaming industry has continued to innovate in many areas over the years, NPC artificial intelligence has not been a part of that innovation. Current NPCs are controlled by basic state machines, and have been since NPCs first appeared in games. There are many problems with this basic model, most notably being predictability and unrealistic reactions to emergent behaviors. I propose four methods to increase immersion in relation to NPCs: fuzzy state machines, relationship graphs, procedural facial animation, and core personality traits, along with an alternate approach that involves machine learning. I hope to see changes to NPCs in the near future, and maybe even take part in the process of improvement and innovation.”
Reference: https://www.pluralsight.com/blog/film-games/game-jobs
Game job AI Programmer
Most good games need artificial intelligence to challenge the player, so your role as an AI programmer is to develop functionality for just about any game element that’s not controlled by the player. This includes things like NPCs and enemy actions. As with any programming position, you’ll need an understanding of math and physics as well as being able to optimize your code. You can also expect plenty of troubleshooting as the QA department will be reporting any bugs they find in the AI. What you should learn… Note: The languages you should focus on may vary depending on the programming language for your studio’s engine. C++, C#, Perl, Python, Java, etc. Unreal Engine or Unity (or whatever game engine your studio is using)
Reference: https://realpython.com/top-python-game-engines/#:~:text=ready%20to%20begin.-,Pygame,stands%20for%20Simple%20DirectMedia%20Layer.
python game engine:
Pygame Zero
There are many things Pygame does well, but others where its age is evident. For game-writing beginners, a better option can be found in Pygame Zero. Designed for education, Pygame Zero is guided by a simple set of principles aimed at being perfect for young and beginning programmers.
reference: https://jupyter.org/
JupyterLab: A Next-Generation Notebook Interface
JupyterLab is the latest web-based interactive development environment for notebooks, code, and data. Its flexible interface allows users to configure and arrange workflows in data science, scientific computing, computational journalism, and machine learning. A modular design invites extensions to expand and enrich functionality.
Reference: https://www.nltk.org/
Natural Language Toolkit
NLTK is a leading platform for building Python programs to work with human language data.
reference: https://www.sqlalchemy.org/
The Python SQL Toolkit and Object Relational Mapper
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.
skill set : Python, NTLK (Natural Language Toolkit), fuzzy stateless programming for NPCs, machine learning, Linear Algebra, Probability, Statistics, Jupyter notebook, and SQL alchemy.