Здравствуйте. у меня есть вопрос. Но в начале о моем опыте в программировании. Из-за учёбы на программирование уходит не так много времени как - вопрос №2336817

хотелось бы. В 2012 году я начал изучать программирование, это был скриптовый язык для разработки скриптов одной из игр. Потом постепенно, постепенно, и я начал изучать C++. В 6 лет я потерял зрение. Использую Screen reader NVDA tiflocomp.ru nvda.ru Хочу создать звуковую игру, типа GTA, но где полностью нет графики. 3д звук есть, есть физика, а графики нет. У нас есть движок звуковых игр BGT, но он не совершенен. И вот вопрос: Какой язык программирования лучше изучать и использовать для данной цели? О крассплотформенности, я не плонирую любые другие платформы, кроме Windows. Варианты: C++ — лучший вариант, C++ быстр, гибок, но я сталкиваюсь с проблемами в указателях и stl, пока нет понимания зачем это и как, где требуется и прочее. C# — лучший вариант под Windows, но я читал, что он не так сильно производителен из-за сборщика мусора и проч. Но я не знаю, в каком плане для игры нужна производительность и проч.Python — хороший язык, простой синтаксис, но, автоматическая работа с памятью. Для меня плюс, плюс не нужно много о чём думать при разработке, а я не люблю думать о низкоуровневом, но минус для игры из-за производительности. Опять же, я не знаю какую роль производительность будет играть в моей игре. Варианты с Unity, Unreal Engine не подходят, так как там нельзя писать чисто кодом, а редактор, где можно подключить как редактор например Visual Studio не озвучивается. Хотя, я больше чем не против игрового движка в виде библиотеки, например DLL, которую просто подключаешь и уже из неё вызываешь функции и пишешь логику. Я не уверен, что придётся писать игровой движок, но скорей всего. О игре как уже говорил как GTA, но мне хотя бы сделать простое поле в начале, поле есть открытое игровое пространство, где будет игрок, которого можно поворачивать, чтобы он ходил и прочее. Прим. Подобные игры звуковые уже есть. Есть даже онлайн шутеры. Ориентирование происходит главным образом по 3D звуку. Качество звука, не обязательно лучшее. Такие игры как правило разрабатываются на C++ + DirectSound или Bass/PureBasic. Но DirectSound требует сильно много вычислений. Что можете мне посоветовать? Может какой-то из языков C++/C#/Python, или какой нибудь ещё язык? Заранее благодарен!

Дополнение автора от 19.02.17 01:35:55
Я хотел бы всяческую низкоуровневую работу типа работы с памятью свести к минимуму. Но боюсь за производительность. Но опять же, я не знаю где она нужна, и нужна ли если игра без графики.
18.02.17
2 ответа

Ответы

в целом вы уже подошли к критерию выбора, но сделать этот выбор вам придется самостоятельно

выбирать придется между освоением работы с указателями и полностью самостоятельным управлением памятью (это с++) с одной стороны, а с другой смириться с потерями производительности на сборщик мусора

либо одно, либо другое. либо с++ либо c#

python лучше отбросьте сразу — с производительностью там еще хуже, кроме того основная экосистема питона цветет в linux, там он очень активно применяется в роли скриптового языка — его место это короткий код, выполняющий достаточно продвинутую логику, но без претензий на производительность

c# лучший инструмент для среды windows, с отличным балансом легкости разработки и достаточно высокой производительности

с++ даст возможность получить более высокую производительность (в некоторых видах вычислений почти на порядок, то есть в 10 раз, но в некоторых выигрыш будет незначительным) но вот скорость разработки упадет не менее чем на порядок… а то и на два (раз в 100 тяжелее условно) риск ошибок трудноуловимых ошибок несоизмеримо выше

возможный компромисс -Rust (ссылка), у него нет сборщика мусора, но есть ряд приемов, которые снимают груз чисто ручного управления памятью, при чем эти приемы построены таким образом, что затраты на производительность практически эквивалентны ручному управлению… другой вопрос — я не успел найти сведения на сколько легко можно интегрировать Rust с существующими библиотеками кода, на том же с/с++, на вроде готовых движков для игр или звука, то что вам и надо. если сумеете найти информацию о том на сколько легко Rust может использовать готовые движки и драйвера windows, это может быть очень интересный вариант
18.02.17
о Rust и разработке игр:
sohabr.net/habr/post/303976/
sohabr.net/habr/post/323120/

(типа я предчувствовал..)

если Rust вас не отпугнет — рекомендую смотреть именно в ту сторону
02.03.17

Виталий

от 100 p.
Читать ответы
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store