Pull to refresh
180
0
Валентин @GlukKazan

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

Send message

Шахматы льда и пламени

Reading time13 min
Views18K
          Игра эта зовется кайвассой. Ее завезли в Дощатый город на волантинской торговой галере, а сироты разнесли ее вверх и вниз по Зеленой Крови. При дорнийском дворе все помешались на ней…
          Десять фигур, каждая из которых ходит по-разному, а доска меняется с каждой игрой, смотря как игроки перемешают свои квадратики. 

                                                   Джордж Мартин «Пир стервятников» 

Cyvasse — ещё одна игра родившаяся в художественном произведении. И как это обычно и бывает, дело вновь не обошлось без участия армии фанатов. Хотя автор и уделяет игре большое внимание (в «Танце с драконами», Тирион Ланистер только и делает, что в неё играет), детальное описание правил, всё же — не дело автора художественного произведения. Впрочем, за фанатами «не заржавело». Разнообразных реализаций «Кайвассы» десятки. Квадратные и гексоганальные — найдутся на любой вкус! Я хочу рассказать о той, что понравилась мне больше всего.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments6

Война джофуров

Reading time11 min
Views5.1K
            Должен попросить у вас разрешения. У вас, мои кольца, мои раздельные сущности. Теперь принимайте решение. Должен ли я говорить с внешним миром от лица нас всех? Должны ли мы вновь соединиться, чтобы стать Асксом?
            … Этим именем – Аскс – нас называют, когда просят рассказывать. Все согласны? В таком случае Аскс начинает рассказывать… о событиях, свидетелями которых были мы сами, и о тех, о которых нам рассказали другие. Рассказ будет вести “я”, словно наша груда сошла с ума и противостоит миру единственным сознанием. 

Дэвид Брин "Риф яркости


Тема игр, придуманных авторами различных художественных произведений, традиционно будоражит воображение. Игры эти очень экзотичны. Они создают необходимый антураж и, часто, служат важной составляющей сюжета. Их много! Только посмотрите на этот замечательный список! К сожалению, поиграть в большую часть из них, нам с вами, никогда не удастся. Обычно, авторы не утруждают себя детальной проработкой правил. Игры, которым удалось перерасти состояние «художественного вымысла» и воплотиться в жизнь (такие как Jetan или Klin Zha), можно пересчитать по пальцам. Практически все они являются результатом упорного труда фанатов соответствующих произведений.

Сегодня я хочу рассказать о своём опыте разработки концепции одной из таких игр. Идея игры пришла мне в голову несколько дней назад (практически сразу, как единое целое) при очередном прочтении замечательного цикла романов "Возвышение" написанного американским писателем Дэвидом Брином. Людям, не знакомым с его творчеством, я могу рекомендовать немедленно исправить эту ошибку. Также, я прошу у них прощения, на тот случай, если информация из спойлеров в моей статье каким либо образом испортит впечатление от прочтения этих произведений.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments17

Как один программист Jocly подковал

Reading time17 min
Views8.2K
— Ученик Почтальона Стэнли — пробормотал Грош
— Сирота, сэр. Очень печальная история… Хороший мальчик, если его не злить,
… если вы понимаете, что я имею в виду.
— Э… возможно. — сказал Мокрист и поспешно повернулся к Стэнли
— Итак, знаешь кое-что о булавках?…
— Нетсэр! — ответил Стэнли…
— О булавках я знаю всё!  
 
                            сэр Терри Пратчетт "Опочтарение".
 

В далёком 1998 году, Zillions of Games произвела фурор в среде любителей настольных игр, но она не была лишена недостатков. Главным её недостатком являлась закрытость. Для того, чтобы играть во что-то сверх набора из 48 игр, входящих в демо-комплект, приходилось платить деньги за активацию программы. Было невозможно запустить ZoG на чём-то кроме Windows (с некоторыми версиями этой ОС вполне могли возникнуть проблемы). Сетевой режим был, но только по локальной сети или через модем, Web не подразумевался. С этим ничего нельзя поделать, это закрытый продукт! Кроме того, в настоящее время, он практически не поддерживается. Я думаю, что многие будут рады услышать, что существует альтернатива, свободная от перечисленных выше недостатков. Знакомьтесь, это Jocly.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments2

Погоня с препятствиями

