Рубрика «game development» - 38

image
Доброго времени суток. Как со мной бывает, как только я разобрался в каком-то сложном для себя вопросе, я сразу хочу рассказать всем решение. Поэтому решил написать серию из двух статей по такой интересной теме, как процедурная генерация. А конкретнее, я буду рассказывать про генерацию текстур планет. В этот раз я подготовился основательнее и постараюсь сделать материал качественнее, чем в моем предыдущем посте «Простая система событий в Unity» (кстати, спасибо всем за ответные посты). Прежде чем продолжить, хочу обратить ваше внимание на несколько моментов:
1)Этот генератор не претендует на реалистичность, и писал я его для того, чтобы сгенерировать уникальные текстуры для сотни маленьких шариков, которые занимают 10% экрана и к тому же прикрыты облаками.
2)Но это не значит, что я не буду рад критике. Напротив, одна из причин написания этого поста — получить советы по улучшению алгоритма, я с радостью улучшу его.
3)Чисто технический момент: я пишу на C# под Unity3d, так что думать о том, как выводить в изображение с приемлимой скоростью вам придется самим, для каждого языка и платформы свои способы.
Итак, план таков: в первой статье я рассказываю о процедурной генерации планет типа «терра», потом получаю шквал критики, ради которого все и делалось, улучшаю алгоритм, дорабатываю для других типов планет и пишу вторую часть.
Готовы? Поехали.Читать полностью »

Не успела наша команда разработчиков Марьяжа для Android протрезветь после празднования нового 2015 года, как в отзывах на Google Play начали сыпаться единицы за “тормоза”. Единицы сыпались от пользователей достаточно мощных устройств вроде Nexus 5, 6 и 7. Единственное, что их объединяло — это операционная система: Android 5 (Lollipop).
Читать полностью »

Почему я потратил четыре года на разработку игры своей мечты - 1

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

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

Но обо всем по порядку.
Читать полностью »

Содержание основного курса

Улучшение кода

Пришла пора веселья, давайте для начала смотреть размер текущего кода:

  • geometry.cpp+.h — 218 строк
  • model.cpp+.h — 139 строк
  • our_gl.cpp+.h — 102 строки
  • main.cpp — 66 строк

Итого 525 строк. Ровно то, что я обещал в самом начале курса. И заметьте, что отрисовкой мы занимаемся только в our_gl и main, а это всего 168 строк, и нигде мы не вызывали сторонних библиотек, вся отрисовка сделана нами с нуля!
Я напоминаю, что мой код нужен только для финального сравнения с вашим работающим кодом! По-хорошему, вы всё должны написать с нуля, если следуете этому циклу статей. Очень прошу, делайте самые безумные шейдеры и выкладывайте в комментарии картинки!!!

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 5 из 6 - 1
Читать полностью »

Содержание курса

Данная статья написана в тесном сотрудничестве (спасибо создателям XMPP) с haqreu, автором данного курса.Мы начали масштабный рефакторинг кода, направленный на достижение максимальной компактности и читаемости. Мы сознательно пошли на отказ от ряда возможных и даже очевидных оптимизаций для получения максимально доступного для понимания кода учебных примеров.
P. S haqreu буквально на днях выложит статью о шейдерах!
Читать полностью »

imageПривет! Мой сегодняшний пост — это руководство для начинающих программировать графику на Apple Metal API. Когда я начал разбираться с этой темой, то обнаружилось, что помимо документации от Apple и примеров от них же и смотреть особо нечего. Сегодня я расскажу о том, как создать простое приложение на Metal, которое отображает трехмерный куб с освещением. Затем мы нарисуем несколько кубов с использованием одной из главных фишек Metal — рендеринга в нескольких потоках. Заинтересовавшихся прошу под кат.
Читать полностью »

Игровой мир WebGL или Three.js vs Babylon.js - 1

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

Введение
1. Базовые элементы
2. Группировка
3. Движение
4. Частицы
5. Анимация — 1
6. Анимация — 2
7. Простой ландшафт
8. Статические коллизии
9. Динамические коллизии
10. Импорт моделей
11. Встраивание физических движков
12. Тени, туман
Читать полностью »

Как я игру про SEO писал - 1

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

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

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

Привет, дорогой читатель!

Сегодня мы продолжим изучение графического конвейера, и я расскажу о таких замечательных вещах, как Compute Shader и Geometry Shader на примере создания системы на 1000000+ частиц, которые в свою очередь являются не точками, а квадратами (billboard quads) и имеют свою текстуру. Другими словами, мы выведем 2000000+ текстурированных треугольников при FPS > 100 (на бюджетной видеокарте GeForce 550 Ti).

GPU Particles с использованием Compute и Geometry шейдеров - 1
Читать полностью »

Содержание курса

Сегодня мы заканчиваем с ликбезом по геометрии, в следующий раз будет веселье с шейдерами!
Чтобы не было совсем скучно, вот вам тонировка Гуро:
Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4б из 6 - 1
Я убрал текстуры, чтобы было виднее. Тонировка Гуро очень проста: добрый дяденька-моделёр дал нам нормальные вектора к каждой вершине объекта, они хранятся в строчках vn x y z файла .obj. Мы считаем интенсивность освещения для каждой вершины треугольника и просто интерполируем интенсивность внутри. Ровно как мы делали для глубины z или для текстурных координат uv!

Кстати, если бы дяденька-моделёр был не таким добрым, то мы могли бы посчитать нормали к вершине как среднее нормалей граней, прилегающих к этой вершине.

Текущий код, который сгенерировал эту картинку, находится здесь.

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


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