Как стать автором
Обновить
-4
0
Влад Соловьев @waxtah

Разработчик, Художник

Отправить сообщение

Введение в GitHub Actions. Делаем пайплайн для деплоя Spring Boot проекта на VPS с помощью Docker

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 10K

В этой статье я расскажу как построить простой пайплайн для деплоя Spring Boot проекта на сервере используя GitHub Actions и Docker.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 4

Мир на геодезической сфере: алгоритмы игры Planet

Время на прочтение 6 мин
Количество просмотров 5.9K
Я уже больше года не писал статей с анализом процедурной генерации в играх. Сегодня мы изучим Planet — игру 2016 года с уютным дизайном, созданную одним из моих любимых разработчиков, Оскаром Сталбергом.


Другие скриншоты



Planet — наполовину технологическое демо, наполовину игра, в итоге создающая настоящую магию. Не так уж просто разобраться, как она работает, однако, к счастью, мне удалось узнать основные подробности из постов в Twitter и статей самого Оскара.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 3

Проблема N+1 и как её решить с помощью EntityGraph

Время на прочтение 6 мин
Количество просмотров 24K

Всем привет! В данной статье попробуем разобраться с проблемой N+1 (или может правильнее 1+N?) и как ее решить с помощью использования EntityGraph.

Проблема N+1 возникает, когда мы генерируем запрос на получение одной сущности из базы данных, но у данной сущности есть свои связанные сущности, которые мы тоже хотим получить и hibernate генерирует вначале один (1) запрос к базе данных, чтобы получить интересующую нас сущность, а потом N запросов, чтобы достать из базы данных связанные сущности. Данная проблема отражается отрицательно на производительности работы базы данных из-за большого числа обращений к ней.

Создадим проект и подключим следующие зависимости:

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 9

За 16 недель я собрал 16 синтезаторов по схемам найденным в интернете

Время на прочтение 12 мин
Количество просмотров 14K

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

Читать далее
Всего голосов 69: ↑67 и ↓2 +65
Комментарии 8

Введение в Traefik 2.0

Время на прочтение 13 мин
Количество просмотров 131K

Traefik — это обратный прокси-сервер с открытым исходным кодом, обеспечивающий простую работу с микросервисами и/или просто контейнерами с вашими приложениями.


Обратный прокси-сервер (reverse proxy, реверс-прокси) служит для ретрансляции запросов из внешней сети к каким-либо серверам/сервисам внутренней сети (например веб-сервера, БД или файловые хранилища) и позволяет:


  • обеспечить сокрытие структуры внутренней сети и подробностей о находящейся в ней сервисах;
  • осуществлять балансировку нагрузки (load balancing) между экземплярами одного и того же сервиса или серверами с одинаковыми задачами;
  • обеспечить зашифрованное (HTTPS) соединение между клиентом и любым сервисом, в таком случае SSL сессия создается между клиентом и прокси, а между прокси и сервисом во внутренней сети устанавливается незашифрованное HTTP соединение, если сервис поддерживает HTTPS то можно организовать зашифрованное соединение и во внутренней сети;
  • организовать контроль доступа к сервисам (аутентификацию клиента), а также установить файрвол (брандмауэр).

В статье будет описываться использование Traefik в Docker в качестве реверс-прокси для других контейнеров Docker, а также не контейнеризированных сервисов.


image

Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 31

Советы по разработке игр от создателя Civilization Сида Мейера

Время на прочтение 14 мин
Количество просмотров 31K

В своей книге «Сид Мейер: Жизнь в мире компьютерных игр» знаменитый разработчик рассказывает о ключевых моментах карьеры, много шутит и через всю книгу дает советы и лайфхаки по разработке игр. А в этой статье основные из них — перевод под катом.

Читать далее
Всего голосов 63: ↑63 и ↓0 +63
Комментарии 27

Недельный геймдев: #26 — 11 июля, 2021

Время на прочтение 5 мин
Количество просмотров 2.8K

На этой неделе: вышел Spine 4, Amazon анонсировала движок Open 3D Engine, Unity рассказала про новые фичи 2021, AMD обновили отдельные подключаемые модули Radeon ProRender, для Houdini вышел Modeler 2021.

Из интересностей: разбор управления в играх от третьего лица дизайн-директором Respawn Entertainment, видео-разбор .kkrieger, несколько полезных статей с 80lv и видео с GDC.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

UnnyWorld: постмортем

Время на прочтение 8 мин
Количество просмотров 6.3K
После закрытия нашей игры UnnyWorld многие разработчики знакомые просили написать постмортем по игре. Решил поделиться конкретными примерами, коих за время разработки накопилось приличное количество. Будут рассмотренные ошибки, которые мы допустили, постараюсь дать парочку полезных советов.


Всего голосов 18: ↑16 и ↓2 +14
Комментарии 12

