Обсуждение

В архиве: 4 комментария.

Читать и комментировать в ЖЖ ↗

sbobrovsky · 1 июля 2017

Комментарий

Интересно, а каким может быть "симулятор" конструктора/проектировщика. Есть игры наподобие Factorio https://habrahabr.ru/company/mosigra/blog/331800/ где в принципе можно много чего "запрограммировать", а главное, можно очень гибко создавать крупные работающие системы. Но минус, что игровой "язык программирования" низкоуровневый, и когда система разрастается, за всеми мелкими деталями скучно и сложно следить, а каких-то мета-игровых уровней там нету. Эта же проблема и в Minecraft. Хочется некий тренажёр/tycoon, где с одной стороны можно было бы достаточно быстро (от сотни часов до единичных часов в зав. от опыта) сформировать действующую "инженерную" систему высокой сложности (в свободной, что обязательно, песочнице -- т.е. конкретных способов доступно очень много), с другой стороны, сам процесс должен быть увлекательным (по форме, например), ну и чтобы конечно при этом правильные навыки тренировались, которые могли бы прозрачно переноситься на реальную деятельность. В принципе, есть физические конструкторы типа Crazy Machines, но в них вроде как обучаешься только базовым навыкам, а вот сложную систему (из тысяч элементов, десятков тысяч, ...) не создать. Ну или сам процесс уже становится слишком скучным и долгим.

Анатолий Левенчук · 1 июля 2017

Комментарий

Десятки тысяч элементов требуют реальной производственной среды: документирования, управления конфигурацией (включая разные версии) и т.д.. Так что это уже не "игровые среды", а просто нормальный производственный софт. Что же касается Factorio и сотен и сотен crafts, то это неинтересно. Даже в StarCraft II то же самое: собери продвинутые юниты, для начала пройдя долгую эволюционную цепочку каких-нибудь простых зергов, идея крафтинга везде одна и та же. Это не симулятор конструктора/проектировщика. Вот http://www.cmu.edu/news/stories/archives/2017/june/diy-robot-design.html уже поинтересней, и с выходом в реальность. Но опять-таки полная бессмысленность с точки зрения возможной пользы для жизни, так что если называть это "учебным", то хотелось бы понимать, что именно после обучения этому можно делать в реальной жизни.

Ответ на комментарий

sbobrovsky · 1 июля 2017

Комментарий

Я об этом и спрашиваю -- как не надо делать, в принципе понятно, а вот как надо, чтобы было увлекательно и при этом переносились умения на реальную практику, совсем неясно:) Из десятков тысяч элементов, кстати, в той же Factorio, да и в Dwarf Fortress, люди делают очень сложные логические системы (на совсем "кривом" в плане программирования движке), буквально упарываются. То есть кол-во элементов не главная проблема наверное. Умные люди переносят свои мощные умения на бессмысленную игру, а не наоборот:) С другой стороны, а как научиться проектированию системы из сотен тысяч элементов, если не пробовать? Идеологически это представляется так: человек "что-то" работающее конструирует-конструирует, на некотором уровне сложности подсистемы слишком запутываются, а когда пытаешься рефакторить узкие места, начинает сильно сбоить вся система в целом. Ну как в том же StarCraft, когда если исходно базу плохо спроектировал, потом уже в разгаре процесса не исправить. Можно налепить подпорки из кучи палок, но всё равно дальнейшее усложнение/повышение эффективности уже не получится. К этому имеется некий достаточно прозрачный механизм иерархической композиции подсистем, чтобы к деталям не привязываться. И есть в этом тренажёре учебный курс. Человек сперва пытается выстроить сложную целевую систему с заданными возможностями с ходу, но рано или поздно натыкается на запутывание, ничего не выходит. Потом проходит этот обучающий курс, начинает проектировать более-менее правильно с самого начала, и как минимум продвигается уже заметно дальше в построении действующей системы. Не знаю как в классических инженерных проектах, но с программированием in large это прямая связь. Учится, наверное, некоему мета-проектированию -- то есть в частности, обучается получать непрерывный (в идеале) фидбек, успешно ли проектируется система, или нет. Этот мета-навык применить можно к любой ситуации с нарастающим запутыванием: после курса человек например должен существенно сильнее заиграть в StartCraft, так как уже будет осознавать, что это классическая модель запутывания сложности, какие его типовые ошибки (мета-ошибки) в проектировании базы и как их избегать. И мастерс-курс: когда мастера старкрафта в хорошо сбалансированной системе стабильно выигрывают за счёт micro-тактик, которые в инженерных проектах тоже можно выявлять по некоему паттерну + тренировка беглости.

Ответ на комментарий