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

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

    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 версию, либо качаете нужную графику при первом запуске. Для айпадов-андроидов точно так же.
    Ответ написан
    2 комментария
  • Сколько спрайтов персонажа в играх?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    На GDC есть хороший доклад на эту тему: Making Fluid and Powerful Animations For Skullgirls.
    Ответ написан
    Комментировать
  • Где делятся знаниями гиганты игровой индустрии?

    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 игру будет сделать быстрее.
    Ответ написан
    Комментировать
  • Можно ли снять видео уроки по Unity 5 без разрешения автора программы?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Можно, это законом не запрещено. Можете даже деньги на этом зарабатывать. Нельзя создавать впечатление, будто это вы разработчик Unity и это ваш продукт, а записывать видео работы с программой можно.
    Ответ написан
    6 комментариев
  • Можно ли делать ОБТ для не совсем готовой игры на Google Play?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    На мобилках обычно делают не бета-тест, а soft launch. Берёте своё приложение, пакуете, отправляете в магазин, и запускаете только в России или какой-нибудь Бразилии. Потом наливаете немного трафика и собираете статистику. Частенько приложение запускают от одноразового аккаунта с другим названием, иконкой и графикой, чтобы не порочить имя раньше времени. Также имеет смысл добавить большую кнопку "ОБРАТНАЯ СВЯЗЬ", но и это может не помочь, надёжнее всего слать логи и статистику, и анализировать их.
    Ответ написан
    Комментировать
  • Как организовать движение в сторону курсора в Unity3d?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    С помощью Camera.ScreenPointToRay находите луч от камеры по направлению клика. Потом находите точку на земле с помощью Physics.Raycast. Далее берёте вектор направления в эту точку:
    Vector3 toPoint = raycastHit.point - transform.position;

    Чтобы найти вращение берёте Quaternion.LookRotation и передаёте в него toPoint. Имейте в виду, что этот вектор может выходить за плоскость XZ, поэтому перед использованием его нужно спроецировать на плоскость и нормализовать.
    toPoint.y = 0;
    toPoint.Normalize();

    Если вектор был близок по направлению к оси Y, то после проецирования он может оказаться равен нулю. Quaternion.LookRotation будет на это ругаться, поэтому лучше вставить проверку toPoint == Vector3.zero.
    Ответ написан
    Комментировать