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

По всем вопросам @awkravchuk
Download Telegram
#common_lisp

Меж всем тем, в январе этого года тихо и незаметно вышла новая версия самой распространённой middleware-библиотеки для создания игр SDL, 3.2, которая ломает совместимость с существовавшей уже лет десять SDL2. Биндинги Common Lisp к SDL были традиционно низкого качества и кишели багами и фичами-медвежьими услугами, и вот тут человечек из CL-сообщества подсуетился и сделал бинды к SDL3. Вроде на первый взгляд выглядят неплохо, т.к. написаны, судя по всему, вручную, а не через кривой генератор, как к SDL2. Я-то уже прикипел к менее распространённому middleware liballegro, но cl-sdl3 стоит взять на заметку лисперам-игроделам, привыкшим к обилию туториалов и документации по используемым инструментам 😊
🔥13
#лытдыбр #common_lisp

А сегодня с утра тихо и незаметно вышла новая версия 0.7 моего ECS-микрофреймворка для Common Lisp cl-fast-ecs. Из крутых изменений, как я уже проспойлерил, макрос DEFENTITY для определения глобальных сущностей, генерируемые слоты, дженерик RESET-COMPONENT и дженерик ASSIGN-COMPONENT. Не обошлось и без поломанной обратной совместимости: функция BIND-STORAGE удалена, вместо неё достаточно вызвать MAKE-STORAGE для инициализации фреймворка; а feature expression :ECS-UNSAFE, добавляющий процентов 5 производительности ценой возможности переопределения компонентов был переименован в :ECS-RELEASE. Соответствующие изменения уже внесены в обе части туториала, а документация теперь всегда соответствует версии библиотеки в репозитории Lucky Lambda 🎉

Теперь можно заниматься дальше деревьями поведения и дёмкой будущего рогалика 😊
👍11🔥32
#лытдыбр #соцсети

Наконец осилил сделать телеграм-канал нашей с товарищем игровой студии для целей продвижения среди не-программистов 😅

Подпишитесь и расскажите о нас друзьям)
12👍6
#лытдыбр

Угадайте, кто вчера был на стендапе самой недооценённой комикессы России? 🤚😊
🔥21👏5
#лытдыбр #common_lisp

Наконец закоммитил огромный внутренний рефакторинг своей библиотеки для деревьев поведения cl-fast-behavior-trees. Проверил на практике (в демо нашего нового рогалика, оставайтесь тунцом — завтра, даст Будда, выложу в паблик), работает без сучка без задоринки 😊

Версию библиотеки пока не стал бампать, есть ещё идея, как там ещё чутка соптимизировать, хотя, казалось бы, куда уж дальше — теперь на одно дерево поведения создаётся только один ECS-компонент и одна система, а не целая пачка, как раньше 😅

В общем, происходит буйство перфекционизма))
🔥12
Forwarded from LuckyLambda
В этот погожий субботний день мы хотим влиться в традицию рассказывать о прогрессе разработки инди-игр за неделю, известную как #ScreenShotSaturday, и наконец поделиться с вами текущей версией демо нашей игры 😊

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

Также реализовали базовый интерфейс, в частности, справочно-приветственное окно сразу при запуске игры, на котором перечислены управляющие клавиши. Чтобы закрыть это окно и попасть в подземелье, нужно нажать Esc, а снова его увидеть можно, нажав в игре кнопку F1 или ?.

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

Буквально в последний момент добавили перезапуск уровня по нажатию клавиши 0, так что можно полюбоваться различными процедурно генерируемыми подземельями ☺️

Демо можно скачать по ссылке или установить из клиента платформы Itch, который почти такой же удобный, как клиент Steam 😌. Пишите в комментариях здесь или на itch.io, что вы думаете о демо и что хотели бы увидеть в дальнейшем, мы читаем все комментарии и прислушиваемся к вашему мнению!
🔥4
#common_lisp

Тут ньюсфидом принесло прекрасное: запускающийся прямо в браузере (!) Emacs с подмножеством Common Lisp(!!): https://lisperator.net/s/slip

Можно в приглашение REPL слева вбить что-то в духе (load "examples/clock.lisp"), и оно запустит графическую (!!!) дёмку. В общем, куда техника шагнула, аж дух захватывает 😱

Подумываю иногда о том, что надо бы тоже попробовать для браузера игры делать, но для этого нужно прямо сильно заморочиться с ECL — это пока единственный компилятор, умеющий генерировать WASM, и там это прямо сейчас активно пилят. Поживём-увидим, в общем 😊
👍14❤‍🔥1🔥1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
#common_lisp #видео

Надысь тут в Lisp-дискорде человек хвастался своими успехами в геймдеве на Common Lisp с использованием Raylib, не могу не поделиться небольшим, но крутейшим видосом процесса разработки 😊
🔥15
#лытдыбр

Никогда бы не подумал, что докачусь до программирования в draw.io 🙈

Это я доделываю дерево поведения для мобов в нашем рогалике и сильно надеюсь успеть к завтрашней субботе-скриншотнице)
🔥9
Forwarded from LuckyLambda
Итак, снова настала суббота, а вместе с ней время представлять вашему вниманию новую версию демо нашего рогалика в рамках #ScreenShotSaturday 😊 Как всегда, её можно скачать на страничке проекта по кнопке Download.

