Шутеечка.Ru

Shuteechka.Ru

Самые популярные комментарии пользователей Рунета: сайт о юморе, психологии, бизнесе, политике, кино, автомобилях, играх и многих других популярных темах

Поиск по тэгу разработка игр

    image

    Алиасинг (aliasing) — это, возможно, наиболее фундаментальный и самый широко обсуждаемый артефакт 3D-рендеринга всех времён. Однако в игровом сообществе его часто недопонимают. В этой статье я подробно расскажу о теме сглаживания (антиалиасинга, anti-aliasing, AA) в реальном времени, особенно о том, что касается игр, и в то же время буду излагать всё достаточно простым языком.

    Различные типы алиасинга и сглаживания, обсуждаемые в статье, будут в основном иллюстрироваться при помощи скриншотов из OpenGL-программы, предназначенной для демонстрации вариаций артефактов алиасинга.

    Эту программу можно скачать здесь.

    Прежде чем начать, позвольте мне сказать несколько слов о производительности: поскольку она является самым важным аспектом графики реального времени, мы в основном сосредоточимся на том, почему и как сегодня реализуется антиалиасинг. Я упомяну характеристики производительности, но строгая оценка всех представленных в этой статье способов антиалиасинга во разнообразных случаях реального использования будет слишком широкой темой для поста.
    PapaBubaDiop | 2017-12-06 11:53:00

    Хороший обзор. Одно замечание — существуют не только ортогональные 2Д решетки, на которые дискретизируются линии и полигоны. Есть устройства с вокселами и, например, гексогональными пикселами.

    Кстати, автор первой ссылки — Александр Решетов (кличка Решето) — выпускник МФТИ, мы с ним в Интел в 1996-2000 году 3Д библиотеку лабали.

    Лайков : 6
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 10.12.2017 08:00

    Читать далее

    image


    Как только, фрагментный шейдер обработал фрагмент, выполняется так называемый тест трафарета, который, как и тест глубины, может отбрасывать фрагменты. Затем оставшиеся фрагменты переходят к тесту глубины, который, может отбросить еще больше фрагментов. Трафаретный тест основан на содержимом еще одного буфера, называемого трафаретным буфером. Мы можем обновлять его во время рендеринга для достижения интересных эффектов.


    Дата публикации: 09.12.2017 13:35

    Читать далее

    image


    Когда время заканчивается, разработчики выдохлись, а загадочные проблемы продолжают появляться, иногда требуются нестандартные решения. Когда вам любой ценой нужно завершить проект, то на кону стоит всё… В паре классических статей, изначально опубликованных в дружественном журнале Game Developer magazine, мы изучили несколько потрясающих примеров таких решений из реальной жизни. Эти нестареющие шедевры можно прочитать здесь (перевод на Хабре) и здесь.

    Gamasutra ещё раз решила рассмотреть эту тему. Мы собрали со всей игровой индустрии необычные решения необычных проблем. Те, кто поделился с нами этими решениями, могут и не гордиться такими «исправлениями», но на самом деле гордиться им стоит. Им удалось выпустить игру, они ничего не испортили и, что важнее всего, никто ничего не заметил. По крайней мере, до этой статьи.

    Насладитесь изобретательностью, подивитесь бесстрашию, научитесь на ошибках своих предшественников, и самое важное — выпускайте работающие игры, и тоже в срок.
    Atakua | 2017-11-30 15:59:00

    Моя любимая история геймдева про Блицкриг 2, уж не знаю, правда или нет. Читал когда-то давно в каком-то бумажном журнале, недавно нашёл в сети.


    Ну, сделали и мы в Блицкриге эту самую ракету. Как и немцы, сделали ее уже ближе к концу проекта и соорудили на базе объекта "самолет". Но программисты несколько схалтурили и не пооткручивали у бывшего самолета подозрительную для баллистической ракеты функциональность. Оказалость, что если во время полета к цели начинал идти дождь или снег, то во-первых ракета говорила человеческим голосом "Fliege zuruck"(нем. лечу назад), а во-вторых разворачивалась и летела обратно на базу. Фигли там, погода то нелетная.

    А еще был у нас замечательный юнит — отряд спецназовцев. Войска у нас могут получать в ходе миссии опыт, а за опыт дают всякие интересные способности. Так вот, донельзя прокачанные спецназовцы получали возможность маскироваться под вражескую пехоту. Достаточно было просто кликнуть в отряд неприятельских солдатиков, и наши бойцы переодевались в их форму. Можно было безнаказанно разгуливать по вражеской базе. Ну, до первого выстрела, конечно.

    Но, беда в том, что в Блицкриге кроме собственно пехоты еще были всякие антуражные юниты, типа коров, свиней и собак. Выяснилось, что спецназ вовсе не чурается переодевания в бобиков и хавроний. Если учесть, что механизм этого самого переодевания несколько глючил и часть отряда можно было нарядить в одну форму, часть в другую, то можно было создавать совершенно безумные подразделения. Например, отряд из собак, свиней и панцергренадеров. Учитывая, что отряду можно отдавать всякие приказы типа "маршировать", "ползти" и т.д., то игроку предоставлялась уникальная возможность полюбоваться марширующими свиньями. Получалось это у них, впрочем, паршиво, потому что скелет свиньи не соответствует скелету пехотинца и выглядит это как отряд ездящих не попе хрюшек. А еще этот цирк-шапито можо было запихать в окоп. Сидят, значит, свиньи с собаками в окопе и периодически из него выглядывают.

    И вот моё самое любимое:


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

    Лайков : 31
    Ссылка на ветку ответов к данному комментарию.

    JediPhilosopher | 2017-11-30 13:35:00

    Классика с баша:

    Ошибка: робот погибает при попадании в него гранаты (именно от попадания, а не от взрыва) Д — дизайнер, П — программист.
    Д: программисты всё сломали! почему так получается?!
    П: естественно так получается! потому, что у гранаты масса 100 кг! зачем вы это сделали?
    Д: да?! а чтобы граната в воде тонула!
    П: а почему она с нормальной массой не тонет?
    Д: а потому что у воды плотность большая! (прим.: больше, чем у ртути)
    П: а почему плотность такая большая?!
    Д: а чтобы ящики деревянные плавали!
    П: а почему они иначе не плавают?!
    Д: а потому что у них масса 50 кг!
    П: а зачем такая масса?!
    Д: а иначе они некрасиво разваливаются!

    Лайков : 19
    Ссылка на ветку ответов к данному комментарию.

    xakepmega | 2017-11-30 13:11:00

    image
    Поезд в fallout 3 на самом деле не поезд, а шляпа NPC

    Лайков : 17
    Ссылка на ветку ответов к данному комментарию.

    NYMEZIDE | 2017-11-30 11:17:00

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


    Когда закостылил — и тебя повысили! *deal with it*

    Лайков : 14
    Ссылка на ветку ответов к данному комментарию.

    impwx | 2017-11-30 14:49:00

    Мы «притворились», что игрок при яростном нажатии на кнопки случайно включал функцию перемотки.
    Когда игра приближается к пределу памяти перемотки, мы просто ставим игру на паузу, выводим на экран огромный мигающий значок «низкого заряда батареи» и изящно выкидываем игрока в меню выбора уровня.
    Поразительно некрасивая история. Вместо исправления бага пользователя мало того, что выкидывают из игры, так еще и делают вид что это он сам виноват.

    Почему на воспроизведение бага влияет количество повторов? После обратной перемотки память, что, не освобождается?

    Лайков : 13
    Ссылка на ветку ответов к данному комментарию.

    SinsI | 2017-11-30 14:13:00

    нам нужно было хранить всю информацию каждого активного объекта уровня в течение всей длительности перематываемой шкалы времени. Каждый новый игрок, враг, пуля, взрыв, платформа, куча мусора и оторванная часть тела отъедала память перемотки,

    Просто ужас!
    Они не думали сохранять только действия игрока?
    Все враги, пули, взрывы и кучи мусора прекрасно восстанавливаются из базового seed'a…

    Лайков : 7
    Ссылка на ветку ответов к данному комментарию.

    hdfan2 | 2017-11-30 15:36:00

    Спасибо! И как тут не вспомнить классику жанра.

    Лайков : 6
    Ссылка на ветку ответов к данному комментарию.

    Milfgard | 2017-11-30 13:44:00

    Это прекрасно, спасибо.

    Кто-рассказывал, что игрок в шутере вырос как часть дробовика. То есть основной объект — пушка, а всё остально нарастало вокруг.

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    T-362 | 2017-11-30 16:07:00

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


    Еще — не совсем из разработки но близко, в первом старктафте кастомные скриптованные карты (UMS) защищались от игровых читов порой очень весело и неординарно — от открытия карты например, на холмике стоял юнит а под холмиком осадной танк, при открытие карты у танка менялась область обзора — он убивал юнит на холме — срабатывал триггер на поражение. А таймеры реализовывались пролетом юнита из точки А в точку Б.

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 04.12.2017 08:00

    Читать далее

    Черная пятница, черная пятница… надоело. Объявляю свой личный Белый понедельник — за пару ночей написал небольшую игру и выкладываю ее код на всеобщее пользование, со скидкой 90%. Зачем мне это надо? Ну я вижу следующие плюсы — тот самый открытый код для поиска работы (да да, сейчас я нахожусь в активном поиске), почитать в комментариях о своих косяках, наконец то сменить статус на Хабре.

    slonopotamus | 2017-12-02 23:49:00

    > Синглтоны

    Есть мнение что с текущей архитектурой Unity это неизбежное зло. Потому что нет никакого контекста с временем жизни «сцена» и простым доступом за O(1). В результате либо вы на каждый чих будете искать нужный объект через FindObjectOfType (что медленно) либо заводите статическую переменную и запоминаете там на него ссылку.

    А чтобы добавить жести, у вас нет никаких механизмов задания порядка инициализации этих «важных» объектов. Поэтому либо их приходится создавать программно on-demand (как делаете вы в Singleton.cs) и в результате терять возможность их настроить на сцене (поэтому вам пришлось городить огород вокруг редактирования WaveManager), либо они ставятся на сцену но тогда в процессе инициализации есть риск что с ними начнут пытаться работать до вызова Start/Awake (что у вас потенциально возможно в ObjectPool.cs). И так и так плохо, а сделать хорошо нечем.

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 03.12.2017 13:35

    Читать далее

    image

    Создатель Papers, Please Лукас Поуп работает над новым трёхмерным проектом Return of the Obra Dinn, в котором пытается с помощью эффекта дизеринга воссоздать в игре ощущение старинной книги.

    Для начала краткое объяснение: Obra Dinn выполняет внутренний рендеринг всего в 8-битной палитре в градациях серого, а затем на этапе постобработки преобразует конечные выходные данные в 1-битные значения. Преобразование из 8-битного в 1-битный цвет выполняется сравнением каждого пикселя исходного изображения с соответствующей точкой в тайловом паттерне дизеринга. Если значение пикселя изображения больше значения точки паттерна дизеринга, то выходному биту присваивается значение 1, в противном случае оно равно 0. Выходные данные упрощаются до 1-битных значений, а глаз зрителя объединяет пиксели, аппроксимируя из них больше битов.
    hdfan2 | 2017-12-02 14:46:00

    По-моему, дизеринг и близко не подходит для имитации иллюстраций из старых книг. Если я правильно понял, имелось в виду нечто вроде:
    image
    Там совершенно другой тип искажения. С дизерингом ничего общего не имеет.

    Лайков : 4
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 03.12.2017 13:35

    Читать далее

    image


    Правильно настроить поведение камеры в классическом 2D-платформере не так просто, как может казаться.

    Самый простой подход — жёстко привязать камеру к персонажу игрока, чтобы он всегда находился в центре экрана. Это может сойти для прототипов, но такая камера обладает недостатками, которые сильно раздражают игроков.

    Например, если камера сдвигается вверх при каждом прыжке персонажа, то это запросто может вызвать тошноту. Кроме того, при мгновенном разгоне и остановке персонажа камера может резко дёргаться.

    В нашей новой игре Tiny Thor мы экспериментировали с различными вариантами. Я хочу рассказать о том, на каких техниках мы в результате остановились.

    Дата публикации: 30.11.2017 08:00

    Читать далее

    image


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

    К сожалению, эта простота имеет свою цену: низкую производительность. Несмотря на то, что существует множество способов оптимизации и параллелизации трассировщиков лучей, они всё равно остаются слишком затратными с точки зрения вычислений для выполнения в реальном времени; и хотя оборудование продолжает развиваться и становится быстрее с каждым годом, в некоторых областях применения необходимы красивые, но в сотни раз быстрее создаваемые изображения уже сегодня. Из всех этих областей применения самыми требовательными являются игры: мы ожидаем рендеринга отличной картинки с частотой не менее 60 кадров в секунду. Трассировщики лучей просто с этим не справятся.

    Тогда как это удаётся играм?

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

    Дата публикации: 26.11.2017 08:05

    Читать далее



    Я не стал успешным разработчиком игр. Моя самая популярная игра Frantic Architect достигла всего 410 678 бесплатных установок, прежде чем была удалена из App Store; она ни в какое сравнение не идёт с Flappy Bird или 2048.

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

    Вместо этого я бросил её.

    Прошло уже полтора года после выхода Frantic Architect. Технологии развиваются быстро и я не тратил много времени на переосмысление заброшенных проектов. Но изучая сегодня App Store, я вижу там разработчиков казуальных мобильных игр, достигших успеха с той же стратегией, которую использовал я тогда. Сомневаюсь, что она ещё долго будет работать, но пока это так, и при этом она очень проста (если не примитивна).

    Вам даже не нужна пара лет опыта программирования и дизайна игр, которые у меня были. Если ваша цель — быстрая разработка мобильного приложения, вас не волнует её тип, и вам нужен надёжный способ быстрого получения кучи пользователей без траты миллионов на рекламу, то вам подходит ниша казуальных мобильных игр.

    Мне не интересно повторять этот эксперимент, потому что я считаю эту бизнес-модель фиговой. Возможно, вам удастся меня переубедить.

    Epsiloncool | 2017-11-23 20:31:00

    Начинать делать игры ради денег — это пустое. Не стоит даже начинать. То же самое относится к любым другим творческим делам.

    Именно когда ты делаешь что-то ради любви и удовольствия, ты вырастаешь до такого уровня, когда от твоего творчества начинают пищать все окружающие. И тогда фраза «с трудом зарабатывающими деньги из-за большой конкуренции» выглядит по меньшей мере глупо.

    Лайков : 5
    Ссылка на ветку ответов к данному комментарию.

    Lamaster | 2017-11-23 11:51:00

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

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 24.11.2017 19:10

    Читать далее

    image


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

    В этой работе мы сосредоточимся не на скорости, а на чётком объяснении концепций. Код примеров написан наиболее понятным образом, который не обязательно является самым эффективным для реализации алгоритмов. Есть множество способов реализации, я выбрал тот, который проще всего понять.

    «Конечным результатом» этой работы будут два завершённых, полностью рабочих рендереров: трассировщик лучей и растеризатор. Хотя в них используются очень отличающиеся подходы, при рендеринге простой сцены они дают схожие результаты:


    neochapay | 2017-11-20 13:18:00

    Старый добрый хабр! Годнота прям годнетская!

    Лайков : 6
    Ссылка на ветку ответов к данному комментарию.

    samodum | 2017-11-20 13:17:00

    Спасибо, отличная статья!
    Я почти всегда при изучении нового языка пробую писать трассировщик лучей, т.к. здесь можно обкатать почти все элементы, конструкции языка, в т.ч. и многопоточность.
    У меня такой вопрос по CSG (constructive solid geometry). Пусть на приведённой выше картинке шар А у нас синий, а шар B — красный. Если мы вычитаем из шара B шар A, то какой цвет ставить в место этой разницы — синий вычтенного шара A или красный от шара B?
    Как будет правильно?

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    sshmakov | 2017-11-20 13:56:00

    В свое время хорошо зашла книга Роджерса "Алгоритмические основы машинной графики". Там же есть переиздание.

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    zabbius | 2017-11-20 14:48:00

    Спасибо, вспомнил детство, нам такое в школе преподавали, правда писали тогда под дос на чистом С =)

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    haqreu | 2017-11-20 23:46:00

    Спасибо за большую работу, и в частности за перевод формул в латех. Обратите, пожалуйста, внимание, что формулы типа sin в математических текстах набираются прямым шрифтом; размер скобок тоже важен. Сравните:

    \alpha2 = arcsin({sin(60) \over 1.33}) = 40.628^\circ


    \alpha_2 = \arcsin\left(\frac{\sin(60^\circ)}{1.33}\right) = 40.628^\circ

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 24.11.2017 08:15

    Читать далее

    Создание графических ресурсов: рекомендации




    Как художник VR и AR, я заметил две тенденции. Во-первых, постоянно появляются новые инструменты и практики, которые позволяют повысить качество наших работ. Но в то же время возвращаются техники и навыки конца 90-х и начала 2000-х. Они полностью применимы к виртуальной реальности, потому что вычислительные ресурсы в VR ограничены. И если вы только начинаете свой путь, то вам стоит рассмотреть разнообразные подходы. Итак, если вы художник и недавно занялись VR, то вот некоторые из моих самых любимых советов по созданию качественных графических ресурсов.

    Дата публикации: 18.11.2017 08:00

    Читать далее


Обратная связь

© 2017 Шутеечка точка Ru

Популярный коммент за день

okeeeeeeey | 10.12.2017

Боюсь, у них в команде РАК...

Лайков: 614
Перейти к новости в блоге....

Популярные тэги

пикабу кг ютуб youtube видео игры фишки.net гифки текст кино

Популярные публикации за неделю

Видео-звонки в видеоконференцию Zoom с веб страниц - пост с сайта Хабрахабр: Перейти...
HAProxy как LoadBalanсer для RDP фермы. Надежное решение за 0$ - пост с сайта Хабрахабр: Перейти...
Дайджест свежих материалов из мира фронтенда за последнюю неделю №280 (11 — 17 сентября 2017) - пост с сайта Хабрахабр: Перейти...
Как аддитивные технологии меняют мир моды - пост с сайта Geektimes: Перейти...
Lenovo, Microsoft и RRC запускают проект лизинга ноутбуков ThinkPad - пост с сайта Geektimes: Перейти...


Навигация