Ответы пользователя по тегу Разработка игр
  • Кто занимается разработкой анимаций?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Анимации делает аниматор, если его нет, то либо берут готовые анимации, либо ими занимается моделер/художник. Программист такими вещами не должен заниматься, он может вставить анимации в игру, подключить логику запуска определённых анимаций, но создавать анимации точно не его работа. Ближе всего к анимированию, наверное, инверсная кинематика, но она в основном используется для решения примитивных задач.
    Ответ написан
  • Какой сервис можно использовать для проектирования уровня игры?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Кроме Tiled по сути ничего и нету, все либо используют его, либо встроенные инструменты движка, либо пишут свой редактор. У каждой игры своя специфика, поэтому универсальное решение сложно сделать.
    Ответ написан
  • Как настроить, чтобы Directional Light освещал всю сцену?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Directional Light и так светит на всю сцену, то что у вас на скриншоте, это блик. Если не хотите блик, то либо поверните источник света так, чтобы ничего не бликовало в камеру, либо в настройках материала воды сделайте гладкость поменьше, ну или вообще поставьте Unlit шейдер. Если шейдер менять не хотите, то можете выкинуть Directional Light и вместо него меняйте общий Ambient в окне Lighting.
    Ответ написан
  • Как в Unity в режиме 2D определить расстояние до преграды?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Странно, конечно, что у них двадэшное и тридэшное API так отличается, но при желании можно написать свою обёртку:
    using UnityEngine;
    
    public static class Physics2DUtility
    {
        public static bool Raycast(Ray2D ray, out RaycastHit2D hit)
        {
            hit = Physics2D.Raycast(ray.origin, ray.direction);
            return hit.collider != null;
        }
    }

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

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Судя по скриншоту, лайтмапами вы не пользуетесь. Почитайте про Global Illumination и Lightmapping, начать можете с мануала и официального туториала:
    https://docs.unity3d.com/Manual/GIIntro.html
    https://unity3d.com/ru/learn/tutorials/topics/grap...
    Кроме лайтмапов явно используются постэффекты, может быть самописные, может быть из Standard Assets. Без них картинка будет совсем не такая. А вообще можете написать разработчикам и спросить как они добились такой картинки, контакты есть у них на сайте.
    Ответ написан
  • Геймдизайн: может ли жить такая механика?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Игра в каком жанре? Для какой платформы? Чем buy-to-play отличается от pay-to-play? Ваше описание рас не имеет смысла без контекста. Да, для сферической игры в вакууме можно сбалансировать три расы с разными экономиками войны, вам от такого ответа этого легче стало?

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

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Шейдеры нужно менять, если они на мобилках тормозят. Если игра летает, то делать ничего не надо. Подобные решения надо принимать исходя из данных профайлера, а не ответов на тостере.
    Ответ написан
  • Как работает raycasting?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Вы про ray casting или ray tracing? Это близкие понятия, но одно относится больше к физике, а другое к рендерингу. Если брать ваш конкретный сценарий, то проверок нужно две: одна на пересечение луча и плоскости, вторая на нахождение точки в квадрате. Про алгоритм пересечения луча с плоскостью можете почитать здесь.
    Ответ написан
  • Зачем люди используют pygame и подобные вещя для создания игр?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Pygame используют в школах для обучения программированию, на нём прототипируют, делают текстовые игры, визуальные новеллы. Для более-менее серьёзных вещей, разумеется, не используют.
    Ответ написан
  • Почему важен высокий FPS в шутерах?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Проведите простой эксперимент: как можно быстрее переместите курсор под диагонали из одного угла монитора в другой. Много вам времени потребовалось? Я за долю секунды прошёл два монитора туда и обратно на простейшей мышке с низким DPI. За очень малое время можно очень далеко переместить прицел. С игровой мышкой результат был бы разы лучше и точнее. Теперь представим, что монитор работает с очень низким фпс, пускай это будет один кадр в секунду. Сможете ли вы точно прицелиться при такой частоте обновления? Не сможете.

    Теперь, если добавить в эту схему сеть, то получается следующее. С сервера на ваш компьютер приходят данные о положении противника с задержкой сети, скажем, 80 миллисекунд. Игра обрабатывает данные, отправляет на монитор, игрок реагирует, двигает мышку, игра считывает положение мышки, отправляет в сеть. Если игра тормозит, то серверные данные окажутся на экране с дополнительной задержкой, игрок позже с реагирует, игра позже отправит реакцию на сервер. Далее сервер принимает данные, сравнивает положение противника с положением мышки и принимает решение о попадании. В сумме такой цикл может занять несколько сотен миллисекунд. Иными словами, игрок получает устаревшую информацию, реагирует на неё, сервер получает устаревшую информацию, реагирует на неё. На задержки сервера и игры повлиять могут только разработчики, игроку это не доступно. Что может сделать игрок, так это уменьшить задержки на своей стороне: подключить стабильный интернет, играть без тормозов и быстрее передавать данные игре с помощью хорошей мышки.

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

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

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    На aigamedev.com есть много хороших статей. Ещё посмотрите родственный сайт nucl.ai.
    Ответ написан
  • Какое разрешение экрана выбрать для дизайна игры для Android и/или IOS?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Сначала выбираете целевые устройства, например "от пятого айфона и выше". Берете максимальное разрешение из этого диапазона и рисуете, для меньших разрешений жмёте картинки скриптом для фотошопа. Далее либо запихиваете все варианты графики в одно приложение, либо делаете отдельно HD и SD версию, либо качаете нужную графику при первом запуске. Для айпадов-андроидов точно так же.
    Ответ написан
  • Где делятся знаниями гиганты игровой индустрии?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Много где: пишут в блогах компаний, на гамасутре, публикуют статьи в книгах-сборниках вроде Game Programming Gems, выступают на конференциях. Про Game Developers Conference слышали? У них есть канал на ютубе, битком набитый презентациями. На крайняк можно написать конкретным разработчикам и спросить интересующую информацию.
    Ответ написан
  • Насколько необходимы навыки художника для геймдизайнера?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Геймдизайнер не рисует, не путайте с вебдизайном, он занимается геймплеем. Рисование полезно для демонстрации идей команде, но не обязательно. Из ключевых навыков на первое место я бы поставил умение выражать мысли устно и письменно, а на второе программирование (кодом или визуальное). Без первого вы не сможете общаться с командой, а без второго не сможете прототипировать (без графики игру сделать можно, а без логики не получится). Если хотите поближе познакомиться с профессией, то почитайте книжку The Art of Game Design: A Book of Lenses, там описаны необходимые навыки.
    Наставника можно найти только в игровой студи, если вас возьмут как младшего геймдизайнера или стажёра. Правда, скорее всего, вам придётся писать напрямую в игровые студии, такие вакансии редко публикуют, нынче же все хотят геймдизайнеров с длиннющим портфолио, битком набитым AAA-играми с многомиллионными тиражами. Для самостоятельного развития полезно смотреть доклады с GDC и читать статьи на гамасутре. Курсы по геймдизайну в России есть, но они дороговаты и сыроваты, пробуйте с осторожностью.
    Ответ написан
  • Unreal Engine vs Unity для RTS, что выбрать?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    RTS плагинов для юнити побольше будет, и на шарпе писать проще, а в остальном одна фигня. Берите то, с чем больше знакомы.
    Ответ написан
  • На каком игровой движке сделана игра Cossacks 3?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    У них самодельный движок, на сколько я знаю.
    Ответ написан
  • Как нарисовать обрамляющую линию вокруг располагающихся рядом фигур?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Медленный, но достаточно простой в реализации алгоритм.
    1. Создаёте список связанных шестиугольников одного цвета и выкидываете из него все шестиугольники без соседей другого цвета.
    2. Создаёте список вершин оставшихся многоугольников
    3. Создаёте пустую ломаную линию.
    4. Берёте один многоугольник из списка, ищете у него сторону с соседом другого цвета.
    5. Двигаетесь по часовой стрелке от этого ребра, выкидываете вершины из списка необработанных и складываете их в ломаную до тех пор, пока не наткнётесь на соседа такого же цвета.
    6. Переходите на соседа, следующее ребро по часовой стрелке от общего будет внешним. Повторяем 5-6 до тех пор, пока ломаная не замкнётся.
    7. Если в списке вершин ещё что-то осталось, ищем многоугольники с необработанными вершинами, обходим рёбра по часовой стрелке и создаём ломаные, если встречаются необработанные внешние рёбра.
    8. Если в итоге получилось несколько многоугольников, значит это многоугольник с дырками. Вершины внешнего контура будут отсортированы по часовой стрелке, а внутреннего - против часовой.

    Для рисования вам скорее всего понадобится сущность "многоугольник с дырками". В ней должен храниться отдельно большой внешний многоугольник и список многоугольников-дырок. Ломаную можно хранить как отсортированный список вершин. Если рассматривать шестиугольники как регулярную сетку и проиндексировать все вершины, то можно впоследствии достраивать контур при увеличении-уменьшении цветной области.
    Ответ написан
  • Книги по созданию игры типа doom 2016?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Самые современные приёмы придумывают программисты и академики, в книжках вы найдёте только устаревшую информацию. Начать можете с GPU Gems, многие из описанных там вещей только недавно начали появляться в общедоступных движках. Потом двигайтесь на сайт GDC и их канал YouTube, там частенько бывают технические доклады, где разработчики из студий рассказывают о трюках, которые они применяют в своих играх. Если хотите совсем свежак, который на современном железе еле работает, то вам на SIGGRAPH. Не все статьи оттуда можно применить на практике, но пищу для ума они вам предоставят.
    Ответ написан
  • Unreal Engine, или Unty3D?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Графика в обоих движках условно одинаковая, вы скорее упрётесь в свои художественные способности, чем в возможности движка. В Unreal тени поинтереснее, работа с лодами лучше, но на практике разница мизерная. По простоте и скорости разработки Unity лучше благодаря c# и Asset Storeа, в Unreal плюсы и пустой магазин, меньше сообщество, хуже с документацией. Системные требования зависят больше от прямоты рук разработчика, а не от движка, но потенциал у Unreal за счёт плюсов, конечно, больше. На простых играх разницы не заметите.

    Unreal имеет смысл использовать, если вы хорошо знаете плюсы и не боитесь выстрелить себе в ногу, или если вы делаете механику, которая требует глубокого погружения в кишки движка (порталы, воксели). Во всех остальных случаях на Unity игру будет сделать быстрее.
    Ответ написан