Цитата Сообщение от boRada Посмотреть сообщение
Извини, но я не пойму, по какой логике они должны быть смешаны. Мы так же смешиваем и язык игры ил2 (с любым языком, на котором ты предлагаешь писать) и ничего криминального при этом не происходит? При том что параллельно работать могут еще с десяток разых программ. Зачем нам встраивать их друг в друга?
tahorg уже написал все правильно, но я хочу проиллюстрировать простым примером.

Рассмотрим ситуацию: Игрок дал команду <planes.

Раздельная реализация: парсер на Java (П), контроллер миссий на C# (К) и логика на Питоне (Л).
1. П видит команду <planes, и должен спросить К о наличии самолетов
2. Каким-то образом опрелелят где находится К
3. Устанавливает канал обмена информацией с К
4. Упаковывает данные: имя команды,имя игрока, координаты... возможно еще что-то
5. Передает К
6. К распаковывает
7. Производит вычисления и определяет наличие самолетов на данном поле.
8. Запаковывает запрос к Л на определение возможности взлета данному игроку на каждом из самолетов.
9. Передает Л
10. Л анализирует
11. Упаковывает обратно отфильтрованный список
12. K принимает ответ
13. Упаковывает для ответа П
14. П распаковывает ответ
15. П форматирует, переводит в локаль пользователя и выплевывает в чат.

В случае с встроенным СЯ и имея контроллер K допустим на Ruby получим:
1. П видит команду <planes, и должен спросить К о наличии самолетов
2. Находит у себя объект К
3. Вызывает метод для команды <planes
4. Производит вычисления и определяет наличие самолетов на данном поле.
5. Находит объект Л
6. Вызывает метод объекта Л и получает отфильтрованный список
7. К возвращает список
8. П форматирует, переводит в локаль пользователя и выплевывает в чат.

При этом создание протокола для передачи это отдельная задача, гораздо более сложная и ошибкоемкая чем парсинг лога...