Как стать автором
Обновить
180
0.1
Валентин @GlukKazan

Программист, Администратор БД

Отправить сообщение

DagazBot — Хранитель ключей и мётел

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров943
История проекта Dagaz прошла у вас перед глазами. Когда я только начинал писать про Zillions, главным возражением было то, что платформа эта платная и запускается только под Windows. Появился Dagaz — полностью бесплатный проект с открытой лицензией и общедоступным исходным кодом, игры которого можно запускать из браузера, даже на мобилках. Блокирующим фактором стало отсутствие адекватных ботов. Пришлось осваивать GarboChess и разрабатывать DagazServer, на котором игроки могли бы играть по сети друг с другом. Это стало большим шагом вперёд, но на сервере требуется авторизация, а логины и пароли — это как раз то, что забывается легче всего. Счастлив сообщить, что теперь их запоминать не надо.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Hex: Мастерим бота

Время на прочтение29 мин
Количество просмотров2.7K
— Стало быть, эта штуковина только выглядит так, будто умеет думать? — Э… да.
— А на самом деле не думает? — Э… нет.
— То есть просто создаёт впечатление, будто бы думает, а на самом деле это всё показуха?
— Э… да. — Ну точь-в-точь как все мы.

                    Терри Пратчетт "Санта-Хрякус"

Триумфальные победы AlphaGo (и впоследствии AlphaZero) всколыхнули интерес общественности как к нейросетям, так и к настольным играм. Конечно, есть люди, которые считают, что AlphaZero «побеждает нечестно», поскольку на самом деле учится не совсем с нуля, а использует поиск Монте-Карло, в дополнение к тому, что ему советует нейросеть (говоря серьёзно, использование языковых моделей, в применении к настольным играм, выглядит интригующим и я желаю всяческих успехов в этом направлении), но хочется поэкспериментировать с чем-то не требующим грандиозных вычислительных мощностей и получить на выходе что-то, пусть и не играющее «на уровне Бога», но вполне пригодное для того чтобы играть с ним было интересно.

Мне важен результат и я готов использовать минимакс, Монте-Карло или даже нейросети, лишь бы добиться хоть какого-то успеха (особенно с учётом некоторых ограничений накладываемых JavaScript на производительность, по сравнению с компилируемыми языками и массовым использованием GPU). Разумеется, начинать эксперименты с Го несколько самонадеянно. К счастью, это не проблема. Я знаю много других игр.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии10

Го: Дообучаем модель

Время на прочтение6 мин
Количество просмотров2.4K
What will we do with a drunken sailor,
What will we do with a drunken sailor,
What will we do with a drunken sailor,
Early in the morning?

Drunken Sailor


В прошлый раз мы остановились на том, что модели на основе свёрточных нейросетей, вполне способны подсказывать интересные и неочевидные ходы и, таким образом, могут использоваться как основа для построения бота для игры Го. Напомню, что источником модели послужила вот эта замечательная книга. Для того чтобы двигаться дальше: дообучать модель, просто с ней экспериментировать или вообще полностью переделать и обучить с нуля, требовались вычислительные ресурсы. И они появились…
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Го: Долгая дорога к боту

Время на прочтение28 мин
Количество просмотров6K
There is no difference between theory and practice in theory,
but there is often a great deal of difference between theory
and practice in practice.

Yogi Berra

Я слепым вместо глаз вставил звезды и синее небо.

Юрий Шевчук


Тема игровых ботов с самого начала была для меня довольно чувствительной. Используя Dagaz, я научился воссоздавать самые разнообразные игры, но что в них толку, если с тобой никто не играет? Nest позволил разработать сервер, для игры по сети, но до тех пор пока на нём не слишком много народу, боты продолжают оставаться актуальными. Универсальные боты, которые я писал, были медленными и слабыми. К счастью, знакомство с Garbochess позволило переломить ситуацию, по крайней мере в том, что касалось шахматных игр. Признаюсь честно, я никогда не думал, что у меня появится бот для игры в Го
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии11

