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

Всем привет! Это мой второй урок по SDL 2. Информацию я всё ещё беру отсюда.
Итак, приветствую вас на уроке

Main не резиновый

На прошлом уроке я всё красиво расположил в функции Main(), но для больших программ это не есть хорошо. Именно по-этому появилась возможность писать функции. Сейчас мы ею и воспользуемся.

Начнем написание кода с подключения SDL и объявления нескольких глобальных переменных.
Читать полностью »

Первым этапом разработки моей игры стала разработка RTS-движка. Я планирую написать серию постов о возникших задачах и их решениях в этом блоге. В этом посте я расскажу как организовал поведения юнитов.

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

День защиты детей от плохого кода - 1

Пост посвящен дню защиты детей. Любые совпадения – не совпадения.

В 10 лет у меня появились первый компьютер и диск с Visual Studio 6. С тех пор я придумываю себе задачки — автоматизировать дела, собрать какой-нибудь веб-сервис для трёх человек или написать игру, которую потом удалят из плеймаркета от старости. Конечно, я терял исходники и писал код, который стыдно показывать людям. И в 10 лет я бы точно не отказался получить из будущего архив со всеми косяками — чтобы никогда их не допускать.

Пару недель назад я спросил коллег из Яндекс.Денег, что бы они сейчас посоветовали ребенку, который хочет стать айтишником, а потом вспомнил кое-что о себе. Так появился этот текст. Предлагаю об этом поговорить.

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

История дизайна уровней Duke Nukem (с эскизами Левелорда) - 1

В преддверии 22-летия Duke Nukem вчера мы писали об истории игры. Сегодня поговорим о дизайне уровней официальных релизов основной серии игр Duke Nukem, не спин-офф и тем более не сторонних модификаций. По тексту тут и там разбросаны цитаты из нашего интервью с легендарным дизайнером Duke Nukem Ричардом Греем Levelord'ом, которое мы взяли у него специально для этого поста. Если вы заметили неточности или уверены, что мы пропустили что-то важное — пишите об этом в комментариях и мы добавим информацию в статью.
Читать полностью »

Разбираем бизнес-модель викингов - 1

Привет! Мы тут сейчас делаем игру про викингов, и пока я узнавал про них, вскрылась пара неочевидных деталей. Но пока важное:

  • Они дошли до Африки с набегами и поздними поселениями.
  • Есть норманнская теория основания Руси — мол, это наши предки. Она спорная, куда больше свидетельств о постоянном сотрудничестве народов (читай: почти все варяги = викинги, а Тор и Перун на самом деле почти тот же мужик).
  • Эти парни делали самые крутые корабли и самую крутую навигацию 7-10 веков, и уже знали явление поляризации света (вернее, не знали, но использовали).
  • Они же ввели прямую демократию, которая потом стала альтингом (и до сих пор работает в Исландии).
  • Очень много вещей в быту совпадает или похоже на то, что делали наши славянские предки.

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

Отправной точкой поисков было другое: парень из Новой Зеландии, упоровшийся по викингам, сделал крутую игру. Так вот, правильно ли он смог передать сеттинг?
Читать полностью »

[Первая часть]

Разобравшись с основами, в этой части статьи мы реализуем такие эффекты, как контуры объектов, bloom, SSAO, размытие, глубина резкости, пикселизация и другие.

Контуры

Шейдеры 3D-игр для начинающих: эффекты - 1

Создание контуров вокруг геометрии сцены придаёт игре уникальный внешний вид, напоминающий комиксы или мультфильмы.

Diffuse материала

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

uniform struct
  { vec4 diffuse
  ;
  } p3d_Material;

out vec4 fragColor;

void main() {
  vec3 diffuseColor = p3d_Material.diffuse.rgb;
  fragColor = vec4(diffuseColor, 1);
}

Здесь показан небольшой фрагментный шейдер, который рендерит диффузный цвет материала геометрии в текстуру буфера кадров. Эта текстура диффузного цвета из буфера кадров будет входящей текстурой для шейдера контуров.
Читать полностью »

Чуть больше месяца назад вышел релиз Svelte 3. Хороший момент для знакомства, — подумал я и пробежался по отличному туториалу, который еще и переведен на русский.

Для закрепления пройденного я сделал небольшой проект и делюсь результатами с вами. Это не one-more-todo-list, а игра, в которой нужно отстреливаться от черных квадратов.

image

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

Если живешь среди сумасшедших, надо и самому научиться быть безумным

Вы когда-нибудь пробовали «научиться быть безумным»? Нетривиальная задачка. Даже нормальной методики не найдешь, ибо каждый сходит с ума по-своему. Моя первая попытка: теория заговора. Теория не предполагает практики, а значит не придется много работать. Опять-таки, при любом раскладе никто не пострадает.

Как создавать теории заговора?

Создать теорию заговора относительно просто. Нужна идея, достаточно простая для того, чтобы её восприняли 90% населения. Она должна быть спорна, чтобы 5% населения могли объяснять 90% какие они идиоты. Наконец, нужны какие-либо исследования, которые эти 95% людей не понимают, но которые используются 90% как аргумент «люди поумнее нас доказали...».

Квантовые вычисления — отличная область для такого исследования. Можно накатать простую схему, но слово «квантовые» придаст веса результатам.

Объект исследования — игра, ибо объект должен простым и привычным молодежи. Кто у нас занимается квантовыми вычислениями и играми? Google.

Итак, еретическая теория: через 5 лет Пейдж и Грин решат, кто будет главным в Google, и сделают это с помощью игры. У каждого из них есть группа исследователей. Команда AlphaGo со своими боевыми нейросетями натянула соперников в Го. Оппоненты вынуждены были искать новые методы, и таки обнаружили инструмент тотального превосходства: квантовые вычисления.

Можно ли использовать Квантовые Вычисления для игр? Легко. Покажем для примера, что игра «охотник на лис» может быть «решена» за 6 ходов. Ради правдоподобности ограничимся 15 кубитами (онлайн-редактор quirk больше пятнадцати не эмулирует), ради простоты проигнорируем ограничения архитектуры процессора и коррекцию ошибок.
Читать полностью »

Как решить «Сапёра» (и сделать его лучше) - 1

«Сапёр» (Minesweeper) — это простая игра с простыми правилами, однако некоторые её конфигурации создают любопытные трудности. В этой статье мы создадим солвер «Сапёра» с увеличивающейся сложностью, и поразмышляем над тем, как меняется динамика игры при постепенном повышении уровня помощи. В конце мы разработаем новый вариант игры с гораздо более интересным геймплеем.

Локальные рассуждения: ноль соседних мин

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

Такое рассуждение совершенно локально: для принятия решения о следующем действии учитывается информация только одной клетки.

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

Что я могу посоветовать тем, кто хочет профессионально разрабатывать игры? Мне, после 25 лет работы в этой сфере, определённо, есть что сказать.

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


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