@Ben_r007

Как выбрать язык программирования для разработки звуковой игры?

Я слепой. У нас есть звуковые игры. Гонки, шутеры и т. Д.
Я хочу разработать такую ​​игру, как Call Of Duty, но без графики.
У меня проблемы с выбором языка программирования.
Я знаю основы C ++, C #, Java и Python.
Я не могу использовать игровые движки, такие как Unity или Unreal engine, потому что они используют визуальные редакторы, которые мне не доступны.
Я могу создать свой движок.
Мне нужно:
Уверенность в том, что мой проект будет иметь достаточную производительность.
Высокоуровневое программирование. Мне не нравится работать с памятью. Я хочу написать игровой алгоритм.
Кросс-платформирование желательно, но не обязательно. Главное, чтобы мой проект работал на Windows.
Я хочу, чтобы моя игра была опытом на языке программирования. Чтобы я мог использовать язык программирования, с которым я буду разрабатывать игру для других задач.
Меня интересуют математические и физические библиотеки. Чтобы вычислить 3D, для движения, поворотов и т. Д.
3D-звук.
Клавиатура.
Простая работа с сетью.
Я решил выбрать один из языков программирования, с которым я знаком. Вот что я думаю о каждом из этих языков программирования для своей задачи:
C ++ - идеальное решение. В C ++ есть много библиотек и функций. Но у C ++ есть много возможностей и способов реализации. По этой причине я не знаю, сколько мне нужно знать на C ++ для разработки игр. Я знаю основы, переменные, условия, циклы, массивы, функции, ООП. Но у меня проблемы с указателями. Сейчас я не могу этого понять. Строуструп в своей книге «Программирование, принципы и практика с использованием C ++» сказал, что лучше использовать C ++ без готовых решений. То есть, если я хочу использовать библиотеки и API, C ++ - это не очень хорошее решение. Но меня привлекает C ++, потому что он высокопроизводительный. И имеет много библиотек.
C # - хорошее решение для Windows. Но он привязан к NET. Многие библиотеки портируются под C #, но я не уверен, что это будет работать, как и на C ++. C # проще, чем C ++, и мне это нравится.
Java - хороший кросс-платформенный язык программирования. Но я слышал, что производительность Java ниже C #. Я не уверен, что Java может решить мои задачи.
Python - это язык программирования, с помощью которого я могу решить многие задачи. Мне нравится, что в Python нет необходимости использовать ООП, но есть проблема. Я не знаю, как в версии 3 Python, но в 2 версии Python он имел плохую производительность.
Я хочу услышать ваше мнение.
  • Вопрос задан
  • 374 просмотра
Пригласить эксперта
Ответы на вопрос 5
sim3x
@sim3x
Без графики - любой язык потянет

Начните с создания прототипа
Ответ написан
Комментировать
customtema
@customtema
arint.ru
Python конечно.

Проблема с производительностью была решена лет 5 назад.
Ответ написан
Привет! Мне кажется Вы зациклены на производительности. Все перечисленные языки не были бы столь популярны, если бы их производительность в среднем не покрывала требования пользователей и разработчиков. Уверен, что написать движок можно на любом из них.

Строуструп в своей книге «Программирование, принципы и практика с использованием C ++» сказал, что лучше использовать C ++ без готовых решений.
По поводу API и библиотек: они используются почти везде и, скорее всего, в Вашем проекте тоже будут. Не читал Страуструпа, т.к. это не мой профиль, но предполагаю, что он мог сказать подобное в академических целях либо в то время, когда разработка преимущественно была направлена на написание своих решений с нуля. В реальных проектах всё не так, зачем заново открывать африку если уже есть хороший функционал и им можно воспользоваться. Конечно, это не касается тех задач, когда, например, пишутся чистокровные фреймворки. Но Вы уверены, что Вам нужно именно это? Особенно не имея хорошего опыта.

ИМХО, если Вас интересует именно реализация алгоритма, то незачем париться насчёт доступа к памяти и производительности, по крайней мере пока.

C # - хорошее решение для Windows. Но он привязан к NET.
Немного позащищаю здесь c#. Майкрософт сейчас движется в нужном направлении кроссплатформенности, посмотрите на net core.

Не хочу, чтобы казалось будто я топлю только за c# :) Просто хотел развеять некоторые заблуждения и поделиться тем, с чем знаком. Мой совет: попробуйте разбить проект на небольшие части и начните его реализовывать, многие вопросы отпадут.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Просто добавлю к обсуждению, что для C# есть достаточно приятный игровой фреймворк MonoGame, кросс-платформенный, неплохо себя зарекомендовавший.
Ответ написан
@potan
Функциональный программист
Я со звуком не работал, но по описаниям стоит посмотреть на Supercollider. Язык ориентирован на звук, много унаследовал от SmallTalk, но сдвинулся в функционального программирования.
Вспомнил еще библиотеку overtone для Clojure. Для игровой логики Clojure, наверно, будет удобнее, чем Supercollider. Они между собой как-то умеют взаимодействовать, но подробностей я не знаю.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы