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


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


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


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



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


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


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



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



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



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



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


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


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



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


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


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




К сожалению, не доступен сервер mySQL