День программиста на носу

Время на прочтение11 мин
Количество просмотров2.8K
Думаю, ни для кого не секрет, какой именно праздник собирается отмечать вся прогрессивная часть общественности 13 сентября сего года. Вот и мы решили отметить. Мы — это компания ТЕНЕТ г.Казань. Отмечать будем путём проведения хакатона (с 11 по 12 сентября) и последующего турнира. Будем писать бота для настольной игры. Все желающие могут поучаствовать в режиме online. Призы будут (мы просто пока не решили какие именно). Подробности под катом.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии5

Путеводитель разработчика по Garbo-боту

Время на прочтение10 мин
Количество просмотров1.1K
у него есть два больших преимущества

Во-первых, он дешевле; а во-вторых, на обложке у него большими веселыми буквами напечатан дружеский совет: Don’t panic!

Дуглас Адамс


Из всего многообразия шахматных движков, Garbochess я выбрал по двум причинам: для него есть понятный JavaScript-код и он неплохо играет в Шахматы. Мне совсем не требовался гроссмейстерский уровень! Если бот играет слишком сильно, то обычных людей (вроде меня) это только отпугивает. Требовалась лишь игра достаточно разумная, похожая на игру человека, без глупых раздражающих ошибок и Garbochess мне всё это дал. К сожалению, как и большинство других шахматных движков, он играл только в одну игру — традиционные Шахматы. Именно это мне и предстояло исправить.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии9

DagazServer: Встречайте Garbo Chess

Время на прочтение8 мин
Количество просмотров3.4K
Кто мне сказал, — «не получится»?
Если мне хочется, сбудется!

Земфира

Плюнь тому в глаза, кто скажет,
что можно объять необъятное!

Козьма Прутков "Плоды раздумья"


Новогодние праздники вновь навалились внезапно. Такое обилие свободного времени было просто необходимо разбавить какой-то осмысленной деятельностью и я решил приделать к своему серверу бота для игры в Шахматы. Готовых шахматных движков существует множество. Я решил остановиться на Garbochess-JS — простой и понятной реализации, на языке JavaScript, названной в честь знаменитой актрисы Греты Гарбо (вы можете видеть её на фотографии).
О том, что из этого вышло, читайте далее...
Всего голосов 18: ↑18 и ↓0+18
Комментарии5

DagazServer: Чему научили пользователи

Время на прочтение10 мин
Количество просмотров1.5K
Детали, мелочи, нюансы. Сочетание пустяков.
От перестановки слагаемых всё меняется.
Раз, и будущее – открытая книга.

Нюанс за нюансом, подробность за подробностью…
Это была не игра, это была откровенная дерзость.

Генри Лайон Олди «Нюансеры»

Предусмотреть всё невозможно. Именно поэтому умные люди и придумали бета-тестирование. Поскольку, в моём случае, проект открытый и бесплатный, оно мало чем отличается от обычного функционирования сайта. Люди играют в игры, а я наблюдаю, исправляю найденные ошибки, извиняюсь и наблюдаю снова. А ещё, я прислушиваюсь к советам, порой неожиданным и, часто, очень полезным.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Десять игр от Dagaz

Время на прочтение7 мин
Количество просмотров2.1K

Долго ли, коротко ли, но я развернул свой сервер. Теперь это не просто коллекция игрушек, в меру укомплектованная слабенькими ботами, а полноценная возможность игры с другими людьми по сети. Сразу скажу, что игры, в основном, тяготеют к традиционным, но есть и авторские, порой довольно экзотичные. Кстати, если по вашему мнению какой-то из игр не хватает — пишите мне, я постараюсь добавить.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии11

DagazServer: Как всё устроено

