Ответы пользователя по тегу Разработка игр
  • Почему ИИ в играх не обучается?

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

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Сказать то можно что угодно, можно даже в случае отсутствия определённой расы среди персонажей игры, назвать разработчика расистом, но не насрать ли? Напротив, будет дополнительный пиар, если кто-то начнёт набрасывать на вентилятор
    Ответ написан
  • Можно сделать для игры сокобан 100000 уровней?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    А в чём вопрос то? Можно создать вручную или теоретически? При бесконечном размере поля можно создать бесконечное количество уровней.
    Ответ написан
    Комментировать
  • У меня в перспективе работа над AAA проектами, поэтому стоит ли выбирать Unreal Engine лишь потому что там c++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    А что мешает изучить хотя бы поверхностно несколько движков, но более углублённо тот, который понравится/на котором больше вакансий/больше зарплата?
    Ответ написан
    Комментировать
  • Насколько тяжело попасть в 3A студию на роль программиста(gameplay,core или другие) и что для этого нужно(знания и тд)?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Учи C++, алгоритмы и структуры данных, архитектуру ПК, собственно геймдев(создай хотя бы один свой проект), математику(линейная алгебра как минимум), не тупи на собеседовании и работа твоя, в крупных студиях обычно есть вакансии для новичков.
    Ответ написан
  • Что может заменить c++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Какие языки есть которые могут работать с графикой

    В C++ нет средств для работы с графикой, а взаимодействовать с графическими апи можно практически с любого языка.
    и такие же мощные как и c++ и Java.

    Вы сначала расскажите, как измеряете мощность языков программирования.
    Там ну которые полегче что ли.

    Так нужно полегче или чтоб был заменой C++(мог решать те же задачи)?
    Не языки из семейства с.А именно отдельные.

    Смотря что ты относишь к семейству C.

    Сформулируй сначала задачу, которую хочешь решать и задавай вопрос так: "Какой ЯП лучше подходит для этой задачи?"
    Ответ написан
    Комментировать
  • Можно ли написать AAA-игру на языке программирование Си?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Можно хоть на brainfuck, вопрос только в том, сколько на это усилий и денег потратится, в общем случае для создания игры выбирают не язык программирования, а движок, т.к. незачем изобретать велосипед. Если речь про то, на чём удобнее создавать движок, то на C++, больше возможностей(STL, ООП, шаблоны, etc) и есть возможность оптимизации и нет лишнего оверхеда в отличии от некоторых языков вроде джавы.
    Пока что изучаю на первом курсе язык программирования Си

    Здесь ошибка в слове изучаю, может тебе повезло с вузом, но в большинстве дадут пару лаб на написание хелловорлда и всё, учить нужно самому. И не думай, что выучишь один ЯП и тебе этого будет достаточно, чтоб стать ценным специалистом.
    Ответ написан
    Комментировать
  • Почему игровые движки пишут на C++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Почему ни один из этих движков не написан на Java или Python?

    Java и тем более Python дают ооочень большой оверхед, да безусловно можно написать на них движок, но он будет не такой производительный. Также в отличии от большинства языков(включая Java и Python) C++ позволяет выжимать максимум производительности, в джаве сборщик мусора, там нельзя размещать объекты на стеке, там размер переменной привязан к виртуальной среде, а не к машине, на которой исполняется программа, куча проверок вроде выхода за границы массива, которые дают оверхед и в конце концов, джава использует виртуальную машину. AFAIR, в джаве даже нет аналога вектора, где элементы(а не ссылки на них) будут храниться последовательно в памяти и также нельзя включить один объект в другой не по ссылке, а в C++ можно.
    Ответ написан
    Комментировать
  • Насколько сложно создать свой игровой движок?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Насколько сложно создать автомобиль? Если делать всё самому и с нуля, то невероятно сложно, если брать готовые компоненты(двигатель, кузов, etc), то проще. Также это может быть игрушечный автомобиль, это всё упрощает, но также это может быть уменьшенная модель, но максимально реалистичная, тут уже сложнее.

    Вот также нельзя ответить на ваш вопрос, зависит от того, какой движок, для каких игр(2d, 3d, жанр), насколько с нуля он будет создаваться, будет ли поддержка клиент серверных игр и т.д.
    Ответ написан
    Комментировать
  • Какие языки нужны для создания визуальной новеллы?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    вики говорит, что там этот движок: https://ru.wikipedia.org/wiki/Ren%27Py
    Ответ написан
    Комментировать
  • Как каждую секунду проверять что-либо на что-либо?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Т.е. у тебя всего 1000 жителей и ты используешь MySQL? Допустим структура житель выглядит так:
    struct Citizen {
      char name[64];
      short hunger;
      short health;
      TYPE type;
    };

    И того 69 байт на 64 битной платформе, предположим, что там ещё куча полей и увеличим размер одного жителя до 128 байт(что даже избыточно), итого 128 кБайт, это крайне мало, можно хранить в ОЗУ, если нужно сохранять между запусками, то может redis подойдёт, ну или всё таки MySQL, но кешировать данные в памяти, т.к. если запрашивать каждый раз, оно будет крайне медленным.
    А на счёт темы вопроса, гугли game loop. Проверять каждую секунду скорее всего не надо, но надо обновлять на разное значени в зависимости от того, сколько прошло времени.
    game-loop-fixed.png
    В цикле вызываешь метод модуля, отвечающего за жителей, и тот уже обновляет нужных тебе жителей. Если прошла секунда, обновляешь на 1 * k, где k - коэффициент голода, если прошло 10 секунд, то 10 * k и т.д.
    Ответ написан
    3 комментария
  • Разработка игр - какой в этом смысл?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Цель любого бизнеса - заработок денег.
    Ответ написан
    Комментировать
  • Как создать поток sfml?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Ответ написан
    Комментировать
  • Header в header'е и можно ли делать игру на одних Header'ах?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Что я только что прочитал? Вы кажется не понимаете, зачем нужны хедеры, там должно быть определения всего что вы используете, а реализация в *.cpp. Распространённая практика - для классов использовать .h с определением и .cpp файл с реализацией, имя файлов совпадает с именем класса, в .h нужно использовать #pragma once или костыль include guard. Напрмер:
    Color.h:
    #pragma once
    
    // или так
    // #ifndef COLOR_H
    // #define COLOR_H
    
    class Color {
    public:
      Color(unsigned char red, unsigned char green, unsigned char blue);
    private:
      unsigned char red, green, blue
    };
    
    // #endif

    Color.cpp:
    #include "Color.h"
    
    Color::Color(unsigned char red, unsigned char green, unsigned char blue)
      : red(red), green(green), blue(blue)
    {
    }

    Из правила есть одно исключение - шаблоны, обычно их пихают в хедер с расширением .hpp, чтоб было видно, что это шаблоны, cpp для шаблонов сделать не получится.
    Можно конечно весь код писать в хедерах, но тогда при малейшем изменении перекомпиливается весь проект.
    Ответ написан
    Комментировать
  • Как участвовать в IT сфере школьнику?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Покажи мне код и я скажу тебе, кто ты. Всё, что ты описал не показывает абслютно никак твой уровень.
    А по сабжу, можешь попробовать поискать на сайтах типа киберфорума, там постоянно предлагают работать за еду или вовсе бесплатно но с надеждой на процент от проекта. Только учти, что процент ты с вероятностью в 99% не получишь и не факт что там будут люди сильно опытнее тебя. Можно ещё попробовать писать в геймстудии и напрашиваться работать за еду и учиться.
    Ответ написан
  • Как сделать сохранения в игре?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Ну очевидно сохранять то, что нужно восстановить при следующем запуске
    Ответ написан
    Комментировать
  • Какой жанр игр самый сложный в создании?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Если хочешь сделать востребованный продукт, то в первую очередь нужно смотреть на то, что хочет аудитория(ты ж не для себя делаешь), также желательно, чтобы это нравилось тебе.
    Какой жанр игр самый сложный в создании?

    Все одинаково сложные, какие-то меньше, какие-то больше, тут скорее зависит не от жанра, а от функционала игры, масштаба и т.д.
    Я спросил почему не выживач?Он ответил что выживачи говно.Я сказал несколько примеров, он ответил что это редкие исключения

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

    Смотря какая игра.. Можно выживалку сделать, используя ассеты из юниты и немного своего говнокода, а можно придумать абсолютно уникальный мир, как в майнкрафт, например, и реализовать, трудозатраты совершенно разные.
    Ответ написан
  • Подойдёт ли C++ для создания игр?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    люди сказали что он сложен для новичка - учи Шарп и садись на Юньку.Я уже привык к C++ так, что оторвался от него мне сложно

    Это значит ты не знаешь ни C#, ни C++. А по теме, попробуй и то и другое, что понравится на том и делай, потому что так выбирать будешь до бесконечности.
    Ответ написан
    2 комментария
  • Поиск адреса памяти в игре?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Возможно это то, что вам нужно https://habrahabr.ru/post/146791/
    Ответ написан
  • Что лучше выбрать, C или C++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Автор статьи так же рекомендовал Jav'у, т. к. она лучше справляется с теми же задачами

    Что такое Jav? Если речь про Java, то не слушайте автора, C++ и Java - это разные языки для разных задач, да можно решить практически любую задачу на практически любом языке, но везде будут свои минусы и плюсы. Если писать игровой движок, то лучше C++ из-за производительности.
    1) Какой язык лучше выбрать для разработки игр, C или C++?

    Лучше выбрать движок типа Unity, ureal engine, etc. Если писать игровую логику, то очевидно лучше C++, чем C(а ещё лучше что-то более высокоуровневое), если писать сам движок, то я бы выбрал C++, т.к. в C++ больше готового, тот же STL и есть классы.
    2) Легко ли перейти с C на C++ и наоборот, в случае необходимости?

    Можно конечно, но лучше сразу учить то, что надо.
    3) Если C++ лучше не выбирать, то стоит ли учить вместо него Jav'у?

    А какая цель? Написать игру или движок? Если игру, то учить нужно готовый движок типа UE(Blueprints|C++), Unity(C#), если движок, то C++. А Java немного для других задач.
    Основным минусом C++ приводилась очень высокая сложность языка

    Основная сложность языка в возможности выстрелить себе в ногу и в обратной совместимости(в C++ очень редко что-то выпиливают из языка), поэтому нужно просто чуть больше времени на изучение, чем с другими языками и чуть больше практики, чтоб не выстрелить себе в ногу.
    Ответ написан
    2 комментария