Есть робот-игрушка, назовём его Петей. Пользователь, пройдя игру в мобильном приложении "Поле чудес" от лица Пети, заработал ему 10 баллов интеллекта. Данная заслуга сохранилась на сервере компании-производителя Пети. В любой момент, с сервера может поступить одна из команд доступных для его 10 баллов и он, к примеру, скажет своему хозяину "давай играть". В случае поломки Пети, хозяин идет в магазин и покупает нового робота, идентифицирует его на сервере и безымянный робот опять становится Петей со всеми его заслугами.
Мобильное приложение разработает лучше ТА КОМАНДА, которая разрабатывает мобильные приложения. Под мобильным приложением, видным пользователю, лежит такой айсберг работы, что один человек либо напишет нефункциональное окно, на которое можно будет только смотреть и радоваться, либо кучу плохо проработанных функций, где всё ломается с каждым днём и превращается в снежный ком из ошибок, которые надо исправлять, а исправлять их не так-то просто. Не надо думать, что если ты легко используешь приложение, то и пишется оно легко.
Сервер компании лучше сделает тот человек, который их постоянно делает. Благо, это больше относится к сисадминству (легче найти специалиста, так как их много). Делает сисадмин, консультируясь с программистом, потому что сервер должен просто предоставлять API (интерфейс), через который с сервером общается робот и через который с сервером общается мобильное приложение. То есть сисадмин должен просто всё установить, подключить и настроить.
На сервере будет стоят служба, которую разработает лучше всего тот, кто их постоянно разрабатывает, - системный программист. Там надо понимать в нагрузках, отказоусточивости и во всём таком. Он просто делает устойчивый сервис и реализует в нём API для взаимодействия с мобильным приложением, приходящим клиентом-роботом и внутренней базой.
Искусственный интеллект я как-то у тебя не наблюдаю. Но если он понадобится, тебе подойдёт любой игродел, там постоянно надо применять методы принятия решений. Ты его делаешь снаружи, а потом сисадмин подключает его к серверной службе через API. И служба к нему обращается и спрашивает "как мне вот поступить с такими-то данными?". Так ты можешь много всяких интеллектов делать и подключать снаружи к основному балансировщику.
То есть самое главное в этом всём - правильно разделить разботу между конкретными специалистами. Нельзя, например, сваливать на мобильщиков, которые не шарят в нагрузках, а больше привыкли картинки лепить в интерфейсе, работу с десятками тысяч роботов, коннектящихся к серверу. Они просто ничего в этом не понимают (и не должны понимать) и сделают всё плохо. И наоборот, нельзя на системщика сваливать работу с интерфейсом в мобильном, потому что он этим никогда не занимался. Ну, и регистрировать домены программисты у тебя не должны, этим должен заниматься тот, у кого есть время лазить по хостингам.
Конкретные языки узнаешь сам.