А можно пару чисто технических вопросов. Насколько я понимаю у вас на каждого пользователя по серверу? Или один сервер на несколько пользователей?
Ядро для обсчета комбинаций направлений скорее всего общее для всех, нафига его дублировать для каждого клиента?
А вы математическую часть уже пытались как-то оформить, например в виде блок-схемы на "листочке бумаги"?