Привет! Мне кажется Вы зациклены на производительности. Все перечисленные языки не были бы столь популярны, если бы их производительность в среднем не покрывала требования пользователей и разработчиков. Уверен, что написать движок можно на любом из них.
Строуструп в своей книге «Программирование, принципы и практика с использованием C ++» сказал, что лучше использовать C ++ без готовых решений.
По поводу API и библиотек: они используются почти везде и, скорее всего, в Вашем проекте тоже будут. Не читал Страуструпа, т.к. это не мой профиль, но предполагаю, что он мог сказать подобное в академических целях либо в то время, когда разработка преимущественно была направлена на написание своих решений с нуля. В реальных проектах всё не так, зачем заново открывать африку если уже есть хороший функционал и им можно воспользоваться. Конечно, это не касается тех задач, когда, например, пишутся чистокровные фреймворки. Но Вы уверены, что Вам нужно именно это? Особенно не имея хорошего опыта.
ИМХО, если Вас интересует именно реализация алгоритма, то незачем париться насчёт доступа к памяти и производительности, по крайней мере пока.
C # - хорошее решение для Windows. Но он привязан к NET.
Немного позащищаю здесь c#. Майкрософт сейчас движется в нужном направлении кроссплатформенности, посмотрите на net core.
Не хочу, чтобы казалось будто я топлю только за c# :) Просто хотел развеять некоторые заблуждения и поделиться тем, с чем знаком. Мой совет: попробуйте разбить проект на небольшие части и начните его реализовывать, многие вопросы отпадут.