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

Опыт использования Julia

Логотип Julia

Из-за непрекращающегося бардака в мире решил отвлечься от стресса и в итоге три недели учился кодить на Julia — портировал с Python один из своих экспериментальных проектов.

Я уже писал про впечатления от документации Julia — «теорию», а сейчас, так сказать, будет «практика».

Далее

Композиция vs классификация

Эволюция организации информации.

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

Вопрос не так прост как кажется.

Исторически человечество сильно клонится к классификации. Начиная с ранних лет мы учим детей что классификация — это единственный основной способ организации информации — на неё опирается большинство учебников.

В итоге почти все взрослые люди имеют «урезанную» модель мира и не могут, например, в изобретательство.

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

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

Далее

Ресурсная модель игры: ресурсы

заг-заг (c) ~~World of~~ Warcraft.

заг-заг (c) World of Warcraft.

Постепенно буду развить идею представления игры как машины преобразования ресурсов.

Первую попытку описать игру с ресурсной точки зрения я сделал на Хабре в посте время, деньги и фан в ММО, после чего немного расширил её при описания следующего фронтира геймдизайна.

Теперь пора потихоньку вдаваться в детали. Начну, как видно из названия, с самих ресурсов.

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

Воспринимайте этот текст как интересное интеллектуальное упражнение. Агитировать за использование ресурсной модели в реальных проектах я пока не готов.

Далее

Гены, мемы и мемплексы

Иллюстрация засилья мемов в голове

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

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

Мемплекс это и есть сложносоставное культурное явление. Это слово буду использовать и дальше, так как оно красивое и короткое.

Начну издалека — с пары оговорок и биологии, как наиболее изученной области проявления эволюции. Потом по аналогии рассмотрим элементарные информационные конструкции — мемы. Потом мемплексы.

Далее

Модная типизация в Python

Разработчики пришивают типы к Python.

Разработчики пришивают типы к Python.

Раз в несколько лет я нахожу время, чтобы покопаться в наработках сообщества по «продвинутым» проверкам типов. Благо у меня под рукой есть взрослый, большой и нетривиальный проект, на котором можно безбоязненно ставить эксперименты.

Не могу сказать что я разделяю оптимизм по поводу продвинутой типизации в Python. Наоборот, считаю, что это как попытка пришить змее ноги — забавно, но вряд ли удобно. Но раз куча людей тратит на это время, надо быть в курсе.

В этот раз я:

  • Посмотрел что из себя представляет mypy и чем может быть полезно (мало чем).
  • Посмотрел чем можно автоматически сгенерировать аннотации типов (ничего рабочего нет).
  • Подумал о том, как правильно использовать проверку типов в Python, раз их так форсят.
  • Нашёл библиотеку, реализующую идеологически верный подход.

Рассказывать буду тезисно, без глубоких обоснований, так как делать нормального качества обоснования для таких холиварных вопросов слишком долго, а я уже дней 5 на копание в этом потратил.

Большая часть поста не про mypy, а про философию проверки типов и будущее Python. Поэтому должно быть интересно, даже если сам mypy вас не интересует.

Далее