Время на прочтение41 мин
Количество просмотров2.9K
По всей видимости, я не самый правильный фронтедщик. Большую часть сознательной жизни я занимаюсь базами данных и немного бакендом. Любовь к настольным играм — вот что заставило меня связаться с web-разработкой. Новый, совершенно незнакомый мне язык программирования — JavaScript, я изучал по ходу дела. Допускаю, что многое из того что я делал, способно ужаснуть опытных web-разработчиков, но я стараюсь стать лучше. Этот текст не для тех, кто привык во всём следовать раз и навсегда написанным инструкциям. Но если вы любите экспериментировать, докапываться до каждой мелочи, открывать новое для себя, добро пожаловать под сень моего леса.


Всего голосов 21: ↑20 и ↓1+19
Комментарии7

Как мы турнир провели

Время на прочтение20 мин
Количество просмотров1.8K
Потому что совместный труд, для моей пользы
— он объединяет.

Матроскин

Бросая в воду камешки, смотри на круги, ими образуемые; иначе такое бросание будет пустою забавою.

Козьма Прутков «Мысли и афоризмы».


Недавно, в прошлую пятницу, мы решили слегка разнообразить свои будни, проведя программистский турнир. Повестка определилась не сразу. Были мысли про аналитическую обработку данных, машинное обучение, но в конце концов, остановились на настольных играх. Нам хотелось ввести в мероприятие элемент соревнования, а что, как не игры, позволяет легко это сделать?
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

Сплетая дизайн

Время на прочтение4 мин
Количество просмотров4.3K
Три кольца — премудрым эльфам
— для добра их гордого.
Семь колец — пещерным гномам
— для труда их горного.
Девять — людям Средиземья…

Джон Рональд Руэл Толкин


Работая над играми, я уделяю большое внимание дизайну. Речь идёт не о красивой картинке, хотя и она конечно имеет значение. Прежде всего, для меня важны удобные игровые механики. Игра должна приносить удовольствие. Когда в Сапёре при клике на пустое поле автоматически открываются все поля, не соседствующие с минами — это удобно. Известный всем пасьянс также можно значительно улучшить, просто избавив пользователя от необходимости выполнения лишних действий. Но сегодня я хочу рассказать о другой игре. Той самой, которая изображена на КДПВ (как обычно, все картинки в статье кликабельные).
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии12

Dagaz: История с персистентностью

Время на прочтение9 мин
Количество просмотров2.2K
Любая достаточно развитая технология неотличима от магии.
Артур Кларк
 
— Я больше не хочу быть сравнением… Сделайте меня метафорой.
Чайна Мьевиль


Работа над большим проектом похожа на метроидванию. Решая частные проблемы, мы открываем новые возможности. Со временем, эти возможности крепнут, соединяются с другими возможностями и это позволяет решать застарелые, куда более важные и сложные проблемы новым, совершенно неожиданным способом. У меня есть хороший пример на эту тему. И я хочу о нём рассказать.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии4

Dagaz: Сумма технологий

Время на прочтение10 мин
Количество просмотров2.5K
          Итак, технологии интересуют меня, так сказать, по необходимости: потому что всякая цивилизация включает и то, к чему общество стремилось, и то, чего никто не замышлял.

          Порой, и довольно часто, путь технологии открывал случай: искали же когда-то философский камень, а нашли фарфор.
 
 
Станислав Лем.


С самого начала работы над проектом, было понятно, что качественный AI мне жизненно необходим! Самому с собой играть скучно, а модуль для игры по сети — он неизвестно когда ещё будет. Я пытался писать ботов сам, но все они работали либо плохо, либо плохо и медленно. В конце концов, я устал заниматься этой самодеятельностью и нашёл шахматного бота, качество игры которого меня вполне устраивало. Но тут возникла проблема. Мне-то были нужны не только Шахматы. Тому, как я с этим боролся, и посвящена эта статья.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии19

Dagaz: A new Beginning

Время на прочтение23 мин
Количество просмотров1.7K
It runs south and circles north, circling, circling to run with its wind
And according to its circuits the wind returns;
All the rivers run into the sea — and the sea does not overflow,
To the place where the rivers run, — There they continue to run;

The book of Ecclesiastes