Как и обещали, мы сделали базовую механику сражений — теперь можно устроить мобам мордобой 😁 Так как оба участника нашей студии по образованию математики, мы провели много времени, обсуждая подсчёт чисел урона и базовые боевые характеристики. Один из участников, пожелавший скрыться за псевдонимом кофейный лис, предложил модель боя, более близкую к теоретическим основаниям матстатистики, чем к традиционно принятым в видеоиграх схемам, и после долгих обсуждений мы реализовали именно её. Кроме того, мы использовали буквально самый крутой на данный момент генератор случайных чисел под названием PCG, созданный в академических кругах всего десяток лет назад.

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

Также в новом билде появилось удобное главное меню и некоторые другие мелкие изменения интерфейса — оставляем в качестве развлечения для самых пытливых заметить, какие именно ☺️

На следующей неделе мы будем продолжать работать над базовыми рогаличными механиками — на очереди предметы и экипировка. Есть много важных вещей, которые нам нужно реализовать до полноценной игры, оставайтесь с нами, чтобы следить за прогрессом и не пропустить официальный релиз в Steam!
🔥13👍7🥰1
Forwarded from LuckyLambda
В эту #ScreenShotSaturday в силу загруженности основного автора статей, текстов и постов канала к рулю с рассказом о прогрессе за неделю пробился участник проекта под ником Кофейный лис, он же Coffee Vulpes. Непоправимого урона нанести не удалось, но в качестве эксперимента оставляем его художества в оригинальном виде. Ставьте к посту реакцию 💩, если считаете, что его графоманство не стоит выпускать на волю 😁 Передаём слово беспокойному caninae.

Что ж, эта неделя определённо может считаться веховой. Проект официально стал игрой. Не только концептуально, а вполне себе по формальным признакам. Игру теперь можно закончить (см. рис. 3), игра теперь содержит в себе, помимо передвижения, все основные базовые взаимодействия, игра теперь содержит смысловое наполнение и осознаваемые элементы исследования.

Нет, это всё ещё не финальный вариант игры, но да, это определённо произведение, которое можно считать замкнутым (кольцо на игре кекеке).

Итак, первое и самое главное — у нас появились используемые вещи. Их можно выбить с мобов, их можно поднять (и здесь есть некоторые UX-элементы, которые не видны, но, поверьте, ощутимы), их можно использовать. Вещи обладают случайными параметрами, вещи помогут вам завершить игру (пусть пока это возможно лишь благодаря уважаемой Фортуне), вещи являются той абстракцией, что начинает привносить в игру фан. Вещи настолько важны, что в данный момент вы не сможете от них избавиться. Это не продлится долго, но пока наш девиз — неудержимая жадность.

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

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

Итак, мы всё ближе к релизу самой ИГРЫ. Текущую версию, как обычно, можно скачать на страничке проекта по кнопке Download. Но прежде нас ждёт ещё некоторое число итераций, оживляющих базовую модель. В ближайших планах — пролить СВЕТ на подземелье, и навести в нём ещё больше красоты. Мы вернёмся на следующей неделе с новым рассказом о прогрессе (если моё занудство вас не испугало, поставьте реакцию единорога, прольём радугу на фекалии 🦄💩🤣)
🦄11
#лытдыбр

Меж делом тут обнаружил, что шрифт Fira Code, который я до этого использовал в Emacs, приелся и кажется скучным, и понял, что пора менять шрифт 💅 Посмотрел по количеству поддерживаемых лигатур, сиречь последовательностей определённых символов, которые рендерятся как один, например, классическая лигатура ff — в ней горизонтальные перекладинки у f рисуются, как одна сплошная линия; есть многочисленные "программистские" лигатуры, например, /*, -> и т.д. В итоге выяснил, что такое же большое количество "программистских" лигатур, как у Fira Code, есть только в Cascadia Code, который продвигается micro$oft, хоть и был сделан в независимой шрифтовой компании.

Пришлось успокоить своё майкрософтоненавистничество тем, что софт они делают омерзительный, а вот другие вещи норм, те же клавиатуры, например. Настроил Cascadia в Emacs, закоммитил в свои дотфайлы и сижу радуюсь, нраица 😊
💅10🤗2
Forwarded from LuckyLambda
Этой весенней #ScreenShotSaturday у нас небольшой юбилей — мы четвёртую неделю подряд рассказываем о прогрессе разработки нашего рогалика и выкладываем промежуточные альфа-версии, а значит, нашему проекту стукнул месяц 🥳 На этот раз Кофейный лис участвовал в нажимании кнопок под кодом, поэтому согласился отдохнуть от написания постов и вернуться к печатной машинке в следующий раз)

За эту неделю мы успели поработать с генерацией лабиринта, исследуемого игроком, сделав его гораздо больше и добавив механизмы освещённости (вернее, затенённости) и "тумана войны", которые, как нам кажется, добавляют мрачной атмосферы игре. В качестве идеального образца зловещего подземелья мы ориентировались на Монастырь из первого акта Diablo 2 — по вайбу мы по-прежнему приверженцы жанра dark fantasy 😈

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

Наконец, по случаю круглой даты специально для вас сделали возможность отправить ваш фидбек, запросы функциональности или отчёт об ошибке прямо из главного меню, без необходимости ходить на сторонние сайты (см. рис. 3)! Качайте текущую версию игры по обычной ссылке и дайте нам знать всё, что о нас думаете — мы будем рады любой обратной связи 😊
🔥6👍1