1. Можно вообще не заморачиваться графикой, обойтись по началу текстом.
2. Да, вполне можно разделить процессы на разные сервисы. Общение можно делать через базу данных или любой вид межпроцессорных взаимодействий, те же сокеты.
Главное грамотно разделить.
В идеале, чтобы остановка одного из процессов не мешала жить остальным - упал сервер обслуживающий AI, исчезли монстры. Но сам мир, трава, ресурсы - на месте, и пользователи могут бегать. Так реализовано в той же Linage от NCSoft.
3. Если у вас будет готова и описана логика, то высоконагруженные алгоритмы можно написать на С++, java, go, любом другом языке.
Если вы собираетесь это все монетизировать - это одно. Просто выпустите рабочий хороший вариант, доведите его до ума и пробуйте. Если взлетит - всегда можно будет нанять программистов, переписать отдельные процессы с нуля (при наличии ТЗ и хорошо описанной логики) на компилируемом языке.