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

    stream13
    @stream13
    Тяга к творчеству это хорошо, но в планах наблюдается бардак.
    Я бы посоветовал использовать один язык для всего, не использовать С и С++, и пока не делать веб морды. Код на С++ пишется дольше и требует больше знаний, а на С и подавно.

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

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

    Почему так? Ну как минимум потому, что вебморда -- это не более чем интерфейс для телеметрии и управления, и пишется она за вечер-два(простенькая). Это маленькая и минимально полезная часть системы.
    А вот написать демона, который бегает по игровому миру и пытается анализировать происходящее -- задача нетривиальная и объемная.
    Ответ написан
    4 комментария
  • Проблема с отправкой данных с сервера к клиенту.C++

    stream13
    @stream13
    Из вопроса не совсем ясно, что происходит.
    Может у Вас дескриптор перетирается при открытиях сокетов, или обработчики не вынесены в отдельные потоки.
    Еще, попробуйте, заменить серверный send() на write(сокет, данные, размер).

    Возможно, третий пример будет полезен.

    Если возможно, советую установить WireShark на клиенте и сервере, и это поможет покопаться в пакетах.
    Ответ написан