In 1998, a completely unique, for its time, application was developed that allows you to reduce the process of developing an abstract board game (or puzzle) to a small text description language, vaguely reminiscent of Lisp. This project was called Zillions of Games. It created a furor among fans of board games. Currently, over 2,000 applications have been created using this technology.
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Dagaz: Эпизоды (часть 2)

Время на прочтение4 мин
Количество просмотров1.7K
— Один слон, одна колесница, пятеро пехотинцев и трое всадников составляют ПАТТИ, утроенное ПАТТИ составляет СЕНАМУКХУ,…
а десять АНИКИНИ составляют АКШАУХИНИ, и это есть самая крупная войсковая единица…
                                           Генри Лайон Олди «Гроза в безначалье»


В прошлой статье я рассказывал о шашках и это не случайно. Шашечные игры, с их составными ходами, послужили основой проекта, составили его костяк. До сих пор, шашки подкидывают мне сюрпризы. Например, буквально на днях, мне довелось исправлять застарелый баг, связанный с опцией отложенного взятия. И вообще, как я уже говорил, шашечные игры сильно недооценены. Но одними лишь шашками дело не ограничивается…
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Dagaz: Конец одиночества

Время на прочтение4 мин
Количество просмотров2.9K
Счастье для всех, даром
и пусть никто не уйдёт обиженный! 
 
А. и Б. Стругацкие «Пикник на обочине»
 
          

Боты, как бы хорошо они не играли, плохая замена живым игрокам. Если бот играет слабо — это не интересно. Если сильно — это обидно и снова не интересно. Баланс соблюсти чертовски трудно (тем более, что для каждого игрока он индивидуальный). Я уже давно собирался реализовать сетевую игру, но всё упиралось в необходимость содержания собственного сервера. К счастью, решение пришло с неожиданной стороны.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Dagaz: Эпизоды (часть 1)

Время на прочтение8 мин
Количество просмотров2.6K
Мы расшатали ваши умственные фильтры, и в результате появился ответ. Метод сработал, он будет действенным всегда. Все, что необходимо сделать — это избавиться от лишнего груза предрассудков…

Раймонд Джоунс "Уровень шума"


Dagaz появился не на пустом месте. Я всегда увлекался настольными играми и головоломками, а программированием занимаюсь сколько себя помню, но мысль о некоем «универсальном» движке просто не могла бы прийти мне в голову. К самой этой идее я относился скептически. Пока не увидел Zillions. К сожалению, продукт, на тот момент, уже не развивался, исходный код был недоступен, да и вообще, программа работала только под Windows. Спустя некоторое время, я решил взяться за открытый проект.
Всего голосов 24: ↑24 и ↓0+24
Комментарии5

Dagaz: Ошибки

Время на прочтение3 мин
Количество просмотров2.2K
imageДело помощи утопающим —  
дело рук самих утопающих.

И.Ильф и Е.Петров.

 
 
Ошибки ошибкам рознь. Работая над проектом, я веду свой личный рейтинг ошибок. Что-то исправляется совсем легко, при первом запуске, что-то намертво прибито гвоздями к архитектуре и потому отравляет жизнь годами. Некоторые ошибки просто вымораживают. Когда их исправляешь — чувствуешь, что живешь. Я люблю такие ошибки.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии4

Dagaz: Подробности

Время на прочтение7 мин
Количество просмотров2.9K
imageВ «пи» цифр не пересчитать,
«е» — бесконечно столь же.
А если их с конца писать, какое будет больше?

Мартин Гарднер «Крестики-нолики»


Для этой статьи, я хотел выбрать другой эпиграф, но счёл его излишне пафосным. Очередной релиз вновь затянулся. За это время, я успел сменить работу! Работа на новом месте отнимает уйму сил, но я продолжаю находить время для своего маленького увлечения. И надо сказать, то, с чем мне приходится сталкиваться в процессе, становится всё сложнее и сложнее. Я расскажу вам об этом. Я хотел начать с другого эпиграфа, но этот тоже неплох.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии13
1
23 ...

Информация

В рейтинге
2 835-й
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность