Задать вопрос
  • Математика для программиста игр. Где учить?

    Павел
    Может я пропустил какой-то важный промежуточный этап?

    Ну... может быть первые два курса в универе? Линейная алгебра, математический анализ, теория рядов, тензорная математика, дискретная математика.
    Ты, вроде как, это и пропустил. Это довольно важный промежуточный этап, особенно тензорная математика.
  • Почему не вижу параметров проекта в Visual Studio 2017?

    @MarkusD Куратор тега C++
    coldfire9 , опорным файлом для любой группы проектов MS VC++ является т.н. решение (Solution - солюшн - .sln файл).
    Открывать стоит только его, т.к. только сольшн дает информацию об окружении проекта.

    Какие профили разработки ты активировал при установке студии?
    Покажи лог Solution из Output после загрузки проекта, когда уже свойства смотришь.
    Дай ссылку на гитхаб проекта.
  • Почему не вижу параметров проекта в Visual Studio 2017?

    @MarkusD Куратор тега C++
    coldfire9 , чтоза проект ты загрузил? Куда ты его загрузил? Какой файл ты открываешь в VC++? Где скриншот окна свойств проекта?
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    res2001 , да, точно. Я про этих ребят забыл совсем. :)
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    MegaCraZy6
    Тут 6 символов, я так понял седьмой это символ конца строки?

    Да, 7й - это символ конца строки. Этот символ еще называют терминальным.
    Эта разновидность строки называется null terminated string.
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    res2001
    Похоже, что на данной платформе стек растет вниз (в сторону уменьшения адресов)

    А у тебя есть примеры платформ или процессорных архитектур, где стек ведет себя иначе?

    Если бы word был динамическим массивом, то скорее всего произошел бы seg fault

    Это не так. В какие именно моменты происходит проверка на Heap Corruption?

    В отладочной версии возможно и не произошел бы.

    Это тоже не так. Как именно происходит проверка на Heap Corruption? В какой конфигурации кучи происходит эта проверка, как это сказывается на производительности и потреблении памяти?
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    res2001 , к тому же...
    То процессор просто увеличивает значение счетчика стека на sizeof(krypted) байт.

    Не увеличивает, а уменьшает. Стек растет адресом в минус и схлопывается в плюс.
    Я как будто тебе такие же наводящие вопросы об ошибках в ответе не задавал. А ведь задавал уже. :)

    У MegaCraZy6 в стеке получается что word[5] своим концом смотрит в торец krypt.
    Если в word записать больше 5 байт (про терминальный символ не забываем), то будет затронута память под krypt.
    Он пытается писать "Hellow", значит 'w''\0' впишется в младшую пару байт krypt. Изначально krypt у него имеет значение 54414, что значит 0x0000D48E. Т.е. значимых там всего 2 байта. MegaCraZy6 работает с LE и оба значимых байта в krypt записаны впритык к хвосту word.
    119 - это код символа 'w'. Последовательность 'w''\0' просто переписывает значение krypt на 119, т.е. на 0x00000077.
    Все. Это и означает пропись в памяти - т.е. запись в не предназначенный для этого участок.
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    res2001 , мне нужен был ответ от Xilian , т.к. в его словах изначально неверные пояснения.
    MegaCraZy6 спросил, почему при записи 7 байт ("Hellow") в массив из 5 байт он прописывается в расположенную ниже по стеку переменную. Xilian на это дает заведомо неверное объяснение.
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    Xilian
    А массив - это вообще указатель на случайный мусор в памяти.

    А можно поподробнее, куда именно в памяти будет смотреть, скажем, krypted из вопроса? И что за мусор там будет?
  • C++ при вводе в одно переменную меняеться вторая?

    @MarkusD Куратор тега C++
    MegaCraZy6 , расскажи, как будут размещены в памяти все переменные из твоего кода.
    Расскажи ход работы программы, останавливаясь на каждой строке функции main.
  • Как вызвать функцию в С++?

    @MarkusD Куратор тега C++
    sanya84 , как верно замечает Роман , C4183 - это не ошибка, а предупреждение. Разница кардинальна.
    Само предупреждение говорит о том, что у твоего объявления функции play в классе COpenSound не получается распознать тип результата. Фактически на данном этапе компилятору уже настолько вывернуло мозги от неправильного синтаксиса, что он уже сам не понимает что говорит.
  • Как вызвать функцию в С++?

    @MarkusD Куратор тега C++
    sanya84 , а ты с синтаксисом C/C++ вообще знаком?
    Ты же в определении класса его грубо нарушаешь.
  • Хочу работать программистом в gamedev?

    dabiankolins1 , это SperaSoft и это довольно хорошая компания. :)
    Тут все просто. Информация для всех людей доступна одинаково, навыки у специалистов примерно выравнены. А уровень жизни в разных странах разный.
    И если в США, или Англии/Евросоюзе, квалифицированный инженер будет стоить $5-8к, то в РФ он будет стоить $1-2.5к. В других странах можно найти и еще дешевле.
  • Хочу работать программистом в gamedev?

    dabiankolins1 , а в этом плане уже не подскажу.
    В области веба находится широкий пласт геймдева - это социальные и казуальные игры. В это направление уходит немало людей, работы и интересности там тоже хватает.
    Иными словами, тебе незачем именно "идти в веб чтобы потом его бросить" просто ради игр. Тебе достаточно определиться со своим направлением развития. К тому-же сейчас джуниором устроиться немного легче.
  • Хочу работать программистом в gamedev?

    dabiankolins1 , в те года через эту калитку было легче зайти в коммерческую разработку. Рядовая вакансия на плюсы безусловно содержала фразу: "От двух лет коммерческой разработки с использованием языка". Можно сказать, что я, наоборот, временно зашел в веб для старта, а не перешел из него. К тому же это были 2008-2009 года. Кризис, паника, массовые увольнения и тому подобное.
  • Хочу работать программистом в gamedev?

    dabiankolins1 , самое главное - это понять вот что.
    Язык программирования - это просто инструмент. Токарь не задумывается над тем, с резцом по черному металлу ему для начала поработать или сразу браться за цветмет. У группы инструментов есть общие концепции использования, именно ими в первую очередь и нужно заняться.
    Общие концепции для нас - это шаблоны проектирования, подходы к архитектуре, а так же разделы высшей математики и логики.

    насколько популярны в больших компаниях те или иные движки?

    Инструмент всегда выбирается под конкретный проект. Выбор инструмента всегда должен быть технически обоснован, т.е. должен быть анализ всей группы инструментов и должен быть набор тезисов, подчеркивающих преимущество использования именно выбранного инструмента.
    Язык - это инструмент. Движок - это инструмент. Любая технология - это инструмент.
    Профессионализм - это способность владеть широким набором инструментов и постоянная готовность осваивать новые инструменты.

    Ссылка выше должна стать твоим путеводителем на следующие лет 15-20. Английский должен стать вторым родным. Русский язык нужно дотянуть до максимально грамотного уровня. Мысли свои надо научиться выражать однозначно, чтобы их понимали другие люди.
    Между собой мы общаемся на родном Русском языке. Неграмотное владение родным языком выдает небрежность, значит за собой ты склонен оставлять мусор и не следишь за порядком своих мыслей. Это резко негативный фактор для инженера.
    С большей половиной сторонних разработчиков мы общаемся на интернациональном Английском языке. Грамотное владение этим языком нужно не только для общения, но и для понимания программного кода, и для понятного, грамотного изложения своих мыслей в виде программного кода. Программный код на языках высокого уровня мы пишем не для машины, а для того, чтобы в самом чистом и понятном виде донести до других участников проекта то, чего нам хочется добиться от машины.
    Свое время тратить надо на это. Это самые близкие тебе инструменты в данный момент.

    Заведи себе https://github.com/ и/или https://gitlab.com/ уже сейчас, пусть пока они будут пустыми. Изучи принципы работы с системами контроля версий: svn и git надо знать и применять в своей жизни. Заведи себе аккаунт в https://trello.com/ и обучись планированию своего времени.
  • Хочу работать программистом в gamedev?

    dabiankolins1 , ты можешь заглянуть ко мне в профиль и сам все посмотреть.
    Программист - понятие в руках обывателя не имеющее границ. У тебя в вопросе конкретики нет, это уже сильно режет твои шансы на успех.

    Конкретика - это:
    • твой возраст;
    • твое текущее образование;
    • город твоего текущего проживания;
    • твоя готовность к релокации без гарантии устройства на работу;
    • область геймдева, в которой тебе хотелось бы работать (социальные игры, казуальные, мобильные, дектопные, под PS/XBOX, ММО индустрия, AAA-проекты и.т.д.);
    • уровень твоих текущих навыков в области разработки;
    • наличие/отсутствие участия в коммерческой разработке;
    • какие технологии ты изучил;
    • какие технологии ты изучил за последние полгода, почему (с техническим обоснованием) именно эти;
    • какие у тебя планы по личному росту на следующие полгода;
    • в какой области разработки ты хотел бы работать (бизнес логика, системный уровень, сетевые технологии, физика, ИИ, рендеринг, хранение днных, ...);
    • твои личные проекты за последние полгода;
    • твое участие в Open Source проектах, где можно посмотреть твой вклад и проследить историю твоей активности;
    • любая дополнительная и ценная информация о тебе как о специалисте.


    И, конечно же, еще есть многократно размещенная на тостере ссылка на роадмапу игрового разработчика:
    https://github.com/miloyip/game-programmer
  • Есть ли возможность реализовать алгоритм поиска кратчайшего пути для большого числа вершин графа с минимальным временем работы?

    WTFAYD , при 60FPS на один кадр отводится всего 16мсек. Ты точно уверен что ~20мсек на поиск пути будет приемлемо?
    Для чего на каждом кадре искать путь?
  • Есть ли возможность реализовать алгоритм поиска кратчайшего пути для большого числа вершин графа с минимальным временем работы?

    WTFAYD , так у тебя все таки граф или равномерная сетка?

    Дай численные характеристики. Дай ширину и высоту поля (хотя-бы "от" и "до"). Дай время работы алгоритма Ли и A* на конкретном поле конкретных размеров.
    Объясни свою реализацию A*.
    Узлы в твоей сетке/графе одноранговые?
  • Как понимать фабричный класс в классе фабричный метод??

    artshelom , да, книжки могу посоветовать.
    Мартин Фаулер, "Рефакторинг" (сайт книги) - наверное это самый частый источник эффекта Даннинга-Крюгра у джуниоров.
    Роберт Мартин, "Чистый код. Создание, анализ и рефакторинг". Просто берем и читаем.
    Марк Гранд, "Шаблоны проектирования в Java". Это очень полезный источник информации о довольно распространенных инструментах в среде Java, которая до сих пор занимает важное место в интерпрайз разработке.
    The Gang Of Four! Или просто GoF, "Приемы объектно-ориентированного проектирования. П...". Это очень серьезный академический труд, который каждому инженеру важно изучить во всех деталях.

    И, без сомнения, книга, которую я посоветую читать в первую очередь.
    Дастин Боссуэлл, "Читаемый код, или Программирование как искусство". Книга изобилует примерами на C++, но не относится к области плюсов. Книгу важно изучить буквально всем людям, чье понимание написания кода еще не сформировалось. И тем более ее важно прочитать тем, чье понимание уже сформировано, для коррекции понимания.

    Попробуй еще поизучать такой сайтец.

    Но ни что не сделает для тебя понимание подходов более понятным, чем регулярная практика. Нужно всегда задавать себе вопрос: удобно ли пользоваться кодом, что я сейчас пишу?