Рубрика «разработка игр» - 86

Привет! Представляю вашему вниманию перевод статьи «Dynamic Local Exposure» автора John Chapman.

image

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

Low/High Dynamic Range

В старые добрые времена (1990-е) игры рендерились непосредственно в отображаемом LDR (узкий динамический диапазон) формате (гамма пространство, 8 бит). Это было просто и дешево, но, с другой стороны, значительно мешало созданию действительно фотореалистичной картинки.

В настоящее время, особенно с появлением PBR (physically-based rendering), игры рендерятся с гигантским динамическим диапазоном в линейном пространстве с более высокой точностью. С таким движением к фотореализму приходит реальная проблема: как мы можем отобразить HDR изображение в LDR?
Читать полностью »

Вместо предисловия

В моей недавней статье Lazarus — пишем компонент для анимации спрайтов я описал процесс создания простого компонента TImageFragment, позволяющего отображать заданный фрагмент изображения.

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

При таком подходе отдельные кадры анимации в разных проекциях размещаются на одном изображении, а компонент для отображения спрайта показывает только один выбранный фрагмент этого изображения, используя свойства OffsetX и OffsetY (смещение левого верхнего угла фрагмента изображения по горизонтали и по вертикали).

Множество таких готовых изображений можно найти в Сети — например, вот на этом сайте.Читать полностью »

Продолжаем разговор про 3Д шутер за выходные. Если что, то напоминаю, что это вторая половина:

Как я и говорил, я всеми силами поддерживаю желание в студентах делать что-то своими руками. В частности, когда я читаю курс лекций по введению в программирование, то в качестве практических занятий я оставляю им практически полную свободу. Ограничений только два: язык программирования (С++) и тема проекта, это должна быть видеоигра. Вот пример одной из сотен игр, которые сделали мои студенты-первокурсники:

К сожалению, большинство студентов выбирает простые игры типа 2Д платформеров. Я пишу эту статью для того, чтобы показать, что создание иллюзии трёхмерного мира ничуть не сложнее клонирования марио броз.
Читать полностью »

Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. Я же целюсь совсем в другое место: я использую огромную вычислительную мощность современных компьютеров для того, чтобы студенты могли создавать забавные проекты за несколько дней, не погрязая в дебрях оптимизации. Я специально пишу медленный код, так как он существенно короче и просто понятнее. Кармак пишет 0x5f3759df, я же пишу 1/sqrt(x). Мы преследуем разные цели.

Я убеждён, что хороший программист получается только из того, кто кодит дома в своё удовольствие, а не только просиживает штаны на парах в университете. В нашем университете программистов учат на бесконечной череде всяких библиотечных каталогов и прочей скукоте. Брр. Моя цель — показать примеры проектов, которые интересно программировать. Это замкнутый круг: если интересно делать проект, то человек проводит над ним немало времени, набирается опыта, и видит вокруг ещё больше интересного (оно же стало доступнее!), и снова погружается в новый проект. Это называется проектное обучение, вокруг сплошной профит.

Простыня получилась длинная, поэтому я разбил текст на две части:

Выполнение кода из моего репозитория выглядит вот так:

Это не законченная игра, но только заготовка для студентов. Пример законченной игры, написанной двумя первокурсниками, смотрите во второй части.
Читать полностью »

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

Дайджест интересных материалов для мобильного разработчика #285 (4 — 10 февраля) - 1Читать полностью »

Недавно я и Антон Ендресяк начали второй сезон подкаста об интеллектуальной собственности «Копикаст», и в новом выпуске обсудили вопрос о правовой охране настольной игры как объекта интеллектуальной собственности. По ходу дела мы развенчали миф о невозможности патентования настольных игр в России. Перескажу кое-что из нашего разговора и немного дополню.

Патент на настольную игру в России - 1

Читать полностью »

Помните резкий пик разработки и выпуска MOBA игр с момента выхода Dota 2, сколько было проектов? Сколько подобных игр делали в подобном жанре?

Тысячи

Кто дожил до настоящего времени?

единицы

На гребне волны, или «я хочу в мейнстрим» — а стоит ли? - 1

Наблюдаете за актуальностью роялей? Какой огромный пик начался с PUBG и Fortnite, сейчас каждый хочет сделать свою королевскую битву. Сейчас это нужно игрокам, на это есть спрос.

А нужно ли это нам, разработчикам?
Давайте разбираться
Читать полностью »

Вместо предисловия

В одесской школе ученики 8-го класса на уроках информатики используют бесплатную кроссплатформенную среду разработки Lazarus (официальный сайт: www.lazarus-ide.org), внешне и внутренне очень напоминающую любимый многими Delphi, использующую версию Object Pascal под названием Free Pascal и в действительности сильно упрощающую процесс вхождения в программирование.

Но детям неинтересно писать программу для вычисления силы тяжести по непонятной им пока формуле F=mg. Практически все дети, которых я пытался учить программированию, с первого занятия хотят написать игру. К счастью, Lazarus прекрасно подходит и для написания несложных игр.

Правда, для создания анимированных спрайтов мне понадобился компонент, отображающий произвольный фрагмент изображения (на котором изображены несколько разных проекций одного и того же персонажа в разных фазах движения), а такого компонента в стандартной поставке нет. Написать его самому оказалось совсем несложно, и об этой технологии я и хочу рассказать в этой статье.Читать полностью »

Как написано в недавних постах блога, я боролся за то, чтобы получить в своей игре Dragons Abound нужную детализацию береговых линий. Моё разочарование возникло во время реализации барьерных островов. Чтобы создать как можно более узкий остров, я делал их шириной в одну локацию — на рисунке ниже каждая локация является треугольником Делоне:

Снова о диаграммах Вороного - 1

Это было довольно неприятно — и из-за того, что остров оказался очень изломанным, и потому, что размер деталей был слишком большим. Казалось, что при сильном увеличении количества треугольников Делоне (то есть при сильном уменьшении их размеров) эта проблема решится — но нужная мне плотность треугольников приводила к сбою браузера.
Читать полностью »

EvE online — увлекательная игра. Это одна из немногих ММО, в которых есть только один «сервер» для входа, что означает, что все играют в одном и том же логическом мире. У нее также был захватывающий набор событий, которые произошли внутри игры, и также она остается очень визуально привлекательной игрой:

Здесь также находится обширная карта мира, на которой могут разместиться все эти игроки. На своем пике у EvE было 63 000 игроков онлайн в одном мире с 500 000 оформленных платных подписок на пике популярности, и, хотя с каждым годом это число становится все меньше, мир остается невероятно большим. Это означает, что переход из одной стороны к другой — это значительное количество времени (а также риск из-за зависимости игрока от фракции).
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js