|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2017, 17:44 | #1 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Подходит ли мне C++? Создание аудио игр для незрячих
Здравствуйте.
Вопрос адресован к программистам C++, которые не те, кто только на словах программисты, а по настоящему программисты! Мда, вот это я загнул. Сразу в начале скажу, что пост будет не маленьким, потому что я должен высказать всё, для полного представления вами всей ситуации. Уже очень давно я выбираю язык программирования. И уже сдвинулся с места. Изначально я выбирал между Python, C# и C++. И я решил, что Python мне не помощник, а что мой выбор на C# и C++. В будущем, я хочу разработать 1 крупный проект, потому я и выбрал C# и C++, потому что это самые лучшие варианты для моей ситуации. Ниже я укажу мои задачи и то, чего я ожидаю от C++, помимо того задам некоторые вопросы. У кого есть возможность, пожалуйста помогите решить ситуацию и подскажите, подходит ли вообще C++ под мои задачи или нет. Я незрячий. Полностью слеп. И моя основная задача - это разработка аудио игр. В виде дополнительной задачи, мне нужно решить, программирование моё или нет, и стоит ли сделать программирование моей основной профессией. У нас есть аудио игры. Различные шутеры и т.д. Их много. Но разработаны большинство на C++ и на C#. Ну или на движке звуковых игр, который тоже разработан на C++. Мне всю жизнь нравился Си-подобный синтаксис. Но пугали сложности. И я всё же решил основной упор сделать на C++, потому что: 1. Любая сложность, согласитесь, это не нереально. То есть любую сложность можно преодолеть. 2. Если преодолеть эти сложности, те кто работают с C++ понимают, что у меня открываются огромные возможности! А главное, при реализации этих возможностей, развивается логика, алгоритмическое мышление, и конечно набирается опыт! И уж тем более на C++, мне не нужно бояться за то, что у него будет маленькая скорость, будет какая-то ошибка на уровне языка и т.д. Вот мои задачи: 1. Разработка под Windows. Причём что касается игр, скорее всего, сервер будет работать под Linux. 2. Необходимы средства для работы с клавиатурой. 3. Необходимы средства для работы со звуком. Такие решения думаю есть, типа DirectSound, Bass, а если не найду простых уже разработанных решений под эти библиотеки, то могу использовать тот же Urr klan. 4. Интересует работа с сетью. И желательно, чтобы всё было на высокоуровневом уровне, чтобы перед тем, как программировать, не нужно было становиться экспертом в областях сокетов, TCP/UDP и т.д. Кстати сразу задам вопрос. Знаю, что клиент и сервер можно писать на разных языках программирования. На сколько это так и сложнее ли в реализации, чем если писать всё на одном языке? Я сразу скажу, что я постоянно смотрел в сторону простых решений, в сторону простых средств, просто из-за своей лени! Теперь я решил, что таким образом я не до чего не дойду. И в конце концов, простые средства от сложных отличаются лишь сложностью. А если 1 раз понять, то дальше будет только проще и интереснее! Вот что мне требуется от C++: 1. Полностью компилируемый язык! Чтобы не было никаких ограничений. 2. Большое количество библиотек! Чтобы никогда не было их нехватки. Я уверен, что в случаи с C++, это не проблема! 3. Чтобы ничто не ограничивало меня при разработке. Чтобы я имел возможность разными путями решать задачи, чтобы я имел право самостоятельно выбирать как, что и за чем. Я скажу, что я решил идти сложным путём. Книг простых по C++ наверно не существует. Потому я изучаю C++ по темам, через сайты и прочее, а знания закрепляю практикой. Теперь меня интересуют вопросы: Возможно ли, зная основы, такие как переменные, условия, циклы, массивы, указатели, ООП, уже начинать искать решения моих задач и пробовать что-то реализовывать? Если нет, что нужно доучить, чтобы уже можно было практиковаться и экспериментировать? Чтобы реализовывать описанные мной ранее задачи, обязательно ли сильно вникать в низкоуровневое программирование, обязательно ли быть спецом в технической области? Или же не обязательно для моих задач использовать сложные инструменты C++? Сложно ли использовать в связке C++ и Python? И опять же о низкоуровневом. Если я хочу написать что-то типа самой программы игры на C++, а допустим логику писать на том же Python. Сложно ли это в реализации? Ещё о низкоуровневом. Я представляю поверхносно работу компьютера, представляю память. Но не хотелось бы, чтобы для программирования на C++, нужно было бы в это углобляться слишком сильно. Сейчас для меня самая сложная тема C++ указатели. Я вот никак не могу их понять. Потому что не имею представления как и для чего это используется, с какой целью. Но я думаю, что это не такая уж и проблема, чтобы отказываться от C++. И вот интересует ваше мнение в целом, подходит ли мне C++? Заранее благодарен! |
23.06.2017, 00:53 | #2 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
В С++ всего чтук 20-30 ключевых слов, есть ключевые понятия, поведения которых описано стандартом (например, указатели).
Все остальное - это библиотеки. Таким образом, сам язык понятия не имеет об аудио, видео, сети, windows. Все, совсем все - делается через библиотеки. После того, как вы сможете написать какие-то базовые программы (расчеты, калькулятор, и прочие студенческие штуки), вам прийдется выбирать какую-то библиотеку, для решения задачи (а скорее несколько), и уже изучать их, что бывает, очень сложно. ...и да, конкретно на С++ можно писать совсем без указателей, стандартная библиотека это позволяет и даже поощеряет (указатели упрятаны в ней в виде разного уровня абстракций). Указатель - это косвенная адресация: у вас есть переменнная-указатель, которая хранит адрес (число) чего-то другого. С адресами можно проводить арифметику, в отличие от обычных чисел, адресная арифметика считает в "штуках", а не байтах. Т.е. если у вас нечто требует 10 байт, то +1 к адресу сдвинет на 1 штуку, т.е. на размер "нечто", т.е. на 10 байт. Так как у вас две сущности - сам адрес, и что-то обозначеное адресом, соответственно есть операции изменения самого адреса и операции доступа к обозначеному используя адрес (разыменовывание указателя). Последний раз редактировалось alexzk; 23.06.2017 в 01:04. |
23.06.2017, 01:24 | #3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
скорость не повысится магически от просто использования С++, надо еще и правильно это делать
В каких-то случаях может быть и наоборот меньше скорость, например какие-то полезные вещи в С++ могут быть менее удобные чем в более высокоуровневых языках (ну или надо париться с подключением библиотек... что, кстати, намного сложнее в С++ из-за отсутствия общепринятого менеджера пакетов типа NuGet, pip) и будет лень это делать. Ну и "сложно" это не значит, что только сложнее изучать. Это значит так же и то, что проще допустить ошибку, больше времени занимает разработка, сложнее/дольше отлаживать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
23.06.2017, 06:56 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Alex11223, если вы называете NuGet общепринятым пакетным менеджером, то стоит упомянуть, что с С++ он дружит.
|
23.06.2017, 08:54 | #5 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
О указателях, всё равно я их пока не понимаю. Зачем они нужны и для чего это нужно. Это нужно показывать на какой то элементарной задаче, и пояснить почему её нельзя решить обычными переменными.
О языке, конечно, производительность зависит ещё от правильного кода. Я это знаю и согласен с этим. Проблема в том, что в будущем, когда я буду разрабатывать проект, я должен буду уверен, что всё работает так, как надо, и что проект работает правильно и эффективно. Просто интересует, можно ли использовать высокоуровневые инструменты C++, или же нет, и подходит ли в целом именно в моём случаи C++. |
23.06.2017, 08:55 | #6 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Да и скажу, что сам синтаксис C++ мне очень нравится. Но пугают указатели и некоторые другие сложные вещи.
|
23.06.2017, 09:51 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подходит ли Python под мои задачи и требования? Создание аудио игр для незрячих | jonikster | Python | 4 | 14.07.2017 19:00 |
Выбор языка программирования под создание аудио игр для незрячих! Python, C#, C++ или другой? | jonikster | Общие вопросы по программированию, компьютерный форум | 13 | 21.06.2017 20:07 |
Подходит ли C# под мои задачи и требования? Создание аудио игр для незрячих | jonikster | C# (си шарп) | 0 | 20.06.2017 14:59 |
подходит ли мне MS Access? | mitek | Microsoft Office Access | 3 | 05.03.2008 13:08 |