Лисп в изгнании
230 subscribers
156 photos
21 videos
5 files
233 links
Авторский канал на околоайтишную тематику.

По всем вопросам @awkravchuk
Download Telegram
#лытдыбр #common_lisp

Отправил в библиотеку cl-tiled PR с фичой, которой нам сильно не хватало для игры на весенний лисповый геймджем, а именно — поддержки объектов-шаблонов Tiled. Ну то есть как нам, не хватало моему товарищу, занимавшемуся картами, я-то просто сочувственно цокал языком 😅

Теперь шаблоны в cl-tiled будут поддерживаться прозрачным образом, даже код старых игр менять не придётся. Вы знаете, где выгрузить фуру с лайками и прочими положительными реакциями типа 🎉, чтобы автор библиотеки быстрее принял пуллреквест 😊
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
#лытдыбр #common_lisp

Умудрился тут себе заработать воспаление плечевого сустава, так что уле=еле полулёжа сижу за компом, закидавшись обезболивающими. Но всё же потихоньку нахожу в себе силы пилить вторую часть туториала по геймдеву на Common Lisp, чтобы успеть опубликовать его до середины октября и иметь возможность пошутить шуточку "и года не прошло с первой части" 😅

Вон даже осилил сделать подгрузку анимированных тайлов 😊
🔥8
#лытдыбр

А вот и отзывы подъехали к моему ECS-фреймворку для Common Lisp, хоть сейчас верстай лендинг с разделом Testimonials 😅
🔥9😁42💯2
#лытдыбр

Пока из-за больного плеча валялся на диване нетрудоспособным тюленчиком, осилил дочитать книжку Кристиана Кеннека "Lisp in small pieces", в которой подробно рассматривается строение интерпретаторов и компиляторов разных лиспов, и, конечно же, я загорелся идеей сделать свой крутой компилятор своего диалекта лиспа 😅 Как будто у меня хобби мало — уже поджимают сроки со второй частью туториала по геймдеву на Common Lisp, и буквально сегодня объявили дату осеннего Lisp Game Jam (спойлер, это 25 октября).

В общем, сегодня схожу на первый сеанс ЛФК, меня там каак вылечат, и тут-то я всё и сделаю))
8😢2👍1
#лытдыбр #common_lisp

Пока потихоньку доделываю туториал по геймдеву на CL, умудрился наткнуться и починить багу в библиотеке для UI Nuklear (она во второй части туториала тоже будет фигурировать 😊). Бага причём есть не только в liballegro-бэкэнде (я уже давно прикипел к этой библиотеке), но и в некоторых других бэкэндах, но на них у меня сил, конечно, не хватит 😅
🔥5
#лытдыбр

Пулл-реквест в библиотеку Nuklear приняли, в результате чего я попал, гм, в первую четырнадцатку соучастников 😅
🔥18👍1
#лытдыбр

В преддверии Autumn Lisp Game Jam '24, на котором я решил на этот раз выступить с rogue-like игрой (надо ж все жанры понадкусывать, как яблоки в том анекдоте 😅), решил ознакомиться поподробнее с современным состоянием жанра и почти случайно наткнулся на такой шедевр, как Path of Achra. Графика там, конечно, на уровне приснопамятной Rogue, прямиком из конца семидесятых (см. рис. 1), но буквально с первого данжа игра невероятно затягивает, я в нее последнюю неделю каждый вечер залипаю 😊 Возможно, дело в том, что такого рода игры бросают в тебя серьёзные челленджи, но при этом также дают массу различных инструментов, чтобы с ними справляться — тут только разных типов урона 11 штук, а вариаций персонажей и вовсе 640)

Рекомендую причаститься, благо, в стиме есть бесплатное демо (в которое я и играю, скидки-то проворонил 😅)
🔥71
#common_lisp

Тут подъехала кулстори, что лицо Горлума из кинотрилогии "Властелин Колец" моделировали в софтине, написанной на Common Lisp 💪

https://archive.org/details/izware_mirai_1.1sp2

Mirai is a 3D creation and editing suite available originally from Nichimen Graphics Corporation, later from Winged Edge Technologies, and currently from Izware. The modeller uses the winged edge data structure, is written in Common Lisp, and traces its lineage to the S-Geometry software from Symbolics. It has been used primarily by game developers and high-end character animators—for example by Bay Raitt's facial morph targets for the Gollum character in The Lord of the Rings film trilogy.

UPD. В коментах ещё подкинули ссылку на статью об этой софтине на сайте Franz Inc., которые Allegro Common Lisp.
🔥10👍1
#лытдыбр #common_lisp

Определённо наличие дедлайнов, даже довольно произвольных, тонизирует — уже написал больше текста второй части туториала, чем было в первой, а ещё даже не закончил с рассмотрением первой темы из двух, вынесенных в её заголовок 😅
3👍2🔥2🕊1
#лытдыбр #соцсети