Reading time26 min
Views8.9K
 
           Какая медлительная страна! — сказала Королева. — Ну, а здесь,
знаешь ли, приходится бежать со всех ног, чтобы только остаться
на том же месте! Если же хочешь попасть в другое место, тогда
нужно бежать по меньшей мере вдвое быстрее! 
 
                        Льюис Кэрролл "Алиса в Зазеркалье


Сегодня, я хочу рассказать об удивительной и недооценённой игре, с которой я познакомился чуть менее двух лет назад. В каком-то смысле, именно с этой игры, а также с Ура, началось моё знакомство с Дмитрием Скирюком. В те дни я только начинал интересоваться настольными играми. Мои познания были скудны и, во многом, наивны. Такие игры как "Чейз", буквально открыли для меня новый необъятный мир. Даже сейчас, работа над этой игрой, в большой степени, напоминает детективную историю. В этом отношении, игра "Chase" полностью оправдала как своё название так и сходство с псевдонимом известного американского писателя.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments6

Чиним MySQL-дамп (меньше чем за 30 строк)

Reading time2 min
Views4.7K
Давным-давно (кажется, в прошлую среду) попался ко мне в руки дамп базы данных MySQL, который следовало немедленно развернуть на моей машине. Зачем это было нужно и откуда взялся дамп, рассказывать не буду, вряд ли это кому-то интересно. Важно то, что дамп был от MySQL 4.1.22 и снят он был при помощи одного широко известного инструмента (версии 5.23).
Разворачиваться у меня он решительно отказался... 
 
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments8

Квантовый Моррис

Reading time10 min
Views16K
          Круг танцующих извивался, как живое существо. Но среди них было свободное место и оно двигалось. Она знала, это место для нее. Мисс Тенета запретила ей. Но когда она это говорила? И потом, куда ей понять. Что она вообще понимает? Когда она танцевала в последний раз? Танец был в крови Тиффани, он манил ее. Шести танцующих недостаточно! 
          … Танцоры не сводили с нее глаз, а она подпрыгивала и кружила между ними, каждый раз оказываясь там, где никого не было.  

           сэр Терри Пратчетт "Зимних дел мастер"
 

Несмотря на всю свою неказистость, "Крестики-нолики" являются краеугольным камнем мира настольных игр. Принцип "N в ряд" настолько прост и естественен, что был независимо изобретён сразу несколькими древними народами. В Китае и Японии он лёг в основу таких игр как "Рендзю" и "Хасами Сёги", в древней Европе — породил "Мельницу" — прародительницу "Алькуэрка" и, в конечном итоге, всего разнообразия современных шашек.

В своём исходном виде, «Крестики-нолики» не кажутся игрой сколь нибудь интересной. В самом деле, беспроигрышная стратегия, для каждого из игроков, в этой игре, совершенно очевидна, а победить, при правильной игре, совершенно невозможно. Подобная игра может привлечь к себе младших школьников, но никак не серьёзных игроков. Впрочем, есть несколько способов всё исправить…
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments7

Королевская битва

Reading time7 min
Views8.2K
— Что это? — вытянул шею Гмык, хмуро глядя на мои карты. — Но тут же только…
— Минутку, — вмешался игрок слева от него. — Сегодня вторник. Выходит, его единороги дикие.
— Но в названии месяца есть «М»! — вякнул еще кто-то. — Значит, его великан идет за половину номинальной стоимости!
— Но у нас четное число игроков…
Я вам говорил, что игра эта сложная.

                  Роберт Асприн «Маленький мифо-заклад»
 

То был славный день. День, когда генералы Севера и Юга могли решить все свои проблемы. Две армии изготовились к бою. Впереди, прикрываемые щитами, двигались колесницы. Сразу вслед за ними, шла пехота и кавалерия. Стрелки, артиллерия и боевые слоны замыкали строй. Элитные бойцы шагали рядом с генералом.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments0

Больше чем Го

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


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

Эта игра — самый настоящий долгострой. Я начал работать над ней ещё в июне! Нельзя сказать, чтобы я каждый день надрывался, но крови она мне попортила немало. На сегодняшний день, это мой самый сложный проект в Axiom. По объёму (весьма нетривиального) кода, MarGo сопоставима, разве что, с Ритмомахией.

Что особенного в этой игре? Стоило ли из за неё так мучиться? Я расскажу, а вы сами судите.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments32

