Картонный движок для электротехнической настольной игры. Как мы приближали его к реальности

Летом 2018 года я уже писал о том, как мы создавали настольную электротехническую игру «Не закороти Цепь!», которая тогда готовилась к изданию. В настоящий момент работа над игрой завершена, она успешно собирает средства на издание на площадке CrowdRepublic, но мы решили рассказать об её «движке», его создании и с проблемами, с которыми мы столкнулись при этом.

Казалось бы, что сложного. Батарейка, провода, светодиоды и лампочки — собирай цепочку, смотри, что зажглось, получай очки и штрафы, если замкнул плюс на минус без нагрузки. Резистор уменьшает число очков, диод пропускает или не пропускает ток в определенном направлении, цепь «считается» от плюса к минусу. Но…

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

my6xrfk8c27c6phsufh2aelvzhm.png

Было решено, что все замыкаемые цепочки «разворачиваются» в последовательные. Это позволило как повысить скорость игры, так и снять горячие споры, кто и зачем победил.

Также вопрос встал о номиналах элементов. Какие резисторы? Каково напряжение у диодов и ламп? Какое напряжение в цепи? И тут опять вступают в силу допущения — в игровой «сети» напряжение 3В, лампочки также 3 вольтовые, диоды на 2 вольта, резисторы на «шарообразные в вакууме» 1Ком. Характеристиками диода пренебрегаем — считаем что он пропускает или не пропускает ток. Осталось только выработать понятные и логичные правила начисления очков. Вот тут захотелось больше реальности и для этого мы стали все проверять на макетных платах.

С лампочками и светодиодом все просто — лампочка в цепи при номинальном напряжении — 2 очка, светодиод без резистора сгорает, с резистором дает тоже 2 очка.

hn-m8gmgfghvyrmeybr8t3nhf8s.png

Две одинаковые лампочки, включенные последовательно будут гореть в пол силы — даем им два очка. А лампочка + светодиод? Два светодиода последовательно? А если добавить еще резистор? Считаем один из элементов цепи резистивным для другого. Тогда лампочка + резистор дает 1 очко (падение напряжения на лампочке принимаем в два раза), светодиод + лампочка дает 1 + 2 очка, два светодиода дает… А вот тут не 2+2. В реальной цепи второй светодиод будет «светить» слабее, поэтому принимаем, что два последовательных светодиода не сгорают и игрок получает 1+2 очка. И все это подтверждается макеткой.

1otdaxjk_7jsc6fizaqyzz1rzw8.png

Третий элемент в цепи рассчитываем аналогично. Резистор плюс два светодиода дают примерно одинаковое свечение на обоих — 2 очка игроку. Два резистора + светодиод также дают «тусклое» свечение — 1 очко игроку.

gzmfserarqtbsuplwgg2tceggym.png

Проблемы начались с подключением одновременно нескольких лампочек и светодиода или появлении цепочки резистор — лампочка — светодиод. Они не работали, как требовала логика «картонного» движка

x25tlnpxhf-len3wuvdauujzvmi.png

Как видно светодиод ярко сияет (а ожидалась ситуация как в случае с двумя резисторами и светодиодом), а с резистором лампочка не горит, в отличие от светодиода, которые светит «на 2 очка». Логика же движка требовала получения тускло светящихся лампочек и светодиода в обеих ситуациях и соответственно по 1 очку за каждый зажженный элемент. Со скрипом принимаем это допущение.

Чтобы не уводить игроков в дебри вычислений цепочки больше 3 элементов (диоды как мы помните у нас играют только роль «ворот» и мы их в цепочках игнорируем как резистивные элементы) мы посчитали неспособными зажечь наши светящиеся элементы и победные очки за них не начисляем.

В итоге таблица «светимости» получилась такой:

eyqegkl5rrtmaadmvdlyuqco7ty.png

Не во всех аспектах реально, но с достаточно четкой логикой, позволяющей не сидеть с открытыми правилами постоянно.

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

Как разработчики мы иногда порываемся написать «усложненные» правила для игры с более реалистичным поведением картонных цепей, но задаемся вопросом —, а надо ли?

© Habrahabr.ru