Наконец исполнил свою давнюю мечту и сделал персональный телеграм-канал для щитпоста на околопрограммерские темы, вот он: Щепелявый Щитпост 😅 Накидал там мемасов, которые давно под рукой валялись, так что подписывайтесь (но лучше не надо, щитпост же))
4
#лытдыбр #common_lisp

Вчера утром никого не трогаю, дописываю вторую часть туториала, вдруг раз — на почту уведомление, мол, в коментах к нашей игре на прошлогодний осенний Lisp-джем Mana Break чувачок пишет, что у него под линуксом игра не запускается. "Под такой благословенной ОС и не запускается", — думаю я, "непорядок, нужно чинить". Лезу разбираться, и выясняется, что в течение уже неопределённо долгого времени (с мая?) билды под некоторыми дистрибутивами действительно могут не запускаться из-за того, что окошечная библиотека GTK при запуске не может найти иконку image-missing, которая нужна, чтобы показать, что он не может найти иконку 😵‍💫

Попытался починить, даже багу в багтрекере AppImageKit завёл, возился-возился, потом плюнул и добавил всё правильно разруливающий в потрохах GTK GTK-плагин к утилите для создания линуксового AppImage, — это сработало, так что добавил его и внутрь своего докер-образа для сбора игр (заодно и версию SBCL бампнул), кроме того, пришлось внести изменения в cookiecutter-шаблон для игр на CL. Ух, вот это я понимаю прокрастинация 😅
👍6😭2🥴1
#лытдыбр #common_lisp

Сам поверить не могу, но я закончил первый черновик второй части туториала по геймдеву на Common Lisp 🎉 Теперь наступает нудный период редактуры и вычитывания, плюс надо наснимать скриншотов и сделать в Tiled карту, которая будет фигурировать в демо. Есть даже ненулевая вероятность уложиться в собственный с потолка взятый дедлайн (интересно, а бывают не взятые с потолка?) и опубликовать-таки его на следующей неделе)

Кстати, если кто-то хочет чуть позже помочь с вычиткой текста, милости прошу отметиться в коментах, в качестве благодарности, правда, смогу лишь упомянуть вас в конце статьи ❤️
🎉8👍3
#лытдыбр #common_lisp

О, репозиторий Quicklisp обновился, как я и предсказывал. Как я об этом узнал? Очень просто, билд дёмки для туториала начал валиться с segfault'ом, см. рис. 1.

После разбирательства стало понятно, что дело, скорее всего, не в бобине квиклиспе, а в том, что я дампил в лисп-образ память, аллоцированную через CFFI, а хрупкая сишная натура библиотеки liballegro после загрузки образа работать с такой памятью не может, но осадочек остался, несмотря на найденные ложечки 😅
🤣8👍1🎃1
#лытдыбр #common_lisp

По горячим следам после публикации туториала пофиксил багу, которую сам же и внёс в cl-tiled, когда реализовывал поддержку объектов-шаблонов, правда, она проявлялась только на уровне SAFETY 3, странно, что столько людей её репортят. Вообще количество баг-репортов в мои проекты за эти несколько дней ощутимо увеличилось, это не может не радовать 😊
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
#devlog #common_lisp

Ну штош, сегодня утром начался Autumn Lisp Game Jam 2024, который я хотел использовать как шанс попробовать себя в жанре rogue-like. Всю неделю рассматривал варианты, прочитал туториал по разработке рогаликов на Common Lisp с библиотекой tcod, но в итоге решил остановиться на "своём" стеке — liballegro, cl-fast-ecs и nuklear для гуя.

Выбрал красивый моноширинный шрифт и вот такой вот крутышный 12x12 тайлсет с огромным количеством тайлов и приятным стилем, подходящим фентезийному рогалику.

С утра думал, в каком формате хранить идентификацию отдельных тайлов (типа, как понимать, что по оффсету (100, 100) там спрайт игрока, а по оффсету (200, 200) там спрайт стены) и в итоге тоже решил остановиться на знакомых инструментах и использовать файлы тайлсета Tiled с кастомными свойствами 😅

Начал реализовывать персонажа игрока (видеозапись с его отладкой прилагается) и тут же уткнулся в вопрос того, а как, собственно, реализовывать пошаговость и разные скорости у разных персонажей. Начал шарить на RogueBasin и наткнулся на потрясающую книжку "Exploring Roguelike Games" за авторством John Harris, в 65 главе которой подробно рассматриваются эти вопросы и которую я и использую в качестве чтива перед сном 😊
🔥15👍1
#devlog #common_lisp

На второй день джема придумал, как мне кажется, изящный способ решения проблемы с пошаговостью и разными скоростями персонажей, и сделал базовые версии поведения персонажей врагов и генерации карты — тупо шёл по питоновскому Roguelike tutorial, переделывая всё в ECS парадигме, собственно, почти дошёл до третьей части)
👏10
#лытдыбр #мемасики

Оказывается, определение области видимости игрока в рогаликах — это целая наука. Чувствую себя, как в этом мемасике 😅
😁8