Несколько хороших манкал

Reading time18 min
Views9.8K
             Хотя этикетка была не того цвета и содержала немало орфографических ошибок, большая ее часть находилась на месте, включая сделанную крошечным шрифтом надпись «Может содержать орехи».
                                                         сэр Терри Пратчетт 

Го или Ур? Можно долго спорить, какая из игр древнее, но победит, в этом противостоянии, скорее всего, Манкала. Археологи предпочитают иметь дело с материальными свидетельствами, но как только речь заходит о настольных играх, всё быстро уходит в область предположений. Было найдено немало досок, но гораздо меньше сведений о том, как на них играть. Древние не утруждали себя детальным описанием правил.

С Манкалой ситуация прямо противоположная. Это не одна игра, а весьма многочисленное семейство. В одной только Западной Африке, счёт идёт на десятки (если не на сотни) разновидностей. Доска (как материальный артефакт) для таких игр не обязательна. Достаточно взять пригоршню камушков и выкопать несколько ямок в песке. Не удивительно, что археологи испытывают затруднения с определением возраста этих игр. Им попросту нечего искать! Но для внимательного исследователя «настольных игр», манкалы не менее интересны, чем птицы семейства пересмешниковых для Чарлза Дарвина.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments6

Dagaz: На полпути

Reading time18 min
Views5.2K
imageЧуть правее наклон — упадет, пропадет!
Чуть левее наклон — все равно не спасти!
Но спокойно, ему остается пройти
Всего две четверти пути!

        Владимир Высоцкий "Натянутый канат"
 
 
Когда фронт работ выглядит совершенно необозримым, его волей-неволей, приходится делить на мелкие куски. Кусочек, для первой итерации, я выбрал совсем небольшой:

Очень простые шашки
(board
   (name chess-board-10x10)
   (dim "a-j")
   (dim "10-1")
   (dir (name nw) -1 -1)
   (dir (name ne)  1 -1)
   (dir (name se)  1  1)
   (dir (name sw) -1  1)
)

(piece
   (name Man)
   (pre
      (check is-friend?)
      (take)
      (log position)
      (let captured 0)
   )
   (post
      (check (<= max-captured captured))
      (set! max-captured captured)
      (log " - " position)
      (drop)
   )
   (move
      (check (any nw ne))
      (check is-empty?)
   )
   (move
      (while true
         (let dir (any nw ne sw se))
         (check dir)
         (check is-enemy?)
         (capture)
         (inc! captured)
         (check dir)
         (check is-empty?)
         (end-move)
      )
   )
)

(game
   (name "Simple Checkers")
   (board chess-board-10x10)
   (players 
      (White (Man a1 c1 e1 g1 i1 b2 d2 f2 h2 j2 a3 c3 e3 g3 i3)) 
      (Black (Man b8 d8 f8 h8 j8 a7 c7 e7 g7 i7 b6 d6 f6 h6 j6))
   )
)


Даже без дамок! Фигуры двигаются вперёд и могут «бить» противника, по привычным нам правилам "Шашек" (перепрыгивая через фигуру). Дойдя до последней линии доски, они ни во что не превращаются, но могут брать фигуры противника, поскольку взятия «назад» разрешены. В этом отношении, разрабатываемая игра похожа на «Осетинские шашки», описанные в одной из предыдущих статей. Взятие обязательно и, из всех возможных ходов, игрок должен выбрать ход, берущий максимальное количество фигур. Игра завершается, когда один из игроков не может выполнить очередной ход (заперт или потерял все фигуры).

Разумеется, речь идёт не о том, чтобы «закодить очередные шашки» (это можно было бы сделать и с меньшими усилиями). Я хочу разработать «метаигровую» систему, позволяющую описывать достаточно сложные логические игры, используя простой DSL и, в идеале, не обладая продвинутыми навыками программирования (то есть, ровно то, что делает Zillions of Games, но в полностью открытом и кроссплатформенном проекте).
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments12

Хороший день для кодогенерации

