Релиз
Лучшее время для релиза - это вечер пятницы. Никто не хочет работать в выходные, поэтому сделают все как надо и проверят все что нужно.
Лучшее время для релиза - это вечер пятницы. Никто не хочет работать в выходные, поэтому сделают все как надо и проверят все что нужно.
Когда речь о заходит об игре, в которую можно играть бесконечно, то первым делом вспоминается Sims 3 и Sims 4. Типичный симулятор жизни, который постоянно модернизируется как разработчиками, так и самими игроками в помощью модов.
Но что, если попробовать создать игру в жанре action-adventure с элементами survival horror и стелс-экшена, сюжет которой будет адаптироваться под каждого игрока? И, по сути, быть бесконечным? Возможно ли такое?
В теории, да, но создание такой игры потребует максимально слаженной работы между дизайнерами, разработчиками и специалистами по ML. Для начала, нужно определить основные компоненты, которые сделают игру адаптивной и бесконечной.
Технически, игра должна иметь систему, способную анализировать действия игрока и принимать решения о том, какие события и персонажи будут включены в сюжет. Для этого могут использоваться алгоритмы кластеризации для анализа стилей игры, алгоритмы рекомендаций для выбора событий и персонажей, и алгоритмы управления поведением для создания реалистичных реакций на действия игрока.
Кроме того, игра должна иметь динамическую систему генерации контента, которая может создавать новые задания, уровни и персонажей в реальном времени. И здесь среди первых выступают алгоритмы процедурной генерации контента, потому что они могут создавать разнообразные игровые элементы на основе определенных параметров и правил.
Вроде бы всё понятно, но…
Именно об этом и стоит думать в первую очередь. Проблемы могут быть разные, но вот, к чему точно нужно быть готовым:
Сложность в адаптивности. Нужно создать систему, чтобы каждый игрок чувствовал, что игра адаптирована под него. Например, чтобы события в игре менялись в зависимости от того, как он играет. Это сложно, потому что нужно придумать способ, как игра "понимает" игрока и реагирует на его действия.
Вообще такие подходы развиваются в геймдеве, но вряд ли это экономически выгодно для компаний…
Создание такой игры может быть дорогостоящим и затратным процессом. Компании могут оказаться не готовыми к финансовым рискам, связанным с разработкой инновационных игровых концепций, особенно если нет гарантии коммерческого успеха.
Управление контентом. Игра должна быть интересной и разнообразной для каждого игрока. Но создание большого количества уровней, персонажей и сюжетов требует много работы. Команда должна будет постоянно добавлять новый контент, чтобы игроки не скучали.
В этом плане на первый план выходит процедурная генерация контента. Вопрос в том, как это должно работать, чтобы сам контент получился интересным и логичным…
Процедурная генерация контента — это крутая штука, которая позволяет создавать игровой контент с помощью алгоритмов и компьютерных программ, а не вручную. Это означает, что уровни, миры, персонажи и другие элементы игры могут быть созданы динамически во время игры, а не заранее.
Когда вы играете в игру с процедурной генерацией контента, вы никогда не знаете, что вас ждет.
Разработчики должны создать сложные алгоритмы и системы, чтобы гарантировать, что сгенерированный контент будет интересным и логичным. Они должны учитывать различные аспекты игры, такие как структура уровней, характеристики персонажей и задачи игрока.
А это сложно и неоправданно дорого, потому что всегда найдутся те, кому не понравится ничего.
Да и тестирование такой игры будет сложнее. Потому что каждый игрок может испытать разный игровой опыт. Команда должна будет тестировать игру нереальное количество раз, чтобы убедиться, что все работает правильно для всех игроков.
Возможно ли это? Да, только если у вас в команде очень много людей.
Количество сотрудников, необходимых для тестирования игры за два месяца, зависит от масштаба проекта, его сложности и доступных ресурсов. В среднем, для тестирования игр такого уровня сложности требуется команда из нескольких десятков человек, включая тестировщиков, QA-инженеров, разработчиков и дизайнеров уровней. Кроме того, могут потребоваться менеджеры проекта, аналитики и другие специалисты для координации и анализа работы.
Важно также учитывать, что время, необходимое для тестирования, зависит от объема контента в игре, количества возможных путей прохождения и степени автоматизации тестирования. Чем больше игра и чем больше в ней вариативности, тем больше времени и ресурсов потребуется для тестирования.
Но что, если она бесконечная? Тогда это большая проблема.
Не будем забывать и о том, что игра должна работать на всех устройствах и не тормозить. Потянут ли её домашние компьютеры пользователей, у которых нет доступа к GPU серверам? Вряд ли.
И, наконец, чтобы игра могла адаптироваться к каждому игроку, нужно обучить модели понимать, как играют люди. А это потребует очень высокий порог знаний в области ML и примерно столько же времени, как и создание самой игры.
Но главный вопрос: оправдает ли такая игра всех усилий, что были вложены в её разработку?
Сложно сказать. В конечном итоге, оценка оправданности игры будет зависеть от конкретных результатов ее выхода на рынок, отзывов пользователей и финансовых показателей.
Если вы в поиске дополнительных источников заработка или хотите полностью уйти с найма, то найти клиентов вам поможет фриланс-биржа для программистов. Также данные платформы будут полезны, если вам необходимы услуги специалистов — тестировщиков, аналитиков, разработчиков и других.
Я рассмотрела множество предложений и совместно с командой Kursfinder отобрала лучшие фриланс биржи для программистов, чтобы вы не тратили свое время на поиски подходящей платформы.
1. Профи
Это платформа для системных администраторов, тестировщиков и аналитиков. В базе Profi.ru более 10 миллионов клиентов и 2,3 миллиона исполнителей. На сайте публикуются различные задания, такие как создание сайтов на WordPress, внедрение 1С, доработка сайтов на Bitrix и разработка мобильных приложений. Чтобы откликнуться на заказ, необходимо заплатить определенную сумму, которая зависит от категории услуги. Однако, если заказчик не просмотрел ваш отклик, деньги за него возвращаются на баланс. Комиссия варьируется от 0 до 400 рублей за заявку. Способ оплаты обсуждается с заказчиком.
Стоимость: от 500 рублей
Бесплатная версия: нет
Пробный период: нет
Способ оплаты: банковские карты, СБП, SberPay, наличные через терминалы оплаты, салоны связи или банкоматы Сбербанка
Пользовательский рейтинг: 4,9
Возможности:
Поиск заказчиков из разных сфер деятельности.
Размещение анкеты или объявление о поиске работы.
Связь с потенциальными клиентами и обсуждение условий сотрудничества.
Получение отзывов от клиентов после выполнения работы.
Возможность блокировки пользователей при нарушении правил сервиса.
Техническая поддержка.
Опция бесплатного подбора специалистов позволяет указать самые общие требования и в течение 15 минут получить звонок администратора для уточнения заказа и требований к работнику.
Преимущества:
большой выбор потенциальных клиентов;
установление собственной стоимости услуг и диапазона цен;
нет комиссии от стоимости заказов;
наличие абонементов.
Недостатки:
в некоторых случаях сервис не возвращает деньги за отклик.
2. Weblancer
На этой площадке заказчики также могут найти удаленных специалистов из большого количества областей — от разработки программного обеспечения и веб-дизайна до торговых, бухгалтерских и юридических услуг. Фрилансеры, в свою очередь, имеют возможность работать над интересными проектами, оставляя заявки к интересующим объявлениям. Количество пользователей — более миллиона. Такое большое число исполнителей и заказчиков говорит о популярности площадки и повышает шансы найти взаимовыгодное сотрудничество. Система рейтинга позволяет оценить профессионализм специалистов, изучив их портфолио, трудовой опыт и рекомендации.
Стоимость: от 1000 рублей
Бесплатная версия: да
Пробный период: нет
Способ оплаты: WebMoney, Яндекс.Деньги, банковская карта, Qiwi, PayPal.
Пользовательский рейтинг: 4,7
Возможности:
Регистрация возможна через социальные сети или через электронную почту.
Заказчик может выбрать один из трех типов заказов: проект, конкурс или вакансия.
Исполнители могут размещать свои работы на странице «Конкурсы» и ждать одобрения заказчика.
На сайте есть функция создания отчетов и реферальная программа для привлечения новых исполнителей и заказчиков.
Сайт принимает рубли, доллары США и гривны, а также работает на русском, английском и украинском языках.
Система отзывов и рейтингов.
Форум, на котором всегда можно найти поддержку более опытных коллег
Преимущества:
безопасная сделка;
качественная техподдержка пользователей;
маленькая комиссия — 5%.
Недостатки:
ограничения некоторых платежных систем.
3. Пчел.нет
Pchel.net — это платформа фриланса, позволяющая найти удаленную работу из любого уголка страны. Заказчики размещают на сайте тысячи вакансий и проектов. На сервисе представлено множество направлений: создание сайтов и их продвижение, маркетинг, копирайтинг, работа с анимацией, консалтинговые услуги, аутсорсинг и т. п. Функциональность платформы позволяет оставлять в закладках интересующие вакансии, переписываться с потенциальными работодателями. Действует рейтинговая система, позволяющая поднять предложение в ТОП и получить специальный тип аккаунта. На сайте зарегистрировано свыше 40 тысяч пользователей и размещено более 60 тысяч проектов. Оплата выполненной работы осуществляется в рамках самой платформы. И у заказчиков, и у исполнителей в системе открыт счет, который первые пополняют, чтобы перечислить деньги за выполненную задачу. На сайте есть опция «Инкубатор». Можно зарегистрироваться в проекте и помогать в работе профессионалам. Это позволит набраться опыта и пополнить портфолио.
Стоимость: от 5 долларов
Бесплатная версия: есть
Пробный период: нет
Способ оплаты: VISA, MasterCard, безналичные переводы через InterKassa и интернет-банк «Приват24», электронные кошельки Яндекс.Деньги и WebMoney
Пользовательский рейтинг: 4,5
Возможности:
Инструменты для контроля времени выполнения задач и другие бесплатные сервисы.
Есть система отзывов и рейтингов.
Возможность выбрать фрилансера по специализации.
Преимущества:
низкая комиссия — 4%;
большая база актуальных объявлений;
бесплатное использование основного функционала (поиск, связь, обсуждение задач);
удобный поиск по категориям и задачам;
инкубатор для новичков с возможностью присоединиться к опытным специалистам.
Недостатки:
в бесплатной версии есть лимит на количество откликов.
4. 1CLancer
1Clancer.ru — это фриланс-биржа для разработчика. Специалисты из стран СНГ могут найти заказы и побороться за возможность их выполнить, предложив лучшую цену за свои услуги. На сайте доступны задания разного типа: доработка конфигурации, обучение, создание нового функционала, настройка, исправление ошибок и пр. Итоговую стоимость может указать заказчик или исполнитель (в целом или за час работы). Клиент в свободной форме описывает, что именно нужно сделать, и подтверждает заявку по электронной почте.
Стоимость: от 1000 рублей
Бесплатная версия: есть
Пробный период: есть
Способ оплаты: банковская карта, Яндекс.Деньги, WebMoney
Пользовательский рейтинг: 4,7
Возможности:
На форуме можно обменяться опытом с коллегами или задать им вопрос.
В продаже имеются готовые технические решения, которые подходят для разных сфер бухгалтерского учета.
Настроена система рейтингов и отзывов.
Возможность собрать и хранить портфолио.
Возможность подать рекламу своих услуг внутри биржи, купить PRO-аккаунт или премиум-значок, который будет выделять исполнителя на фоне остальных.
Преимущества:
проведение занятий для начинающих программистов;
много заказов для специалистов любого уровня;
безопасная сделка;
качественная техническая поддержка.
Недостатки:
периодически возникают технические ошибки.
5. Хабр Фриланс
Сайт freelance.habr.com — это онлайн-площадка для фрилансеров и заказчиков, созданная на базе известного сайта Habr.com. Сервис был запущен в 2012 году и предназначен для поиска работы и исполнителей в различных областях, таких как IT, дизайн, маркетинг и другие. Из плюсов стоит отметить большое сообщество специалистов, с которыми можно общаться и развивать навыки, а также бесплатную услугу безопасной сделки для работника.
Стоимость: от 700 рублей
Бесплатная версия: нет
Пробный период: нет
Способ оплаты: Яндекс Деньги, Qiwi, PayPal, WebMoney, Альфа-Клик, Золотая корона
Пользовательский рейтинг: 4,8
Возможности:
Фрилансеры могут создать свое портфолио и резюме, чтобы продемонстрировать свои навыки и опыт потенциальным заказчикам.
Заказчики могут размещать свои проекты и вакансии на сайте, а фрилансеры могут просматривать их и подавать заявки на подходящие проекты.
Система рейтингов и отзывов.
Возможность обсуждения проекта напрямую с заказчиком для уточнения деталей и требований.
На сайте есть форум с различными статьями и обсуждениями.
Можно добавить дополнительный профиль — фрилансера или заказчика.
Для клиента есть возможность разместить заказ бесплатно.
На сайте доступна обратная связь для пожеланий и конструктивной критики.
Преимущества:
безопасная сделка;
быстрые ответы службы поддержки;
удобный поиск заказов;
удобный интерфейс.
Недостатки:
высокая конкуренция;
платные отклики.
6. freten.ru
Это платформа для фрилансеров, где пользователи могут найти заказы в различных областях, таких как тексты, графика, разработка, SEO и программирование. На сайте также есть своя программа для проверки текстов на уникальность и сервис для размещения готовых статей на продажу. Также на Freten.ru можно общаться с заказчиками и обсуждать детали проектов. Новым пользователям предоставляется возможность выполнить тестовое задание из той сферы, где они планируют работать. Если пройти его успешно, то фрилансер попадает в «Белый лист» и обращений заказчиков станет больше. Ежедневно публикуются десятки заказов.
Стоимость: от 350 рублей
Бесплатная версия: есть
Пробный период: есть
Способ оплаты: банковская карта, Яндекс Деньги, Qiwi, WebMoney, безналичный расчет
Пользовательский рейтинг: 4,8
Возможности:
Разнообразие категорий услуг.
Рейтинг фрилансера, а также отзывы, оставленные другими пользователями, помогут в правильном выборе.
Оплата осуществляется напрямую, без посредников.
Преимущества:
отсутствие комиссий;
рассылка заказов на электронную почту и в мессенджер;
удобство регистрации и авторизации;
быстрая работа службы поддержки;
есть бесплатная версия и пробный период;
подходит для специалистов разного профиля;
доступно как для физических, так и для юридических лиц.
Недостатки:
платные отклики.
7. Fiverr
Это израильская онлайн-площадка для предоставления услуг фрилансеров, которая была основана в 2010 году. Клиенты размещают заказы, получают предложения от фрилансеров и выбирают подходящее. Сайт пользуется популярностью среди заказчиков и исполнителей. На площадке представлены услуги в разных сферах: графический дизайн, копирайтинг, программирование, SEO-продвижение, перевод и видеомонтаж.
Стоимость: от 5 долларов
Бесплатная версия: есть
Пробный период: нет
Способ оплаты: PayPal, Apple Pay, Google Pay, онлайн-банкинг (например, iDEAL, GiroPay), Sofortbanking (для пользователей из Австрии, Германии и Бельгии)
Пользовательский рейтинг: 4,7
Возможности:
Создание аккаунтов для продавцов и покупателей.
Регистрация и настройка профилей.
Создание предложений с описанием услуг, цен и сроков.
Использование ключевых слов для улучшения видимости в поиске.
Система отзывов и рейтингов.
Исполнитель и клиент могут общаться в конфиденциальном чате, личные данные и платежные реквизиты скрыты от посторонних глаз.
Трехуровневая иерархия исполнителей.
Перед сотрудничеством можно проанализировать информацию об исполнителе: рейтинг, отзывы, количество выполненных работ, количество продаж, описание профиля и ссылки на социальные сети.
Преимущества:
удобная платформа как для клиентов, так и для заказчиков;
подходит для новичков и профессионалов;
фрилансеры могут свободно выбирать проекты и устанавливать свои цены;
заморозка платежа и списание средств только после подтверждения выполненной работы.
Недостатки:
сайт доступен только на английском языке.
Я также привела примеры дополнительных бирж заказов для программистов, чтобы вы точно нашли подходящий варианты и подробно ознакомились с ними.
work-zilla.com — это площадка для фрилансеров, где заказчики предлагают работу, а исполнители ее выполняют. На сайте можно найти работу в разных сферах, таких как копирайтинг, разработка, программирование, веб-дизайн и маркетинг. Чтобы использовать платформу, нужно зарегистрироваться в качестве исполнителя или заказчика. Для работников доступны 4 типа подписки: бесплатная, «Стандарт», «Профи» и «Премиум». Первый вариант позволяет просматривать доступные задания, но не дает возможности подавать заявки. Остальные типы подписки предоставляют доступ к большему количеству заданий и возможностям для успешного поиска работы. Для заказчиков сайт предлагает инструменты для создания вакансий и управления проектами. Они могут выбирать исполнителей, устанавливать сроки выполнения работ и контролировать процесс выполнения заданий. Это удобная платформа для фрилансеров, позволяющая находить заказы в разных сферах деятельности.
Профессионалы 4.0 — это онлайн-платформа, созданная для объединения талантливых специалистов и компаний, которые хотят реализовать проекты в гибких командах. Проект был запущен «Газпром нефть» совместно с АНО «Россия — страна возможностей». Платформа позволяет быстро находить и привлекать нужных специалистов, объединять их в команды, достигать поставленных целей и корректно завершать сотрудничество. Особенность Professionals 4.0 заключается в том, что она подходит для людей, предпочитающих работать по краткосрочным контрактам, удаленно или в проектном формате. Это делает площадку удобной для фрилансеров и тех, кто хочет совмещать основную занятость с проектной работой. На платформе зарегистрировано более 25 000 специалистов из различных областей, таких как IT, финансы, маркетинг и аналитика.
Skipp — это биржа заказов для программистов, которая помогает компаниям находить разработчиков для своих проектов. На площадке представлены опытные работники, продуктовые дизайнеры и аналитики. Сайт использует автоматизированные инструменты для подбора кандидатов, что упрощает процесс найма и сокращает время, затрачиваемое на поиск подходящих специалистов. Как это происходит: Skipp проводит HR-скрининг потенциального работника, оценивает soft skills и проводит интервью с тимлидом для проверки технических навыков исполнителей. Платформа также гарантирует качество предоставляемых услуг. В базе сейчас зарегистрировано более 5000 русскоязычных соискателей. В числе постоянных клиентов Skipp такие крупные компании, как Ozon, Skyeng, X5 Retail Group и другие.
Freelance.ru ранее известный как Free-lance.ru) — это сервис для поиска удаленной работы и сотрудников в России и СНГ. Он был запущен в мае 2005 года и является крупнейшей площадкой в стране. На сайте представлены вакансии, проекты и исполнители. Сайт предлагает платные услуги и премодерацию для исключения мошенничества при оплате. На платформе можно разместить и найти задания для большого количества специализаций. Среди категорий — IT и программирование, 3D-моделирование и графика, копирайтинг, графический дизайн, менеджмент, видео, продвижение и SEO и множество других вариантов. Для каждого взятого в работу заказа создается отдельная рабочая область. В ней можно отслеживать прогресс выполнения, обмениваться сообщениями между исполнителем и заказчиком, отправлять файлы, принимать или отклонять правки и т. д. На сайте также действует взаимная система рейтинга: заказчики и исполнители могут оставлять отзывы и комментарии о совместной работе, оценивать качество сотрудничества.
Workio.club — это агрегатор заказов с крупнейших площадок фриланса, таких как FL, Freelance.ru, Kwork и Freelance.habr. На сайте можно фильтровать задачи по стоимости, категории и ключевым словам. Workio.club помогает мониторить все заказы в одном месте и упрощает поиск работы для начинающих фрилансеров. С помощью Workio можно вести архив рабочих часов, который может быть полезен для будущих ссылок, оценок или целей биллинга.
Фриланс-биржи для программистов предоставляют специалистам возможность находить разнообразные заказы и сотрудничать с клиентами из разных стран. Регистрация на таких платформах помогает разработчикам совершенствовать свои навыки, приобретать опыт и расширять клиентскую базу. Это отличный вариант для специалистов, которые хотят начать работать удаленно.
Всем привет, работаю java разработчиком 10 лет, хотел бы показать разницу между императивным и декларативным подходом на примере синтетической задачи по обработке списка чисел.
Императивный подход описывает последовательность действий с использованием конструкций языка - то есть позволяет описывать алгоритмы любой сложности. Декларативный подход описывает ожидаемый результат - а на практике состоит в написании кода, который интерпретируется дальше фреймворком.
Задан список чисел, на примере:
List<Integer> input = List.of(1, 2, 3, 4, 5);
Нужно найти сумму квадратов чётных чисел - значений элементов массива. Чётные числа это такие числа, которые делятся нацело на 2, то есть остаток от деления числа на два равен нулю. Чётные числа здесь 2 и 4. Их квадраты это 4 и 16. Искомая сумма 4 + 16 = 20.
Чтобы записать алгоритм в императивном подходе, потребуется объявить переменную-аккумулятор, которая будет содержать сумму, её начальное значение будет 0. Далее пройтись по всем элементам списка, для четных их них посчитать квадрат, и добавить его к текущему значению суммы:
int sumEven = 0;
for (Integer x : input) { //пройти по всем элементам
__ if (x % 2 == 0) { //для четных
____ sumEven += x * x; //посчитать квадрат и добавить к сумме
__ }
}
assertEquals(sumEven, 20);
Декларативный подход можно показать на примере использования апи java.util.stream. Последовательно указываются инструкции для фильтрации, преобразования и аккумуляции результата:
int sumEven = input.stream()
__ .filter(x -> x % 2 == 0)
__ .map(x -> x * x)
__ .reduce(0, Integer::sum);
assertEquals(sumEven, 20);
Декларативный подход более емкий, так как оперирует конструкциями высокого уровня, но менее гибкий. Его удобно использовать при решении стандартных задач. Желаю всем успехов в изучении программирования.
В мире умных домов часто приходится выбирать между удобством и функционалом. Раздумывая над тем, каким может быть идеальный умный дом, мы пришли к идее MajorDom — системе, которая стремится изменить этот баланс и упростить быт без жертв. В этом посте поделимся нашим видением и некоторыми основными принципами новой экосистемы, включая приватность, автономность и широкую поддержку устройств.
automate smart — not hard (MajorDom)
В этой статье мы не будем вдаваться во все подробности технических деталей, реализаций и протоколов, а сосредоточимся на более общем, абстрактном, пользовательском описании системы, иначе статья выйдет слишком длинной, но мы обязательно вернемся ко всем деталям позже
Сегодня существует много разных гаджетов для дома: светильники, шторы, обогреватели, пылесосы, датчика безопасности и микроклимата. Они созданы для того, чтобы облегчить жизнь, но не всё так однозначно.
Раньше каждое устройство имело свой протокол управления, свои стандарты, свои методы безопасности и каждому из них нужно было отдельное приложение или пульт. Чем больше устройств в доме, тем больше времени нужно посвятить управлению ими, что превращается в новую рутину. Это похоже на жонглирование слишком большим количеством мячей.
Приложения для домашних гаджетов
Системы "умного" дома (или домашней автоматизации) должны были решить эту проблему, но до идеала им еще далеко. Есть два типа таких систем: проприетарные от цифровых корпораций и народные с открытым кодом. К сожалению, и у тех, и у тех есть минусы. Предлагаю составить график, в котором по оси x будет легкость использования сложной к простой, а по оси y - умность и функциональность системы.
График: легкость использования к умности системы
Окажется, что все проприетарные системы находятся где-то в центре-внизу. Они дают некоторый функционал, с которым может справиться обычный человек, потратив какое-то время на изучение. Чаще всего эти системы являются закрытыми и поддерживают только свой ограниченный список устройств в своем специальном приложении. Их функциональность сводится к замене физического выключателя кнопкой в телефоне или простыми голосовыми командами. Иногда встречаются элементарные автоматизации, точнее скрипты, которые нужно писать вручную.
В то же время они слишком зависят от облачных решений. Сбой сервера, изменения в политике, новые регуляции или простое отсутствие интернета означают отключение умного дома.
Но, что хуже всего, самые популярные системы принадлежат рекламным или маркетплейсным гигантам, зарабатывающим на продаже персональных данных пользователей. Это основа их бизнес-модели, из-за чего они не могут измениться, поэтому о доверии и приватности здесь не может быть и речи.
Осьминог монополии (отсылка к "standard oil octopus")
Тем, кто хочет больше возможностей или не хочет слежки, приходится переходить на открытые решения и платить за это сложностью настройки и установки. Это область выше и левее центра, но часто это того стоит. Открытые системы предлагают больше свободы, возможности интеграции с любыми устройствами и протоколами благодаря плагинам, неограниченные кастомизации и полный контроль. Единственное, это задачка для технарей, желающих проводить вечера за изучением форумов и разработкой. Точно так же некоторым нравится проводить часы в гараже перебирая все детали машины. Я не говорю, что это плохо, ведь у каждого есть свои хобби, но большинство людей хочет автомобиль, чтобы просто на нем ездить. Конечно, вы можете нанять профессионала, который займется всеми устройствами и безопасностью, потратив на это целое состояние. Но что, если вы не хотите ни нанимать профессионала, ни становиться им самостоятельно?
Мы хотим сделать систему, которая займет правый верхний угол: будет работать прямо из коробки, поддерживать широкий спектр устройств, надежно хранить данные пользователей, при этом будет умнее и функциональнее остальных.
График: легкость использования к умности системы (мажордом)
Поговорим о том, как устроены экосистемы умного дома и чем они отличаются от систем домашней автоматизации. Все начинается с устройств, напрямую управляющих домом: лампы, реле, модули с мотором. Это первый "физический" уровень. Вторым уровнем пусть будет интерфейс "application layer". Свяжем их через wifi или bluetooth.
Экосистема умного дома: приложение и устройство
Но представим, что у нас несколько устройств, у каждого по своему приложению. Выглядит не очень удобно, да?
Экосистема умного дома: несколько приложений и устройств
Теперь переведем устройства на более энергоэффективные радиопротоколы. Но как подключить их к смартфону? Добавим посредника в виде хаба, у которого с одной стороны радиомодуль, а с другой - тот же wifi. В качестве бонуса подключим к хабу все устройства того же производителя. Теперь в приложении может быть несколько устройств, но только одного бренда. Так выглядят закрытые "экосистемы". Каждая использует свои протоколы и стандарты, так что они не совместимы между собой.
Закрытые экосистемы умного дома с хабом
Но, что хуже, далеко не все приложения умеют общаться с хабом напрямую в пределах локальной сети (LAN) и используют сервер даже когда вы находитесь дома. Это тот случай, когда отключение интернета означает полный блэкаут, а наличие интернета - возможность удаленного управления домом из облака (доверяете ли вы облаку компании, зарабатывающей на продаже ваших персональных данных, но не заботящейся об их сохранности?).
Закрытые экосистемы умного дома с хабом и облаком
Чтобы это исправить, заменим проприетарный хаб на raspberry pi с какой-нибудь open source системой домашней автоматизации, а также добавим плагины для интеграции устройств. Это позволяет объединить все устройства в одну систему, например, чтобы программировать общие автоматизации или продвинутые сценарии. Уже лучше, но пропала одна мелочь под названием интерфейс.
Универсальный open source хаб умного дома
К счастью, некоторые open source решения идут комплектом с вебным фронтендом или даже мобильным приложением (но не всегда с user-friendly интерфейсом). Добавив еще пару плагинов, мы можем пробросить часть устройств (или все, если очень повезет) в приложение какой-то из экосистем. В таком случае хаб выступает посредником или адаптером для устройств сторонних производителей. Но теперь мы зависимы от этой экосистемы и получаем те проблемы, о которых шла речь в начале статьи. В качестве альтернативы, мы можем подключить другой плагин с кастомным облаком, но это уже становится или слишком сложно, или все еще недостаточно безопасно.
Универсальный open source хаб умного дома c инфраструктурой экосистем
Хочу заметить, что не всегда проприетарный хаб можно полностью заменить на кастомный. Часто вам понадобится иметь оба хаба (проприетарный и кастомный), чтобы система поддерживала оригинальные приложения и устройства. В итоге это может превратиться в запутанный клубок технологий.
Универсальный open source хаб умного дома c инфраструктурой экосистем (сложности)
Кстати, этот пример мне кое-что напоминает:
Нестабильная цифровая инфраструктура
Итак, у нас есть 4 уровня: устройства, хаб (автоматизации, программное управление), сервера, интерфейс (приложения, голосовые ассистенты, итд). Экосистема — это все 4 уровня и их связь, а не какой-то один. Чтобы все работало идеально, мы делаем не просто один из уровней, например, систему автоматизации на уровне хаба. Мы делаем все три верхних уровня: приложение, голосовой ассистент, облако и хаб с максимальной поддержкой устройств других производителей, таким образом получая максимальную совместимость и интеграцию всей системы из коробки: автономную, приватную, независимую и безопасную. Это - МажорДом.
Архитектура экосистемы умного дома MajorDom
В фундаменте своей работы мы закладываем следующие принципы:
Полная приватность личных данных — дом не место для чужих глаз. Конфиденциальность — базовое право каждого пользователя.
Автономность — максимальная независимость от внешнего мира, отключенный интернет не должен стать проблемой
Легкость настройки и использования — технологии должны служить человеку, а не наоборот
Максимальная поддержка разных устройств, протоколов и интеграций - в дополнение к предыдущему пункту
Никаких искусственных ограничений — не быть эпл и дать возможность глубокой настройки и кастомизации тем, кому это нужно
Итак, мы собираемся заново изобрести умный дом. По нашему мнению, настоящий умный дом состоит из невидимой армии устройств, которые работают автономно в фоновом режиме, улучшая вашу повседневную жизнь и прикрывая вашу спину. По сути это цифровой дворецкий.
Настоящий умный дом должен быть независимым от внешнего мира. Никаких сбоев из-за отказа интернета или случайного сервера. Это полностью автономная экосистема, которой больше ничего не требуется: ни интернета, ни облачных сервисов, ни даже человека.
В то же время система должна быть простой в использовании. Никаких долгих установок и настроек. Отсутствие периодического изменения настроек. Никакого написания кода. Просто достать из коробки и включить. Технологии должны работать на вас, помните?
Но как нам это сделать? Прежде всего, системе нужно имя. Мы выбрали для неё название MajorDom, которое отлично отражает её сущность. (от англ. majordomo — мажордом, дворецкий, управляющий домом)
Пока остальные системы представляют собой черные ящики, мы считаем, что MajorDom должен иметь открытый исходный код, чтобы не было никаких скрытых манипуляций, любой человек мог открыть его, прочитать, выделить проблемы, предложить изменения или даже внести свой вклад.
Хотя исходный код общедоступен, данные пользователя защищены как никогда раньше. Чтобы сделать систему приватной и автономной, большая часть данных хранится локально на устройствах, в основном хабе. Это гарантирует конфиденциальность, а поскольку все данные хранятся локально, автоматизация и все остальные функции прекрасно работают даже при отсутствии интернета в отличие от систем, которые всегда полагаются на подключение к серверу, поскольку все данные хранятся где-то в интернете.
Но в некоторых случаях данные необходимо передавать через интернет, например, с помощью удаленного управления, когда вы не дома. В этом случае данные надежно шифруются (end-to-end), а ключи хранятся только на физических устройствах пользователя. Это означает, что вы всегда можете получить удаленный доступ к своему дому, но только вы и никто другой, включая админов и разработчиков.
Конечно, прежде чем настраивать автоматизации, в доме нужны устройства. Zigbee Alliance, переименованный в Connectivity Standards Alliance или CSA, — это объединение различных компаний, занимающихся умным домом, которые решили создать универсальный протокол связи для всех устройств домашней автоматизации. Они назвали этот протокол Matter. И MajorDom с ним совместим. Это означает, что вы можете добавить любое совместимое с Matter устройство в свою систему MajorDom. И это еще не все.
matter протокол
Matter изначально поддерживает только самые распространенные базовые устройства, поэтому мы создали протокол связи Merlin. Благодаря более гибкой архитектуре он не только существенно расширяет список поддерживаемых устройств, но и делает его бесконечным.
Мерлин протокол
В то же время мы понимаем, что сегодня только малая часть уже выпущенных устройств поддерживает один из этих протоколов, поэтому мы также собираемся добавить интеграции устройств, использующих zigbee, z-wave, wifi и BLE, таким образом став самой универсальной экосистемой.
Умная комната с устройствами на разных протоколах в системе MajorDom
Мобильное приложение MajorDom на фоне хаба
Мы наконец-то собрали в одном месте все устройства, но как с ними общаться? Для этого мы разработали красивое мобильное приложение, доступное практически на всех платформах, включая устройства Android — телефоны, планшеты и часы, а также устройства Apple — iPhone, iPad, Mac, Apple Watch, Apple TV, CarPlay и даже новый шлем Vision Pro. Приложения так же включают виджеты, которые можно разместить на домашнем экране, экране блокировки или в любом другом месте, поддерживаемом операционной системой, что позволит управлять домом даже не запуская приложение.
Платформы, поддерживаемые мобильным приложением MajorDom
По-настоящему умный дом большую часть времени должен работать автономно, в фоновом режиме, чтобы вы этого даже не замечали. Но как мы собираемся это автоматизировать, если никто не хочет писать скрипты?
Вместо этого:
Скрипты для автоматизаций умного дома
Для автоматизации мы добавили в приложение вторую вкладку, которая поможет легко настроить любой сценарий. Но это было слишком просто и мы пошли дальше.
Приложение MajorDom: вкладка автоматизаций
Чтобы еще больше упростить этот процесс, мы изобрели технологию умных предложений, которая предсказывает, что вы хотите автоматизировать. Иногда она настолько умна, что даже не требует помощи пользователя. Например, вы можете просто добавить все устройства и начать использовать их, не добавляя никакой автоматизации или сценария. Через некоторое время эта технология предложит сцены и автоматизацию на основе ваших привычек. Вы даже можете разрешить ей добавлять сцены и автоматизации без подтверждения, полностью в фоновом режиме. Настоящие умные автоматизации.
Автоматизация — это хорошо для ежедневной рутины, но иногда требуется более индивидуальный подход. Арчи в этом профессионал. В отличие от других "ассистентов", он понимает вас с высокой точностью, знает контекст, улавливает по несколько сложных запросов за сообщение и общается так, будто вы разговариваете с настоящим помощником, а не просто диктуете голосовые команды!
Умная колонка MajoDom Audio с голосовым ассистентом Арчи.
Перевод:
— Арчи, проверь мое расписание
— У вас встреча с командой разработки в 3 часа и планы на ужин в 7. Также, не забудьте, что сегодня день рождения у вашей мамы. У вас есть достаточно времени на звонок между 4 и 6 часами вечера
Арчи предназначен не только для контроля дома, но и для каждого аспекта повседневной жизни, от управления заметками до предоставления общей информации и голосовых уведомлений.
Как настоящий профессиональный мажордом, Арчи говорит на многих языках. Он может одновременно слушать до трех заранее выбранных языков и отвечать на соответствующем.
Арчи унаследовал все основные ценности MajorDom: конфиденциальность, автономность, простота в использовании и настоящая умность. Он может работать офлайн, но интернет расширяет его возможности до неограниченного диапазона, а благодаря использованию крупных языковых моделей, навыки этого ассистента ближе к настоящему искусственному интеллекту, чем когда-либо прежде в истории человечества.
Демонстрация голосового ассистента Арчи в мобильном приложении MajorDom на фоне умной колонки MajorDom Audio и хаба MajorDom Hub.
"Люди, серьезные на счет софта, должны делать своё железо" — эта цитата особенно актуальна для умного дома. Это единственный способ обеспечить беспроблемную интеграцию множества протоколов из коробки. То же самое касается ассистента: не каждая платформа потянет офлайн распознавание, обработку и синтез речи. К тому же, полностью доверять ему можно только тогда, когда знаешь, что на устройстве нет постороннего ПО с доступом к микрофону. Вот почему мы разрабатываем два собственных устройства: хаб MajorDom Hub для управления устройствами, автоматизацией и порталом в экосистему — это как руки дома. И колонка MajorDom Audio для голосового ассистента — уши и голос дома.
Умная колонка MajorDom Audio и хаб MajorDom Hub
Мы хотим максимально упростить интеграцию идей пользователей — будь то аппаратное или программное обеспечение. С этой целью мы спроектировали два основных инструмента, позволяющих каждому внести свой вклад.
«Idea Forge» (Кузница идей)
Во-первых, при разработке MajorDom мы создали «Idea Forge» (Кузницу идей). Эта платформа превращает предложения пользователей в реальные фичи. Любой желающий может предоставить идеи через форму на сайте. Необязательно быть программистом; достаточно одной светлой мысли. Эти предложения затем появляются на доске голосования сообщества, что позволяет каждому влиять на процесс разработки. Демократия в действии. Самые популярные идеи рассматриваются к реализации командой MajorDom. Речь идет не только о пользователях; речь идет о превращении пользователей в создателей.
Но это не просто игра в ожидание. Если вы любите приключения или просто не можете дождаться, вы можете засучить рукава и написать любую фичу самостоятельно.
Во-вторых, мы максимально упрощаем работу для всех разработчиков. Разрабатываем модульную прошивку хаба с поддержкой плагинов и удобные библиотеки с подробной документацией.
На данный момент проект находится в стадии активной разработки, но большая часть упомянутого уже реализована, включая ядро системы, интеграции некоторых протоколов, удаленное управление, автоматизации, офлайн часть Арчи и мобильное приложение. Дальнейшие новости будем публиковать здесь, но так же рекомендую подписаться на соответствующие страницы проекта в социальных сетях. Записаться на ранний доступ можно на сайте majordom.io в один клик.
Проект является довольно сложным и масштабным, а качественный результат требует много часов работы профессиональных инженеров, программистов и дизайнеров. В современном капиталистическом мире только коммерческая разработка может гарантировать стабильный результат.
В будущем проект будет опубликован на кикстартер — платформу краудфандинга, на которой можно будет оформить самые ранние предзаказы устройств, но поддержать проект финансово можно уже сейчас на patreon или buymeacoffee.
В нашей команде уже есть дизайнеры, инженеры софта для фронта, бэка, мобильных приложений, хаба и голосового ассистента. В то же время мы ищем промышленных дизайнеров, embedded инженеров для железа, а так же программистов, разбирающихся в низкоуровневых деталях популярных протоколов в сфере умного дома. Если вы занимаетесь чем-то другим, но хотите присоединиться к проекту, пишите свои предложения, будем рады всем.
Мы также рассматриваем получение инвестиций от $50k pre-seed раунда за долю компании. Говоря о цифрах, текущий рынок умного дома оценивается в 100 миллиардов долларов США, с прогнозируемым ростом до 600 миллиардов в 2033 году. Похоже на отличную возможность вложения.
Telegram: t.me/MarkParker5
Email: mark@parker-programs.com
Автор текста: dlinyj
Совсем недавно появилась следующая новость: На GitHub опубликован исходный код MS-DOS 4.00 под лицензией MIT. Раз появились исходные коды, стало сразу интересно: а можно ли собрать эту операционную систему?
Задача оказалась нетривиальной и совсем неочевидной. Оказывается, что исходные файлы DOS не так-то уж и легко переносятся в git, и уж как минимум, не как текстовые файлы в кодировке UTF-8. Но, к счастью, в отличие от утечек исходников MS-DOS 6.0, здесь имеется полный комплект файлов и инструментов, достаточный для корректной сборки и тестирования. Остались сущие нюансы, которые попили много крови.
Поэтому я, как и многие — начал свои эксперименты по сборке MS-DOS 4.0, с исправлением ошибок, а также возможностью исследования исходных кодов и тестирования их на реальном железе.
В статье же изложено краткое руководство по сборке и созданию загрузочной дискетки.
Собирать всё буду в Linux Mint (читай Ubuntu). Средой DOS для сборки выбрал dosbox, к сожалению, это не самый лучший вариант, потому что там идёт замедление частоты (чтобы старые программы корректно работали), поэтому сборка идёт достаточно долго. Лучше всего использовать любой удобный DOS, запущенный в виртуальной машине.
Для создания загрузочной дискеты и тестирования полученной сборки буду задействовать виртуальную машину qemu. А чтобы получить дискеты с готовым образом, я буду использовать установочную дискету MS-DOS 4.0 (найденную тут см. 4.00 OEM [Sampo]).
Прежде чем пойдём дальше — важное замечание:
Никаких чужих прав задеть не собираюсь, все модификации кода были сделаны исключительно в юмористических целях, и не подлежат распространению. Модифицированные исходники удалены.
Проблемы две:
Некорректная инициализация переменных среды (в самом bat-файле SETENV.BAT содержится ошибки или опечатки).
Проблемы с кодировкой при переносе кода с дискеток DOS в GIT с кодировкой UTF-8.
Первая проблема легко исправляется даже самостоятельно, при беглом анализе исходного кода. Она легко вскрывается при сборке, дальше просто необходимо внести правки, либо создать свой обновлённый bat-файл, который будет инициализировать переменные среды окружения.
Значительно сложнее обстоят дела с тем, что в части кода, при переносе в UTF-8, побились некоторые символы. У меня была попытка сборки, которую я описывал у себя в ЖЖ, и, в конце концов, я получил вот это:
Это достаточно частая и болезненная проблема со старыми исходниками времён DOS. С аналогичной задачей я столкнулся и при попытке собрать программу RAM View. Об этом пути и исправлении проблемы, я подробно написал в статье Правка чужого кода.
Здесь же мы исключим ручной труд и автоматизируем исправление проблем с кодировками.
Итак, шаги по сборке ДОС. Клонируем оригинальный репозиторий:
git clone https://github.com/microsoft/MS-DOS.git
Исправляем проблемы с кодировками:
sed -i -re 's/\xEF\xBF\xBD|\xC4\xBF|\xC4\xB4/#/g' MS-DOS/v4.0/src/MAPPER/GETMSG.ASM
sed -i -re 's/\xEF\xBF\xBD|\xC4\xBF|\xC4\xB4/#/g' MS-DOS/v4.0/src/SELECT/SELECT2.ASM
sed -i -re 's/\xEF\xBF\xBD|\xC4\xBF|\xC4\xB4/#/g' MS-DOS/v4.0/src/SELECT/USA.INF
Переходим в рабочую папку:
cd MS-DOS/v4.0
Перекодируем все текстовые файлы в формат MS-DOS:
find -iname '*.bat' -o -iname '*.asm' -o -iname '*.skl' -o -iname 'zero.dat' -o -iname 'locscr' | xargs unix2dos -f
find -iname '*.BAT' -o -iname '*.ASM' -o -iname '*.SKL' -o -iname 'ZERO.DAT' -o -iname 'LOCSCR' | xargs unix2dos -f
и создаём там обновлённый бат-файл для переменных среды окружения, следующего содержания:
$ cat src/e.bat
@Echo off
echo setting up system to build the MS-DOS 4.01 SOURCE BAK...
set CL=
set LINK=
set MASM=
set COUNTRY=usa-ms
set BAKROOT=e:
rem BAKROOT points to the home drive/directory of the sources.
set LIB=%BAKROOT%\src\tools\bld\lib
set INIT=%BAKROOT%\src\tools
set INCLUDE=%BAKROOT%\src\tools\bld\inc
set PATH=%BAKROOT%\src\tools;%PATH%
В принципе этих операций достаточно для сборки, а то что ниже — это лично моё хулиганство, чтобы продемонстрировать, что DOS в действительности собрался, и нет подмены файлов. Я заменяю компанию Microsoft своим ником:
find -name "*.ASM" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.INC" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.H" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.MAC" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.MSG" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.C" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.CLB" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.SKL" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
Всё, теперь исходники подготовлены, для того чтобы их можно было корректно собрать.
Собирать буду в dosbox, как показала практика — это не самое лучшее решение, сборка занимает около часа, что, мягко скажем, раздражает.
Запускаю dosbox:
dosbox
Далее в нём монтирую текущую директорию как диск E.
mount e: ./
И переходим на диск e, запускаем в dosbox бат-файл, который инициализирует среду окружения, и начинаем сборку:
e:
cd SRC
e.bat
и запускаем сборку командой nmake:
Если вы делаете это в dosbox, то можно пойти погулять. Окончанием сборки будет выглядеть следующим образом:
После этого надо скопировать все собранные файлы в один каталог. Создаём каталог «4» в корне диска и копируем все бинарники специальным скриптом:
mkdir \4
CPY.BAT \4
Далее самое интересное:проверка того, что файлы запускаются. Для этого надо сделать так, чтобы dosbox прикидывался старым ДОСом. Выполняем следующую команду:
ver set 4.0
После переходим в каталог\4и можно выполнить в нёмcommand.com:
Хулиганство сработало, ДОС собрался и прикидывается, будто бы я его разработал. Дело стало за малым — протестировать это на реальном железе.
Дальше я думал просто примонтировать в dosbox пустой образ дискетки, и прямо из собранных файлов выполнить перенос системных файлов командой:
sys <path> a:
Но, факир был пьян, и фокус не удался. Поэтому решил MBR (Master Boot Record) позаимствовать с загрузочной дискетки DOS 4.0. К сожалению, MBR от MS-DOS 6.22 у меня не заработал.
Скачиваем установочные дискетки, попутно создаём пустую дискетку командой:
truncate --size 1474560 fdd.img
Загружаемся с установочной дискетки и ставим наш пустой образ 1,44 МБ дискетки в дисковод B, с помощью qemu:
qemu-system-i386 -fda Disk01.img -fdb fdd.img
Отменяем установку и форматируем дискету с переносом системных файлов:
По окончании можно закрывать окно qemu. Возвращаемся к окну с dosbox и монтируем полученный образ дискетки, с помощью следующей команды:
imgmount a: <path to fdd.img> -t floppy
И потом просто вручную переносим файлы COMMAND.COM, IO.SYS и MSDOS.SYS на дискету:
Всё, образ готов. Можно его протестировать в виртуальной машине, или даже записать на настоящую дискету и загрузиться!
Для запуска в qemu следует использовать следующую команду:
qemu-system-i386 -fda fdd.img
Записать на дискетку можно командой dd, я использую USB-FDD дисковод.
sudo dd if=fdd.img of=/dev/sdk status=progress
И, да! Эта система успешно работает на реальном железе. В данном случае проверка идёт на 386 компьютере.
Запуск свежесобранного MS-DOS 4.0 на реальном железе
Не буду лукавить, сборка MS-DOS 4.0 оказалась не столь простой. Пришлось посмотреть некоторые видео, пошерстить различные репозитории. Но всё же это прекрасный опыт, который позволяет заглянуть внутрь исторических исходников и покопаться в них.
Давняя утечка MS-DOS 6.0 была неполной, и собрать его не представлялось возможным. А теперь у исследователей есть готовый инструментарий, для того чтобы попрактиковаться в разработки каких-то своих модулей старой операционной системы.
Конечно же, я по-настоящему жду, когда же обнародуют исходники MS-DOS 6.22, так как ещё надеюсь увидеть их на своём веку.
Удачи вам в ваших экспериментах!
Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные статьи.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.
Я знаю, что никто не читает длинные описания, поэтому постараюсь изложить суть без лишней воды.
Логлайн:
Группа людей, которые никак друг с другом не связаны, неизвестным образом внезапно оказываются в странной кубической комнате, каждая грань которой снабжена люком, ведущим в другую такую же комнату. Единственная разница между комнатами – это их цвет и наличие разнообразных смертоносных ловушек.
Для начала кадр из фильма для тех, кто не смотрел или не помнит:
Как это выглядит в игре:
Уже было несколько попыток сделать подобную игру: одна недоделана, а вторая мало что имеет общего с оригинальной идеей. Мне тоже пришлось отойти от строгого следования канону. Отчасти из-за геймдизайна, отчасти из-за технических трудностей.
Итак, сводная информация об игре:
Куб, как и в фильме, размером 26x26x26 комнат
Комнаты по 5 метров вместо оригинальных 4.3
Комнаты не перемещаются
Ничего считать не надо. Просто идете по координатам до нулевой комнаты
Последние два пункта сделаны в угоду геймдизайну. Ни один игрок не будет вникать в математику фильма (тем более она там с ошибками) и сидеть высчитывать куда надо идти.
Перемещаться можно как в верхние комнаты, так и в нижние
Нельзя открыть все двери.
При открытии двери все остальные двери автоматически закрываются. Сделано это ради оптимизации. Используется всего две комнаты (видео в самом низу). При открытии двери комнаты другая комната перемещается в нужное место и конфигурируется согласно сгенерированным данным. Плюс есть небольшой геймдизайнерский момент: не получиться быстро проскакивать комнаты с ловушками, вылетая из одного шлюза и влетая в другой, получая при этом минимальный урон.
Можно вывалиться из крайних комнат за пределы куба.
Исключение - верхние крайние комнаты. Двери на потолках у таких комнат не открываются.
Мультиплеера нет.
Во-первых, мне лень писать для этого код,. Во-вторых, я не представляю как бы я делал анимацию перемещения по стенам и шлюзам. Выходит слишком геморно. Подозреваю, что во втором проекте создатели отказались от любого вертикального перемещения именно по этой причине.
Зато есть четыре условных персонажа, за которых можно играть: математик, инженер, полицейский и доктор.
У каждого персонажа свои характеристики. Кратко опишу некоторые особенности персонажей:
Математик. Ему чаще других попадаются подсказки, указывающие направление к более безопасному пути (об этом чуть позже), но он получает наибольший урон от ловушек.
Инженер. Может давать подсказки о ловушках. Также он быстрее всех открывает двери.
Полицейский. Имеет регенерацию, получает из квартета наименьший урон, быстро передвигается.
Доктор. Регенерирует быстрее полицейского, отсутствует побочные эффекты от некоторых ловушек (например, двоение в глазах от газа), самый медленный из всех.
Вся вариация происходит по девяти параметрам.
После смерти персонажа игрок выбирает другого и начинает с последней безопасной комнаты.
Кидать ботинки (и не только) можно, но шнурков, чтобы их обратно вытянуть, нет.
Придется смириться с потерей или идти подбирать на свой страх и риск.
В игре существуют следующие предметы: ботинки, фломастер, аптечка, противогаз и трупы, у которых это все можно забрать.
В оригинале никаких противогазов и тем более аптечек не было, но с ними есть хоть какое-то разнообразие и помощь в прохождении. Возможно, в будущем добавлю уровни сложности, где этих предметов не будет.
Да, с фломастером можно рисовать на стенах.
Каждый предмет может получать урон от ловушек.
У ловушек есть четыре вида сенсоров, реагирующих на следующее: давление на пол, обнаружение объектов, скорость передвижения и уровень шума.
Можно с шумом грохнуться с высоты и получить шилом в жопу. Дайте знать, если нафантазируете еще какие-либо принципы работы.
Придумывать ловушки оказалось труднее, чем я думал. Если у кого-то есть идеи, то можете написать в комментах.
На старте игры генерируется рандомный путь к нулевой комнате. Комнаты на этом пути имеют пониженную вероятность нахождения в них ловушки (зеленый цвет). Ближе к нулю более опасные ловушки начинают встречаться чаще. Чем дальше игрок удаляется от этого пути, тем чаще будут появляться подсказки, указывающие направление к этому пути (стрелки на дверных панелях).
Со стороны выглядит это как-то так:
Замечания приветствуются.