• С чего начать создание игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    И ещё вопрос - где тусят потенциальные гении в сфере создания игр (форум или группа итд)?

    Известно где - на работе, возможно в хорошей компании.

    Те, кто слишком тусит на форумах или группах - теряют время вместо того, чтобы создавать продукт.
    Ответ написан
    Комментировать
  • С чего начать создание игры?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Раз игры никогда раньше не делали, то забудьте про онлайн и 3d, начните с классики: тетрис, pacman, арканоид. Возьмите готовой графики с этого сайта и попробуйте сделать аккуратную маленькую законченную игрушку. Скорее всего, через несколько недель окажется, что делать даже самые примитивные игры не так уж и просто. Наращивать функционал можно, но для этого нужно хорошо понимать саму разработку игр, первые пять-десять игр в любом случае должны легко умещаться у вас в голове, а когда разберётесь с малым масштабом, тогда уже можно думать о каком-то росте. И сразу разочарую, никакие инвесторы не будут вас слушать без выпущенных игр.

    Из популярных сейчас движков самый дружелюбный к начинающим это Unity. Посмотрите официальные туториалы, поучаствуйте в геймджемах, начните с малого прежде чем рваться собирать команду и строить вселенные.
    Ответ написан
    1 комментарий
  • При копировании данных из одного массива в другой последний элемент копируется с мусорными значениями. Как это устранить?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Добавь в конце строки символ окончания строки(имеет код 0). А ещё копировать лучше с помощью strncpy
    Ответ написан
    8 комментариев
  • С чего начать создание игры?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Пишете питч на одну-полторы страницы:
    • название
    • таглайн геймплея одной строкой (на что похоже и чем отличается в лучшую сторону)
    • синопсис сюжета (можно тоже одной строкой на данном этапе)
    • USP (unique selling point, почему в игру будут играть)
    • платформа/платформы
    • ЦА — люди, которым должна понравится ваша игра (независимо от пола и возраста, если, конечно, речь не о розовых понях для девочек 8 лет)
    • более развернутые абзац или два о игре в целом, планируемые механики (особенно новые и ключевые), на что в игре будет упор
    • референсы (на что похоже визуально и по музыке, с указанием почему нравится и почему нет — чтобы художники и композиторы понимали, какой стиль вы хотите, а остальные понимали атмосферу и настроение)


    Этот питч уже можно показывать людям и подбирать команду/единомышленников.
    Пока этот процесс длится, можно писать "библию мира" — документ с описанием реалий мира и его законов (если, конечно, действие происходит не в настоящем или истории). Из сеттинга вытекают персонажи, из персонажей — конфликт между ними. Главных персонажей тоже надо хорошенько описать — как выглядит, как ходит, тембр голоса и речевые особенности (два последних пункта — если в игре есть диалоги).
    Параллельно пишется дизайн-документ — расширенная версия питча, где подробно расписаны механики, в чем они похожи на существующие в других играх и чем отличаются, как взаимодействуют друг с другом, как ведут к монетизации (если она есть), уровни/локации/миссии.
    С командой и документами можно делать прототипы. Для сюжетно-ориентированных игр можно спрототипировать историю и всякие диалоги в текстовом движке типа Twine. Прототипы механик лучше делать на уже выбранном движке, чтобы сразу было понятно, нет ли каких ограничений и подводных камней с этой стороны. Художники рисуют концепт-арты, композиторы пишут музыку.
    С этого же момента можно начинать строить сообщество — заводить дневничок разработчика в соцсетях и т.д.

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

    Пытаетесь пробиться в стиме среди тысяч других инди-разработчиков:)
    Ответ написан
    5 комментариев
  • Как работать со статическими методами?

    @Wexter
    статический метод это обычная функция, только определён внутри класса.
    Ответ написан
    Комментировать
  • Чему учиться для работы из дома?

    @klim76
    android/java/sql
    путь первый:
    1) закупитесь дошираком
    2) найдите хоть кого нибудь кто возьмёт вас без опыта не за бесплатно, удалённо со знаниями "никаких кроме HTML"
    3) копайте вглубь и вширь на этом месте
    4) найдите что вам в ваших раскопках будет больше по душе и учите это
    путь второй:
    1) почитайте интернеты, выберите себе, как вам кажется, приемлемое направление развития
    2) пытайтесь изучать это
    2.1) умрите с голоду...
    Ответ написан
    1 комментарий
  • Почему данная шаблонная функция не хочет перезагружаться?

    @MiiNiPaa
    Я не буду расписывать все проблемы данного кода, остановлюсь на главном:

    Function1 объявлена как принимающая 2 аргумента одного типа. Во втором и третьем случае вы вызываете её подсунув аргументы разных типов. Соответственно компилятор не может решить, чем будет T в данной ситуации - double или int, char или int? Либо делайте 2 шаблонных типа, либо делайте 2й аргумент нешаблонный, либо передавайте аргументы одного типа, либо явно говорите функции при вызове, чем является T.

    Вторая проблема, не дающая собрать код, это противоречащие объявления этой функции - в одном случае аргумент по умолчанию есть, во втором - нет.
    Ответ написан
    8 комментариев
  • Почему не получается передать указатель в функцию?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    передать-то его получается, но перед использованием надо выделить память.
    int* ptr = new int[10];
    Ответ написан
    Комментировать
  • Почему не получается передать указатель в функцию?

    15432
    @15432
    Системный программист ^_^
    Вы забыли выделить память и поместить указатель на выделенную область в ptr

    Перед вызовом function1 добавьте

    ptr = new int[size]
    Ответ написан
    Комментировать
  • Как присвоить полям структуры значения вводимые с клавиатуры?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Ответ написан
    Комментировать
  • Какие функции(или не функции) нужно использовать, чтобы создать в консоли движующийся объект по нажатию определенной клавиши?

    EnDeRJaY
    @EnDeRJaY
    cout >> "Hello World!" >> endl;
    char m;
    char m=getch();
    switch(m)
    {case "W":Example1();break;
    case "S":Example2();break;
    default:break;
    }
    Ответ написан
    Комментировать
  • Какие функции(или не функции) нужно использовать, чтобы создать в консоли движующийся объект по нажатию определенной клавиши?

    @LexArd
    если в Windows, то самое простое:
    #include <conio.h>
    ....
    char key = getch();
    switch(key) {
    case 's': direction = DOWN;
                  break;
    }
    Ответ написан
    Комментировать
  • Какие задачи решаются на C++?

    @Mercury13
    Программист на «си с крестами» и не только
    На Си++ пишутся сложные быстрые программы. Этим всё сказано.
    Игры, настольные программы, всякие там серверы…

    Лучше скажу, что НЕ пишется на Си++.
    1. Софт, сильно абстрагированный от машины, изменяемый пользователем и/или призванный запускаться где угодно: программы для iOS, Android, веба, высокоуровневые части некоторых игр…
    2. Компактные программы (например, для микроконтроллеров). Сейчас — вотчина Си и его уменьшенных библиотек.
    3. Простые программы, для которых быстродействие и установка дополнительного фреймворка — не проблема: 2D-игры наподобие Braid или Fez, графический редактор Paint.net…
    Ответ написан
    Комментировать
  • Как сделать нечто подобное в консоли?

    @Alexander1705
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; i < n; ++i)
        {
            if (i == 0 || j == 0 || i == j || i+j == n-1 || i == n-1 || j == n-1)
                std::cout << '*';
            else
                std::cout << ' ';
        }
        std::cout << '\n';
    }
    Ответ написан
    Комментировать
  • Выдает ошибку на этапе выполнения. Почему?

    15432
    @15432
    Системный программист ^_^
    Потому что у вас в массиве зарезервировано всего 44 места (0...43), а вы используете 45 (0...44)
    Ответ написан
    Комментировать