← Все проекты

Клуб хаскельного игростроения

Серия встреч по освоению Haskell через написание игр, а не факториалов.
Неактивный проект

Все знают, что Haskell — это просто. Кроме тех, кто ещё не пишет на нём профессионально. Поэтому мы делаем серию встреч по освоению хаскеля через написание игр, а не факториалов.

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

Приносите свой настроенный ноут, с IDE и библиотеками. Есть в заначке наборы графики и звуковых эффектов? Тоже берите.

Полезные ссылки про хаскель: https://ruhaskell.org/links.html

Чтобы присоединиться к группе, пишите в телеграм: https://t.me/icrbow


Архив встреч

08.02.2020 Новая игра, новый стартер проект

Со времени предыдущих встреч был сильно доработан стартовый макет для игр. Теперь нужно меньше времени на обязательные вещи вроде смены сцен и сразу браться за fun part — делать игровые механики и анимации.

16.11.2019 Хакатон по запуску ракет

Вначале Александр Бондаренко расскажет про игру, написанную по результатам предыдущей встречи, от идеи до публикации. Далее мини-хакатон про подготовку хаскельного кода к использованию в большом и разнообразном мире. И, наконец, желающие смогут поучаствовать в прикручивании новых фишечек к уже написанной игре или начать реализовывать свои игровые задумки.

14.09.2019 Клуб хаскельного игростроения - встреча 1

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

Отчёт — Юрий Сыровецкий

14 сентября группа разношёрстных хаскелитов собралась в «Кочерге», чтобы попробовать делать игры. Точнее, цель встречи была обозначена как «осваивать Хаскель на играх, а не факториалах».

Если коротко, сделать игру не получилось, а освоить Хаскель — вполне. Главный вывод: офлайн рулит.

Участники принесли ноутбуки с настроенным окружением для сборки хаскельных проектов в том или ином виде. У кого-то был ​stack​, у кого-то — ​cabal​ + ​nix​. Непосредственно к игростроительству, кажется, не подготовился вообще никто, и, наверно, это было даже хорошо, потому что самые обычные проблемы мы решали сообща. Надеюсь, такой открытый подход помог новичкам в языке и программировании вообще увидеть и проблемы, и их решения, что поможет им впредь не бояться возникающих сложностей. С нуля пришлось организовывать весь процесс.

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

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

Инструменты: собрали некоторое количество грабель с nix, Emacs, HFS. Apecs и Gloss оказались достаточно приятными в работе, разве что магия типов в Apecs показалась довольно мутной новичкам.

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