Какой язык выбрать для написания самообучаемого бота MMORPG?

Доброго времени суток.
Сегодня я прошу вас помочь мне с выбором языка для реализации network level бота для MMORPG.

Критерии следующие :
Возможность работать без клиента игры(a.k.a non-gui client emulator)
Самообучаемость a.k.a. Machine Learning
Управляемость с Web-GUI
Многопоточность в плане кол-ва одновременных соединений

У автора имеются неплохие знания в Python (3, второй я не признаю!), Java и в данный момент автор начал изучение языков C/C++.
Собственно здесь и произошёл раскол между Python(логическая часть бота + Web-GUI) + C extensions(эмулятор клиента) и Java'ой

Бэкэнд планируется написать в стиле демона *nix систем(а надо ли?), а установить и запустить на последнем Ubuntu Server(а стоит ли?). С фронтэндом определюсь потом, хотя от советов не отказался бы.

З.Ы.: Может ли система сетевого сглаживания a.k.a. lag-compensation или интерполяция создать дискомфорт для бота и как бы вы порекомендовали бы мне решить эту проблему?
З.З.Ы.: Советы и ссылки на мануалы, гайды, сообщества, как-либо связанных с проектированием, написанием, тестированием, отладкой подобного рода софта приветствуются!
  • Вопрос задан
  • 6982 просмотра
Решения вопроса 1
stream13
@stream13
Тяга к творчеству это хорошо, но в планах наблюдается бардак.
Я бы посоветовал использовать один язык для всего, не использовать С и С++, и пока не делать веб морды. Код на С++ пишется дольше и требует больше знаний, а на С и подавно.

1) выбрать Java. из-за простоты, гибкости и неплохой производительности.
2) написать минимальского бота, который может хотя бы законнектиться к серверу.
3) по очереди добавить в бота возможности банально ходить, атаковать, и что там еще можно.
4) научить бота делать эти вещи по команде/таймеру/etc . А именно, научить его парсить JSON или обрабатывать LUA-скрипты или еще что-то
5) научиться адекватно передавать в программу полученные от сервера данные об локации и окружающих существах. и обрабатывать их (скриптом - ?)
6) RTFM про перцептрон
7) Начать совмещать обработчик комманд и входящих данных с инфой по ИИ: дать боту цель и заставить анализирвоать возможные пути ее достижения, перебирая их. Научить бота выбирать оптимальные пути. Добавить новые цели и параметризацию целей.

И вот когда бот начнет хотя бы более-менее осознанно дрыгаться и бить монстров, вполне можно наворотить вывод его инфы в MySQL/MongoDB/etc и начать отрисовывать страницы через отдельный кусок софта.
Через Python/PHP/..., на приснопамятном, последнем Ubuntu Server.

Почему так? Ну как минимум потому, что вебморда -- это не более чем интерфейс для телеметрии и управления, и пишется она за вечер-два(простенькая). Это маленькая и минимально полезная часть системы.
А вот написать демона, который бегает по игровому миру и пытается анализировать происходящее -- задача нетривиальная и объемная.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@FoxInSox
Тот который лучше знаете.
Ответ написан
@andyN
Для начала неплохо было бы выбросить религиозный фанатизм из головы (да-да, я про Python 2.*). После этого ответ на вопрос может стать очевидным.
Ответ написан
Jimilian
@Jimilian
А что Вы подразумеваете под ботом? С какой целью Вы его пишите?
Ответ написан
Комментировать
@iskateli
Можете использовать язык jingjing для бота L2Net
wiki.ltwonet.com/wiki/Main_Page
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы