PD: Los juegos como WoW y MU Online creo que están hechos en C++, entonces tendría que aprende este lenguaje? O habría un mejor lenguaje para programar bots? Disculpen la ignorancia
1. Todos los bots que yo he conocido para juegos de Blizzard están desarrollados en C# (la interfaz gráfica y el código funcional), tanto los
cheats gratuitos (ej. TurboHUD) como los bots de pago para WoW, D3, HS, Overwatch y etc. Te lo digo por experiencia propia, he adquirido muchos y diferentes bots a lo largo de los años, y no solo para juegos de Blizzard, así que te puedo asegurar que en general C# suele ser la elección favorita de casi todos (sino todos) los vendedores de bots para juegos online triple AAA. Esto lo puedes comprobar por ti mismo en los sitios web dedicados a la venta de bots de pago para juegos online de ciertos autores/vendedores (ej.
https://forum.iwantcheats.net/). Claro que también existen bots desarrollados en C/C++, y en Python y en otros lenguajes para otros juegos online, pero no es tan común ver ese tipo de bots a la venta.
2. C# (y también VB.NET, su hermano gemelo en la sombra) es un lenguaje con una curva de aprendizaje relativamente facil, con un gran soporte por parte de la comunidad de programadores, con una de las IDEs más.... qué digo, la IDE mejor elaborada, completa y sofisticada del mercado (Visual Studio) y con un amplio abanico de plugins (mejor conocidas como extensiones). Con un extenso, casi infinito catálogo de librerías de código abierto (ej. en GitHub) así como una infrastructura (Nuget) que permite a los desarrolladores crear, compartir, buscar y consumir código útil/librerías desde la IDE. Con una enorme referencia online y documentación del lenguaje (MSDN/Microsoft Docs). Con un sistema de desarrollo robusto a la vez que facil e intuitivo (RAD) para interfaces gráficas, y en general un lenguaje capaz de cubrir las necesidades de casi cualquier propósito del programador (ej. desarrollar un bot).
3. Sin embargo, aprender un lenguaje de programación y por muy sofisticado que este sea no te va a servir absolutamente de nada para desarrollar un bot si por otro lado no adquieres un conocimiento a nivel avanzado en ingeniería inversa, y eso llevará muchos años dominarlo medianamente bien (yo no soy ningún experto en ing. inversa, tan solo doy mi opinión). Ten en cuenta que probablemente deberás saber lo básico sobre análisis de
packets, sobre inyección de procesos y
api-hooking, debes averiguar los valores y estructuras del juego analizando el executable e interceptar los packets y evitar el sistema
anti-cheats, eso y otras cosas de las que deberás aprender lo básico dependiendo del tipo de bot que pretendieras elaborar (ej. necesitarías aprender lo básico de las APIs de DirectX o de SharpDX para .NET si quieres mostrar un HUD en un juego que corra a pantalla completa).
Es algo que un principiante en C# sencillamente no puede lograr. Tampoco un erudito en C#, a menos que también sea erudito de otras materias necesarias o en su defecto disponga de las herramientas necesarias para saltarse el aprendizaje (ej. APIs de terceros).
...por otro lado siempre tienes la alternativa de desarrollar una especie de macro (enviar plsaciones del teclado o del ratón a coordenadas específicas de la ventana del juego), lo cual requiere mucho menos conocimiento y te puede servir según cual sea el propósito del bot, pero no podrás hacer cosas tan sofisticadas como los bots en venta que puedes encontrar por Internet para juegos de Blizzard, por ejemplo, mediante una macro no vas a poder medir distancias para moverte por un mapa (solo harás asunciones de la distancia), ni tampoco podrás hacer algo similar a un
aimbot.
4. Por último, debes tener en cuenta que dependiendo del juego puede que exista un alma caritativa que ya haya invertido su vida y su tiempo de forma altruista analizando el executable del juego para averiguar y extraer todo lo necesario y compartir con los demás mortales (quienes no poseemos suficientes conocimientos de ing. inversa) una API con todas las estructuras y valores del juego en cuestión ya puestas a tu disposición para consumir e interoperar de forma relativamente facil con el juego.
La página
https://www.ownedcore.com/ es un buen lugar de referencia para encontrar este tipo de cosas para juegos de Blizzard. No he mirado si hay alguna API publicada para el WoW, pero seguramente la habrá, ya que si la hay para Diablo III y esta se utiliza en los bots de pago del Diablo III. Probablemente también sea la página más adecuada para formular dudas específicas o solicitar orientación sobre el desarrollo de bots para WoW... u otros juegos online que se inicien a través de un executable cliente.
Tip: en ownedcore puedes encontrar una librería gratuita y desarrollada en C# que se llama "graymagic", la cual he visto utilizar en dos bots diferentes y de pago de Diablo III para el análisis/lectura/escritura de la memoria del proceso. Se supone que es una librería optimizada en este aspecto, así que no debería faltar en tu colección, ya que probablemente sirva igual de bien para el desarrollo d eun bot del WoW.
Saludos.