Почему процессоры Skylake иногда работают в 2 раза медленнее

Время на прочтение 10 мин
Количество просмотров 58K
Мне сообщили, что на новых компьютерах некоторые регрессиионные тесты стали медленнее. Обычное дело, такое бывает. Неправильная конфигурация где-то в Windows или не самые оптимальные значения в BIOS. Но в этот раз нам никак не удавалось найти ту самую «сбитую» настройку. Поскольку изменение значительное: 9 против 19 секунд (на графике синий — это старое железо, а оранжевый — новое), то пришлось копать глубже.


Читать дальше →
Всего голосов 149: ↑149 и ↓0 +149
Комментарии 64

Пост о том, как я игру лепил, из пластилина

Время на прочтение 2 мин
Количество просмотров 13K
Всем доброго времени суток! Решил я поведать миру историю создания своей первой мобильной игры. Делал я ее по часу в день на протяжении почти полутора лет.

image

Читать дальше →
Всего голосов 43: ↑31 и ↓12 +19
Комментарии 18

Фотостудия для съёмок пластилиновой игры

Время на прочтение 3 мин
Количество просмотров 32K
Привет! В жизни почти каждого разработчика игр наступает момент, когда он отбивается от стаи, выкапывает себе нору и начинает в одиночку делать «лучшую в мире игру, не то что эти всякие». 2 года назад это случилось и со мной. Не обладая навыками художника, я решил замахнуться на stop-motion анимацию и делать всю графику из пластилина.

image
Читать дальше →
Всего голосов 130: ↑130 и ↓0 +130
Комментарии 97

Алгоритм генерации гирлянды для новогодней головоломки

Время на прочтение 4 мин
Количество просмотров 3.5K
image Чтобы занять себя как-то бессонными ночами, опять засел за написание игрушек под Android. Так как скоро новый год, то решил, что игрушка должна быть новогодней. Для меня неотъемлемой частью нового года и новогодней ёлки является гирлянда, так что решение идея пришла сама — буду делать головоломку — собери гирлянду. В процессе разработки, для меня было два интересных момента:

1. Генерация гирлянды.
2. Работа с платежами в Google Play.

Вот об этом я и расскажу подробнее ниже…
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 3

Как я получил 365K загрузок в App Store за две недели (и почему после этого ушёл из геймдева)

Время на прочтение 6 мин
Количество просмотров 37K


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

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

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

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

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

Мне не интересно повторять этот эксперимент, потому что я считаю эту бизнес-модель фиговой. Возможно, вам удастся меня переубедить.
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Комментарии 63

Структура и случайность простых чисел

Время на прочтение 22 мин
Количество просмотров 38K

Разбросаны ли простые числа по числовой оси подобно рассеянным ветром семенам? Разумеется нет: простота — это не вопрос случайности, а результат элементарной арифметики. Число является простым тогда и только тогда, когда ни одно меньшее положительное целое число кроме единицы не делит его нацело.

Но на этом история не заканчивается. Распределение простых чисел выглядит случайным, с неравномерными разрывами и скоплениями, которые выглядят довольно хаотично. Если и существует какая-то схема, то она непостижима. На самом деле, простые числа выглядят достаточно случайными, чтобы можно было сыграть с ними в кости. Создайте список последовательных простых чисел (допустим, начав с 11, 13, 17, 19,... ) и разделите их по модулю 7. Другими словами, разделите каждое простое число на 7 и сохраните только остаток. Результатом будет последовательность целых чисел из множества {1, 2, 3, 4, 5, 6}, которая выглядит почти как результат нескольких бросков правильной кости.

$\begin{align*}
 11 \bmod 7 & \rightarrow 4 \qquad 47 \bmod 7 \rightarrow 5 \\
 13 \bmod 7 & \rightarrow 6 \qquad 53 \bmod 7 \rightarrow 4 \\
 17 \bmod 7 & \rightarrow 3 \qquad 59 \bmod 7 \rightarrow 3 \\
 19 \bmod 7 & \rightarrow 5 \qquad 61 \bmod 7 \rightarrow 5 \\
 23 \bmod 7 & \rightarrow 2 \qquad 67 \bmod 7 \rightarrow 4 \\
 29 \bmod 7 & \rightarrow 1 \qquad 71 \bmod 7 \rightarrow 1 \\
 31 \bmod 7 & \rightarrow 3 \qquad 73 \bmod 7 \rightarrow 3 \\
 37 \bmod 7 & \rightarrow 2 \qquad 79 \bmod 7 \rightarrow 2 \\
 41 \bmod 7 & \rightarrow 6 \qquad 83 \bmod 7 \rightarrow 6 \\
 43 \bmod 7 & \rightarrow 1 \qquad 89 \bmod 7 \rightarrow 5 \\
 \end{align*}$

Читать дальше →
Всего голосов 91: ↑91 и ↓0 +91
Комментарии 41

Дизайн уровней для игр три в ряд

Время на прочтение 5 мин
Количество просмотров 41K


Три в ряд — один из самых популярных игровых жанров. Игр существует десятки тысяч, при этом в интернете довольно мало статей по дизайну уровней, а они — основная составляющая игры. Правим этот недостаток, размещая на Хабре свои мысли и опыт в виде тезисов, заметок по сути и по делу, с рассуждениями и картинками.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 8

Как создать качественную карту для метроидвании

Время на прочтение 12 мин
Количество просмотров 20K

Авторы Hollow Knight рассказывают о процессе построения сложного взаимосвязанного мира от набросков до готовой игры


image

Есть что-то удивительно приятное в исследовании сложных 2D-пространств игр, сделанных по модели Metroid и Castlevania. Такого чувства невозможно получить в других играх: чёткое осознание того, как части мира подогнаны друг к другу, умение распознать наличие скрытой комнаты, удовлетворение от получения новых способностей, позволяющих попасть на ранее недостижимые высоты. Качественная карта метроидвании заставляет игрока хотеть освоить каждый квадратный сантиметр и остаётся интересной, даже когда он проходит тем же маршрутом второй, и десятый, и двадцатый раз.

Так как же создать карту для метроидвании? Как создать взаимосвязанный мир, возвращаться назад в котором интересно, который даёт игроку свободу исследований, но при этом частично сохраняет за собой путь его развития? Есть ли секретная формула, тайное знание? Я задал эти вопросы создателям Hollow Knight, вдохновлённого Metroid фантастического приключения в антураже разлагающегося королевства Hallownest, которое напоминает мне анимационный фильм Дона Блута «Секрет НИМХ» (только вместо крыс здесь насекомые).

Мы поговорили о том, что важно для такой игры, и о том, почему сами авторы никогда не упоминают термин «метроидвания». Потом мы добрались до самого интересного: посмотрели наброски, схемы и рабочие дизайны мира Hollow Knight, от самого начала до финальной версии.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 4

Дизайн и математика игр-кликеров

Время на прочтение 25 мин
Количество просмотров 85K
image

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

Что такое инкрементная игра?


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

В сущности, такова общая структура «инкрементной» игры. Она кажется простой, даже примитивной, но в игровом процессе есть неожиданная глубина и привлекательность. Стили игры могут быть разными — от коммерчески успешных и казуальных Clicker Heroes и AdVenture Capitalist до более экспериментальных или хардкорных примеров, таких как Candy Box, Cookie Clicker и Sandcastle Builder.


Cookie Clicker, самое начало.

Что же самое важное в инкрементной игре? Хотя в этом жанре есть множество вариаций и экспериментов, фундаментальными аспектами дизайна являются:

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

Именно цикл накопления, реинвестиций и ускорения определяет основы жанра и отличает его от игр, в которых присутствует просто увеличивающийся счёт. Например, в примечательной Cookie Clicker игрок стремится к росту количества «печенек», которое изначально увеличивается нажатием на огромное печенье, а потом тратит печенье на покупку апгрейдов, позволяющих создавать ещё больше печенья.
Читать дальше →
Всего голосов 53: ↑53 и ↓0 +53
Комментарии 36

J-Bird

Время на прочтение 4 мин
Количество просмотров 15K
Весна навалилась на Крагуевац и нет покоя от котов и птиц. Птицы, скажете вы, при чем здесь птицы, и потянетесь к магической стреле. Стойте, я объясню…

Всего голосов 44: ↑37 и ↓7 +30
Комментарии 26

Изучение геймплейного цикла на примере раннеров

Время на прочтение 4 мин
Количество просмотров 11K
Три последних месяца мы в студии GILP работали над двумя разными играми в жанре endless runner: Upside Down и Zoic Adventures (условное название, обе игры ещё в процессе разработки). Хотя в них разная механика, обе построены на одном принципе: убеги как можно дальше, избегая препятствий.

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


Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 1

Разработка мобильной 2D-игры «Составь слова из слова»

Время на прочтение 40 мин
Количество просмотров 10K

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



Работа со словарями


Имея некоторый опыт работы с БД Oracle, решил что обработку словарей буду вести в ней (Oracle 11.2 XE). Накачал в интернете несколько словарей в виде текстовых файлов с разделителями и с помощью механизма External Table загрузил в БД. Из загруженных слов отобрал 700 существительных длиной 8-10 букв. Это как раз и будут те слова, из букв которых игроки будут вести составление. Далее необходимо для каждого из этих 700 слов подобрать набор слов, которые можно из него составить. Для этого нужно проиндексировать все слова, чтобы можно было делать поиск по вхождению букв.


Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 13

Информация

В рейтинге
5 079-й
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность