Hacker News Digest

19 августа 2025 г. в 22:41 • muffinman.io • ⭐ 343 • 💬 37

OriginalHN

#aseprite#github#oklch#hsluv

How to Draw a Space Invader

Как нарисовать инопланетянина из Space Invaders

Сначала я делал 3D-рендерер Rayven, но решил быстрее получить результат и выбрал простую тему — инопланетян. Они узнаваемы, легко строятся из кубиков и хорошо смотрятся в серии.

Для генератора я нарисовал 38 вариантов в Aseprite (15×15 пикселей). Вручную заметил: тела почти все похожи на низкополигональные фигуры. Это подсказало алгоритм.

Алгоритм генерации

  1. Сетка 15×15 остаётся на экране.
  2. Тело делаем векторным, потом пикселизируем.
  3. Симметрия по вертикали: строим левую половину и зеркалим.
  4. Центр тела смещаем вверх, чтобы снизу осталось место для щупалец.
  5. Верхняя и нижняя точки выбираем случайно на оси симметрии.
  6. Слева добавляем 1-5 случайных точек (раньше 2-3 и только выпуклые, но расширил правила).
  7. Зеркалим точки вправо и замыкаем полигон.
  8. Перекрывающиеся линии при пикселизации исчезают, сохраняя узнаваемость.

Всё остальное — случайные ограничения и мелкие детали, код на GitHub.