Эссе о разработке игр, мышлении и книгах

Пара слов о GitHub Сopilot

DALL-E: "Vrubel style painting of pair programming Robot + Human. An robot is writing code, a human is reviewing code".

DALL-E: "Vrubel style painting of pair programming Robot + Human. An robot is writing code, a human is reviewing code".

Последние несколько недель использовал GitHub Сopilot, благо для Emacs есть плагин. Поделюсь впечатлениями.

Для справки, я уже лет 15 осознанно не использовал умное автодополнение. Всё моё автодополнение — это DynamicAbbreviations, по сути — дополнение написанного слова на основе словаря из открытых исходников.

Причина отказа такая: используя «умное» автодополнение (например, подсказку аттрибутов/методов объекта) перестаёшь понимать проект. Начинаешь на автомате брать предлагаемые варианты методов/переменных, не разбираясь что они конкретно делают и есть ли альтернатинвые варианты.

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

С Copilot я, похоже, вернуcь к умному автодополнению, в его более правильном варианте.

Итак, давайте посмотрим чего умеет и не умеет Copilot.

Далее

Будущее контента в геймдеве

Улучшаем графику до реалистичной с помощью нейронных сетей.

Появилась новая работа по улучшению графики игр с помощью нейронных сетей. На этот раз на примере GTA V. В ролике можно посмотреть на полученный результат и на описание структуры сети.

Я уже в шутку писал об изменении pipeline арта. В этот раз сделаю более серьёзный прогноз.

Далее

Минидрама: Python, C, Rust, криптография и Gentoo

Новость с деталями.

  1. Часть кода популярной Python криптобиблиотеки переписали на Rust.
  2. Сломалось CI у кучи людей.
  3. Дополнительно сломалось чегой-то в пакетном менеджере Gentoo.
  4. Изменения незаметили, так как… ну кто следит за криптолибами? Их просто ставят.
  5. Все думали, что cryptography следует semantic versioning, оказалось, что нет :-D

В итоге:

  • Разработчики сказали, что откатывать Rust взад не будут — это более кошерный язык для криптографии, чем C.
  • Gentoo оказалась не так уж и поломана — зависимость оказалась ненужной, но осадочек остался.
  • Люди с CI поплакали, но донастроили что надо было донастроить, и вернулись к своим делам.

Соль драмы в том, Gentoo поддерживает часть архитектур, которые не умеют в Rust. Одновременно Gentoo сильно зависит от Python. В этот раз пуля пролетела мимо, но возникли опасения, что Rust будет всё активнее использоваться к инфраструктуре Python. и в какой-то момент станет необходимой зависимостью. Что в этом случае случится с поддержкой минорных архитектур не ясно.

Далее

Google стал Visionary Sponsor для Python

Новость в блоге PSF.

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

Цели, задачи, потребности корпорации планетарного масштаба принципиально отличаются от целей, задач и потребностей рядовых пользователей языка. Я даже не знаю как это оспорить можно. Я уже писал на тему целей Google при разработке Go в эссе о типизации в Python.

Своим текущим состоянием: идеологией, возможностями, распространённостью Python обязан в первую очередь рядовым пользователям, не Google.

В частности, одно из очевидных противоречий — вопрос гибкости и контролируемости кода.

Далее

Больше новостей о процедурной генерации

Примеры генерации 3D модели по запросу "A capybara made of voxels sitting in a field"

Примеры генерации 3D модели по запросу "A capybara made of voxels sitting in a field"

На этот раз Open AI рассказали о новой нейронке (на русском) а-ля GPT-3, но для изображений. Пример её работы можно видеть на заглавной картинке. Изображения сформированы для фразы «A capybara made of voxels sitting in a field» (капибара из вокселей, которая сидит в поле).

На странице с анонсом можно посмотреть другие примеры работ, включая разные способы изображения (3D рендер, изометрию, низкополигональные модели, etc).

Результаты, конечно, кривоваты. Но, надо учесть два нюанса:

  • Это первый подход к подобной архитектуре с подобными деньгами.
  • Это сеть общего назначения, не натасканная на геймдев.

А вот если бы её допилить, специализировать на фэнтези, да подключить к Сказке… Но у меня столько денег нет :-) А у кого-нибудь обязательно найдутся.

Постепенно вырисовывается новый пайплайн для арта:

  • нейронка для постановки задания;
  • нейронка для генерации контента;
  • нейронка для устранения неточностей на картинке;
  • нейронка для стилизации;
  • нейронка для вылизывания;
  • нейронка для выделения 3D меша;
  • нейронка для оптимизации меша;
  • нейронка для анимации;

Интеграция контента, позиционирование камер, цвет, свет, звук и прочее — тоже нейронки. Ну вы поняли :-D

Товарищи, которые научатся делать эти лопаты, сорвут большой куш.