Reading time6 min
Views17K
        Давным-давно, еще на заре существования Вечности, где-то в 300-х Столетиях был изобретен дубликатор массы…
        Вечность приспособила дубликатор для своих нужд. В то время у нас было построено всего шестьсот или семьсот Секторов. Перед нами стояли грандиозные задачи по расширению зоны нашего влияния. «Десять новых Секторов за один биогод» — таков был ведущий лозунг тех лет.
        Дубликатор сделал эти огромные усилия ненужными. Мы построили один Сектор, снабдили его запасами продовольствия, воды, энергии, начинили самой совершенной автоматикой и запустили дубликатор. И вот сейчас мы имеем по Сектору на каждое Столетие.

            Айзек Азимов "Конец Вечности"


То, что день случился не самый лучший, было понятно уже с утра. Ставшая привычной, дождливая серая погода и, похоже, начинавшаяся простуда никак не улучшали настроения. В теле наблюдалась разбитость и, больше всего, хотелось спать. Было совершенно очевидно, что необходимо как-то отвлечься…
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments6

Цвет волшебства

Reading time7 min
Views12K
      Ближе к границе Краепада горели семь второстепенных цветов, искрясь и танцуя в пене умирающих морей. Но они были бледной тенью в сравнении с более широкой полосой, которая парила позади, наотрез отказываясь делить с ними один и тот же спектр.

      Это Цвет-Король, по отношению к которому все менее важные цвета есть не более чем неполные и застиранные оттенки. Это октарин, цвет магии. 

      сэр Терри Праттчетт
 

В этой игре никто никого не ест. Цель проста — перейти на другую сторону доски любой из фигур. Для этого могло бы хватить всего одного хода… Если бы не мешали другие фигуры.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments1

«Фермерские шахматы» — собираем по кусочкам

Reading time6 min
Views7.7K
Пришел король шотландский, 
Безжалостный к врагам, 
Погнал он бедных пиктов 
К скалистым берегам. 
 
      Роберт Льюис Стивенсон "Вересковый мёд"
 
 
Лучший способ забыть что-то — положить на видное место. Это касается и настольных игр — современники не утруждают себя описанием правил, полагая, что глупо тратить время, записывая то, что и так известно всем. Проходит каких нибудь сто лет и игра оказывается безнадёжно потеряна. Любо, Петтейя, Латрункули — все эти игры забыты не потому, что были нелюбимы. Напротив — в них играли так увлечённо, что не потрудились сохранить для потомков!

Нам здорово повезло с тем, что Карл Линней интересовался, в том числе, и настольными играми. В противном случае, к скорбному списку ныне утраченных игр присоединился бы и Хнефатафл. Но, даже в таких счастливых случаях, слишком многие важные детали правил оказываются утерянными. Что-то забывают записать, часть утрачивается при переводах с одних языков на другие. Реконструкторы пытаются воссоздать правила, но результаты их трудов редко оказываются успешными. Об одной из «частично» забытых игр и пойдёт речь сегодня.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments7

Dagaz: Пинки здравому смыслу (часть 10)

Reading time8 min
Views8.5K
image… Десять настанет…
И ты задрожишь,
Как осиновый лист задрожишь! 

         Юринэ "Карас"
 
 

Менее всего заметно то, что лежит на поверхности. За привычной обыденностью, мы не видим чудесного. Разработчики настольных игр придумывают всё новые и новые игровые механики, но часто путают «интересность» игры с её «сложностью». Чтобы было понятно, о чём идёт речь, приведу пример:

Игра давления
TAMSK или «Игра давления» была второй игрой, разработанной в рамках инициативы "GIPF Project". Это, пожалуй, самая странная из всех известных мне игр. В качестве игровых фишек, в ней используется набор песочных часов:



Каждый игрок имеет по три 3-минутных «склянки». Кроме того, в игре используются нейтральные 15-секундные часы, для ограничения времени хода. В начале игры, «фигуры» расставляются в углах шестиугольной доски, с чередованием цвета. Выполняя ход, каждый игрок перемещает одну из склянок на соседнее поле (в любом направлении), переворачивая её. Сразу же после этого, на поле с фигурой надевается кольцо. Правилами запрещается выполнять ход фигурой, песок в которой полностью высыпался (первыми тремя ходами каждый игрок обязан «взвести» все свои часы) и ходить на те поля, среза трубки которых достигли кольца (трубки полей имеют различную высоту). Игра заканчивается, когда ходы становятся невозможными. Побеждает игрок надевший больше всего колец.

