мы на Хабре. Интересно подумать не как будут их воровать, а как сделать, чтобы воровство стало крайне бессмысленным — как, к примеру, кража денежных автоматов, которые могут стоять в самых мрачных и отдаленных районах, и тем не менее они стоят.
Для этого можно обратиться к опыту этих самых автоматов или даже к опыту Apple, который позволяет отследить и заблокировать телефон.
Можно обратиться к античит-системам в некоторых известных играх.
Вот рабочее решение из ММО — все идет через сервер. При попытке обмануть систему эккаунт блокируется, робот превращается в мертвое железо.
Да, теперь продайте его на запчасти. Но сначала ответьте — на запчасти для чего? ))
PS: в денежных терминалах также используется система сигнализации и удаленного контроля. Кроме того, в денежный сейф можно встроить штуку, уничтожающую деньги или заливающую их краской, что часто применяют в банкоматах.
там была главная проблема — 20-летнего играл 70-летний. Ну еще и технологию меняли
в «Ирландце» работала компания ILM, и это не столько омолаживание, сколько новая цифровая голова. Причем, когда делают такую, оригинальный актер обычно играет в «мокап» (сокращение от motion capture — захват движения) — то есть с маркерами на лице и в шлеме с камерой. И потом движение маркеров переносится на цифровую голову и становится источником для ее мимики.
Однако Роберт Де Ниро категорически отказался работать в шлеме и с маркерами. Поэтому специально для этого фильма команда ILM написала свою собственную программу, позволявшую «разбирать» мимику актера с отснятого материала без видимых маркеров (к слову, безмаркерный лицевой «мокап» уже существует, и даже в России — в студии CGF есть своя собственная разработка, так что это вполне возможно).
— Зачем понадобилось это делать? Для чего нужно было омоложение?
Надежда Маркалова: Это личное желание режиссера. Обычно, если в фильме нужно сыграть какого-то персонажа в молодости, нанимают молодого актера, более-менее похожего на оригинального, при необходимости делают ему грим, и он отыгрывает сцены, действие который разворачивается в прошлом. Так делали всегда, до изобретения методов омолаживания. Но впервые актер возраста 70 плюс играет 40-летнего. Если честно, это хорошо видно в его движениях, мне кажется, все-таки уместнее было бы использовать молодого дублера для тела. А не городить вот такой огород со старческими движениями и молодым лицом, и со старческой мимикой в некоторых сценах. Лица получились неплохо, а весь образ, на мой взгляд, — немного «монстр Франкенштейна».
Мамуд Шавершян делал это 10 лет, на него и писали жалобы, и скандалили, ну как обычно, вы в курсе, почему, но он продолжал это делать.
Это, конечно, не касается конкретно Google, но если идешь в благотворительность, надо понимать, что многие люди не будут говорить спасибо. И похоже, Шавершян осознанно нес этот крест до конца.
судя по описанию, это компиляторы исходного кода Twee
да, это удобно, если привык кодировать
а есть ли там инструмент визуального наблюдения за всеми узлами, как в Twine
Мне лично был интересен этот инструмент. Я программист, пишу на Java/JavaScript. Просто писать на Twee для себя не вижу смысла — все эти IF-движки в своей основе гипертекст с исполняемыми скриптами, что можно легко реализовать на HTML\JavaScript.
Собственно я и для Twine написал прежде всего свой формат со своими возможностями, потому что зачем мне учить twee, если он все равно меньше по возможностям, чем HTML\JavaScript.
по поводу npm — сначала надо установить node.js в системе
пишу на всякий случай, мало ли кто может читать дискуссию, а инструкция в репозитории это не описывает, так как рассчитана на кодеров
можно начать с github.com/Kvisaz/electron-iframe-dock — там подготовленный исходник, чтобы бросать в папку готовую игру и компилить. Потом можно доработать electron-часть под свои желания.
Привет, я писал на Twine игру, «Лорды проклятых земель» (в Стиме).
Проблемы с live reload можно решить, открывая в браузере исходный html истории. Они все лежат в папках вида
C:\Users\UserName\Documents\Twine\Stories
Открываешь .html оттуда в браузере — и F5, когда добавляешь узел.
В целом согласен, для небольших проектов годится. На сотнях узлов — нет, начинает тормозить и глючить. У меня было 900 узлов, тормозить начало на 500. Это происходит из-за того, что чуваки плохо сделали оптимизацию, навернули фронтендового программирования, не понимая всех последствий (на каждое нажатие клавиши — куча коллбэков, один из которых меняет className всего body документа, что приводит к перерисовке, что проявляется в тормозах, когда узлов становится очень много).
Хорошо, я понимал, что происходит, просто скачал исходники, разобрался и хакнул, отрубив тормоза. Так сумел закончить игру.
Но денег в IF на ПК нет, так что пришлось вернуться в программисты )
В 1997 году Президентом Индии был избран Кочерил Раман Нараянан, происходящий из касты неприкасаемых. Основным автором проекта Конституции Индии и её первым министром юстиции был Бхимрао Рамджи Амбедкар, тоже происходивший из касты неприкасаемых.
можно играть в танки и слушать подкаст
конечно, на быстрых танках это не так удобно, но вот на маусе, е100 — мммм, выехал, встал под углом и расслабился, спокойно слушаешь подкаст, пока пушка не перезарядится
А если человек уехал в отпуск, а кошечку кормить должен добрый сосед (соседка), у которого никогда не было опыта? Все эти отсылки к реальному миру только затуманивают абстракции.
Человек, уехавший в отпуск, оставляет инструкцию соседке — и она использует её. Назовем это стратегией.
У человека есть набор стратегий по обработке объектов. Эти стратегии могут меняться. Этими стратегиями можно обмениваться, потому что они сделаны — вот сюрприз! — как чистые функции, не зависящие от текущего владельца стратегии. Им максимум приходит абстрактный объект с интерфейсом «контекст текущего пользователя», если нужно позаимствовать какие-то особенности текущего контекста.
Стратегии — это мощный паттерн, делайте их! Если язык поддерживает standalone-функции — их часто можно делать чистыми функциями.
Но повторюсь, вот такие рассуждения о человеке-кошке только затуманивают суть )
Для этого можно обратиться к опыту этих самых автоматов или даже к опыту Apple, который позволяет отследить и заблокировать телефон.
Можно обратиться к античит-системам в некоторых известных играх.
Вот рабочее решение из ММО — все идет через сервер. При попытке обмануть систему эккаунт блокируется, робот превращается в мертвое железо.
Да, теперь продайте его на запчасти. Но сначала ответьте — на запчасти для чего? ))
PS: в денежных терминалах также используется система сигнализации и удаленного контроля. Кроме того, в денежный сейф можно встроить штуку, уничтожающую деньги или заливающую их краской, что часто применяют в банкоматах.
Мамуд Шавершян делал это 10 лет, на него и писали жалобы, и скандалили, ну как обычно, вы в курсе, почему, но он продолжал это делать.
Это, конечно, не касается конкретно Google, но если идешь в благотворительность, надо понимать, что многие люди не будут говорить спасибо. И похоже, Шавершян осознанно нес этот крест до конца.
да, это удобно, если привык кодировать
а есть ли там инструмент визуального наблюдения за всеми узлами, как в Twine
Мне лично был интересен этот инструмент. Я программист, пишу на Java/JavaScript. Просто писать на Twee для себя не вижу смысла — все эти IF-движки в своей основе гипертекст с исполняемыми скриптами, что можно легко реализовать на HTML\JavaScript.
Собственно я и для Twine написал прежде всего свой формат со своими возможностями, потому что зачем мне учить twee, если он все равно меньше по возможностям, чем HTML\JavaScript.
пишу на всякий случай, мало ли кто может читать дискуссию, а инструкция в репозитории это не описывает, так как рассчитана на кодеров
Завернул в Electron.js
можно начать с github.com/Kvisaz/electron-iframe-dock — там подготовленный исходник, чтобы бросать в папку готовую игру и компилить. Потом можно доработать electron-часть под свои желания.
Я уже несколько месяцев не писал на официальной версии, но раньше там был autosave.
И да, его исходники в userdocuments/Twine/Stories/ — практически ничем не отличаются от экспортированных файлов.
Проблемы с live reload можно решить, открывая в браузере исходный html истории. Они все лежат в папках вида
C:\Users\UserName\Documents\Twine\Stories
Открываешь .html оттуда в браузере — и F5, когда добавляешь узел.
В целом согласен, для небольших проектов годится. На сотнях узлов — нет, начинает тормозить и глючить. У меня было 900 узлов, тормозить начало на 500. Это происходит из-за того, что чуваки плохо сделали оптимизацию, навернули фронтендового программирования, не понимая всех последствий (на каждое нажатие клавиши — куча коллбэков, один из которых меняет className всего body документа, что приводит к перерисовке, что проявляется в тормозах, когда узлов становится очень много).
Хорошо, я понимал, что происходит, просто скачал исходники, разобрался и хакнул, отрубив тормоза. Так сумел закончить игру.
Но денег в IF на ПК нет, так что пришлось вернуться в программисты )
Разве исследование показало, что музыка (и какая именно музыка) вводит в состояние диссоциации?
Люди уже выше вспоминали про аудионаркотики. Я, наверно, что-то пропустил. Это действительно было работающей механикой?
все же можно надеяться на перемены к лучшему
конечно, на быстрых танках это не так удобно, но вот на маусе, е100 — мммм, выехал, встал под углом и расслабился, спокойно слушаешь подкаст, пока пушка не перезарядится
Рекомендую прием «банк стратегий»
Банк стратегий выносит многострочность кода из места применения в место определения. Можно оформить отдельной библиотекой. Можно спокойно расширять.
Я сам часто использую switch-case, но когда эта конструкция разрастается — рефакторинг в любом случае потребуется.
PS: чем еще мне не нравится switch… — в JS нельзя завести let, const внутри отдельного case.
Человек, уехавший в отпуск, оставляет инструкцию соседке — и она использует её. Назовем это стратегией.
У человека есть набор стратегий по обработке объектов. Эти стратегии могут меняться. Этими стратегиями можно обмениваться, потому что они сделаны — вот сюрприз! — как чистые функции, не зависящие от текущего владельца стратегии. Им максимум приходит абстрактный объект с интерфейсом «контекст текущего пользователя», если нужно позаимствовать какие-то особенности текущего контекста.
Стратегии — это мощный паттерн, делайте их! Если язык поддерживает standalone-функции — их часто можно делать чистыми функциями.
Но повторюсь, вот такие рассуждения о человеке-кошке только затуманивают суть )