Безусловно, эта игра очень сложна (её совершенно точно не удастся описать на ZRF, а на Axiom, с её поддержкой таймеров, вряд ли удастся разработать сколь нибудь дружественный интерфейс), но эта сложность выглядит какой-то искусственной, «притянутой за уши». Как разработчика настольных игр, меня интересуют игры, «бросающие вызов» существующим средствам разработки, но я не приветствую «сложность ради самой сложности». Я хочу рассказать про…
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments17

Dagaz: Пинки здравому смыслу (часть 9)

Reading time7 min
Views6K
image… И повторится все, как встарь:
Ночь, ледяная рябь канала,
Аптека, улица, фонарь. 

                 Александр Блок
 
 

Сегодня, я хочу рассказать о проблеме, традиционно игнорируемой большинством разработчиков настольных игр. Если компьютерная реализация игры, наподобие шашек или шахмат, корректно обрабатывает ситуации выигрыша (или проигрыша) игроков (а это тоже бывает непросто), результат считается вполне удовлетворительным. Но как быть, если игра зашла в тупик? Игроки двигают фигуры, без всякой надежды на победу (и могут продолжать делать это до бесконечности).

При игре человека с компьютером, это не проблема (понятно кто устанет первым), но что делать если играют два бота? Для сравнения «силы» различных вариантов AI, например, требуется провести в автоматическом режиме большое количество игр. Корректная обработка «ничьих», в такой ситуации, жизненно необходима. И крайне желательно, чтобы она выполнялась в точном соответствии с правилами игры.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments2

AI для «Дурака»

Reading time11 min
Views36K
Знал бы прикуп — жил бы в Сочи.

       Народная мудрость. 

Под игрока — с семака, под вистующего — с тузующего.

       Ещё одна народная мудрость. 


Похоже, в этом посте всё смешалось. "Дурак" в заголовке, преферансные поговорки в эпиграфе и КДПВ, не имеющая отношения ни к тому ни к другому. Впрочем, само понятие "джокера", к предмету сегодняшнего разговора, отношение имеет самое непосредственное.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments7

Манкала — время разбрасывать камни

Reading time10 min
Views15K
Всему свой час, и время всякому делу под небесами…
Время разбрасывать камни и время складывать камни,
Время обнимать и время избегать объятий,
Время отыскивать и время дать потеряться,
Время хранить и время тратить…

"Книга Экклезиаста"
 

Если проводить аналогию с эволюцией животного мира, игры семейства Манкалы представляют из себя динозавров. Они царили на планете, когда Шахмат не было даже в проекте! Очень сложно установить их возраст, поскольку, зачастую, для игры не требуется каких либо особенных материальных артефактов. Достаточно выкопать ямки в земле да взять горсть камушков. В отличии от динозавров, Манкала, в добром здравии, дожила до наших дней, сохранив всё своё удивительное многообразие. Добро пожаловать в «Парк юрского периода» настольных игр.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments4

Приручаем JMeter

Reading time6 min
Views151K
imageСегодня я хочу рассказать о замечательном инструменте, название которого вынесено в заголовок статьи. Разумеется, моей целью не является написание подробного руководства по Apache JMeter. В своей статье я хочу лишь зафиксировать ряд, на мой взгляд, не очевидных моментов, с которыми мне пришлось столкнуться в своей повседневной работе. Я надеюсь, что моя статья будет полезна (сразу предупреждаю, картинок будет много). 
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments3

Го — неведомые земли

Reading time5 min
Views26K
Стратегия ведения войны такова: существуют рассеивающие местности,
ненадежные местности, спорные местности,
пересекающиеся местности, узловые местности,
трудные местности, местности-ловушки,
окруженные местности и смертельные местности.

Сунь Цзы "Искусство войны"
 

Есть люди, которым надоедает всё привычное. В своих поисках нового, они совершают открытия, изобретают, творят. Они делают нашу жизнь лучше, во всех её проявлениях. Го не является исключением.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments11

ФВП спешат на помощь

Reading time6 min
Views9K
Эта статья о том, как элементы функционального программирования помогают в реальной жизни. Таких статей на Хабре много, но, насколько я помню, про Forth, на эту тему, ещё никто не писал. Кроме того, я не собираюсь разводить по этому поводу теорию (теоретик из меня ещё тот). Я расскажу о сугубо практической задаче, с которой столкнулся буквально вчера. Надеюсь, мой рассказ будет интересен.
 
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments9

Information

Rating
4,338-th
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity