• Выжить в лобовом столкновении, и почему амнезия это не то, что вы думаете

      Привет Хабр.

      Не так давно я попала в автокатастрофу, и на своём личном опыте испытала, что такое переломанные кости, тяжёлая черепно-мозговая травма и потеря памяти. В статье я также хочу поговорить о заблуждениях о симптоме амнезии в современной массовой культуре. Область довольно запутанная и противоречивая, но мне всё же захотелось структурировать известные данные и поделиться личным опытом.
      Читать дальше →
    • Создание игры Tower Defense в Unity, часть 1

      • Перевод

      Поле


      • Создание тайлового поля.
      • Поиск путей с помощью поиска в ширину.
      • Реализация поддержки пустых и конечных тайлов, а также тайлов стен.
      • Редактирование контента в режиме игры.
      • Опциональное отображение сетки поля и путей.

      Это первая часть серии туториалов, посвящённых созданию простой игры в жанре tower defense. В этой части мы рассмотрим создание игрового поля, поиск пути и размещение конечных тайлов и стен.

      Туториал создавался в Unity 2018.3.0f2.


      Поле, готовое к использованию в тайловой игре жанра tower defense.

      Игра жанра Tower Defense


      Tower defense — это жанр, в которой целью игрока является уничтожение толп врагов, пока они не добрались до своей конечной точки. Игрок выполняет свою цель, строя башни, которые атакуют врагов. У этого жанра очень много вариаций. Мы будем создавать игру с тайловым полем. Враги будут двигаться по полю в сторону своей конечной точки, а игрок будет создавать им препятствия.
      Читать дальше →
    • Создание игры Tower Defense в Unity: башни и стрельба по врагам

      • Перевод
      • Tutorial
      [Первая и вторая части туториала]

      • Размещаем на поле башни.
      • Целимся во врагов при помощи физики.
      • Отслеживаем их, пока это возможно.
      • Стреляем в них лазерным лучом.

      Это третья часть серии туториалов о создании простой игры жанра tower defense. В ней рассмотрено создание башен, прицеливание и стрельба во врагов.

      Туториал создавался в Unity 2018.3.0f2.


      Зададим врагам жару.

      Создание башни


      Стены только замедляют врагов, увеличивая длину пути, который им нужно пройти. Но цель игры — уничтожить врагов, прежде чем они доберутся до конечной точки. Эта задача решается размещением на поле башен, которые будут по ним стрелять.
      Читать дальше →
    • Курс Молодого Геймдизайнера: как считать баланс персонажей и снаряжения без математики



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

        В первую очередь надо разбираться в самих играх, а потом уже уметь что-то считать. Поэтому я расскажу о работе с балансом без использования математики — на палках урона посмотрим, как уравновесить силу оружия, чем танк отличается от разбойника, и как точки спавна влияют на винрейт.

        Статья будет полезна тем, кому надо заняться балансом, но не знает с чего начать, а также начинающим геймдизайнерам, которые будут выбирать специализацию. Ну и всем, кто просто интересуется, чем занимаются ГД, когда не придумывают новые виды лутбоксов.
        Читать дальше →
      • Автоматизация для самых маленьких. Часть нулевая. Планирование

        • Tutorial
        СДСМ закончился, а бесконтрольное желание писать — осталось.



        Долгие годы наш брат страдал от выполнения рутинной работы, скрещивал пальцы перед коммитом и недосыпал из-за ночных ролбэков.
        Но тёмным временам приходит конец.

        Этой статьёй я начну серию о том, как мне видится автоматизация.
        По ходу дела разберёмся с этапами автоматизации, хранением переменных, формализацией дизайна, с RestAPI, NETCONF, YANG, YDK и будем очень много программировать.
        Мне означает, что а) это не объективная истина, б) не безоговорочно лучший подход в) мой взгляд даже в ходе движения от первой к последней статье может поменяться — честно говоря, от стадии черновика до публикации я переписывал всё полностью дважды.

        Читать дальше →
      • Как разработать ещё один платформер с помощью Unity. Ещё один туториал

        Привет, Хабр!


        Под катом вас ждёт ещё одна статья, которая расскажет о том, как я поставил себе цель запрограммировать игру, основываясь на переводе статьи на Хабр под названием Паттерны дизайна уровней для 2D-игр.


        Статья имеет много текста (как обычного, так и исходного) и много картинок.

        Читать дальше →
      • Как я делал социальную сеть в 2019


        В этой статье я расскажу, как делал свой проект социальной сети для сферы искусства havidea.ru от идеи до релиза. Расскажу о технической части, о мотивации и самоорганизации, какими инструментами пользуюсь в процессе разработки, о проблемах в работе со сферой искусства, с которыми я столкнулся почти сразу после запуска. Проект пережил реинкарнацию, т.е. был первый вариант, который я забросил и финальный, второй, который ушел в релиз.
        Читать дальше →
      • Пентест-лаборатория «Pentestit Test lab 12» — полное прохождение

        image

        Каждый год компания Pentestit запускает новую лабораторию для тестирования на проникновение «Test Lab», и данная статья будет посвящена прохождению 12-ой лаборатории, получившей название «z 9r347 39u411z3r» или если раскодировать — «The great equalizer».

        Disclaimer
        Данная статья не носит рекомендательный характер, а лишь описывает шаги, которые я предпринял для прохождения лаборатории. Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.

        Подключение к лаборатории


        Подключение к лаборатории происходит через VPN-соединение (так как я проходил лабораторию на машине под управлением ОС Linux, то все действия будут описаны именно для этой платформы). Для того чтобы попасть в частную сеть, необходимо выполнить следующие шаги:

        1. Зарегистрироваться здесь.
        2. Сохранить конфигурационный файлы отсюда.
        3. Зайти в настройки сети и выбрать «добавить VPN».
        4. Импортировать из файла (указываем скачанный файл с конфигурациями).
        5. Указать логин и пароль для подключения (даны на вкладке «how to connect»).
        6. Подключаемся к VPN и пингуем шлюз 192.168.101.1. Если пинг проходит, то вы успешно подключились к лаборатории.

        Поиск цели


        Нам доступна сеть 192.168.101.X с маской 255.255.255.0. Первым делом необходимо найти «живые хосты» в сети. Сделать это легко можно с помощью утилиты nmap:
        nmap -sn 192.168.101.0/24
        Используемые параметры nmap
        -sn – определить «живые хосты»
        ip/mask – адрес сети / маска

        image
        Читать дальше →
        • +14
        • 6,7k
        • 2
      • Haxe и PHP: статическая типизация, стрелочные функции, метапрограммирование и многое другое

          Привет, Хабр! Предлагаю вашему вниманию перевод доклада Александра Кузьменко с прошедшей недавно (14-15 июня) конференции Hong Kong Open Source Conference 2019.


          image


          До того, как присоединиться к Haxe Foundation в качестве разработчика компилятора Haxe, Александр около 10 лет профессионально занимался программированием на PHP, так что он знает предмет доклада.

          Читать дальше →
        • Генерируем тайловые уровни и прячем квадраты от игрока

          • Перевод

          Генерация уровней в Unexplored 2


          Мы очень гордимся генератором уровней игры Unexplored 2, это программа, отвечающая всем современным требованиям. В посте я расскажу о том, как создаются уровни игры.

          Нам не пришлось заново изобретать велосипед. В Unexplored 1 мы уже создали техники, которые сильно повлияли на успех первой игры. Unexplored 2 просто продолжила начатое. Фундамент нашей технологии состоит из двух частей: мы применяем многоэтапную генерацию, которая почти имитирует процесс, очень похожий на работу живого дизайнера уровней. Поверх него мы используем технику под названием "циклическая генерация подземелий", которая гораздо лучше справляется с генерацией естественно выглядящих уровней, чем большинство стандартных приложений генеративного создания контента. В этом посте я расскажу о первом аспекте. Адаптация циклической генерации подземелий к Unexplored 2 будет темой будущего поста.

          Имитация «человеческого» дизайна уровней


          Генератор уровней разбивает процесс генерации уровня на целое множество управляемых этапов. Он проходит путь от высокоуровневого планирования до низкоуровневой детальной карты уровня. По сути, он сначала создаёт набросок уровня, а затем начинает добавлять детали, пока уровень не станет завершённым и заполненным.
          Читать дальше →
          • +50
          • 9,5k
          • 7
        • Несколько полезных советов для тех, кто решил изучать английский самостоятельно

          Человеку, который никогда толком не изучал английский язык, может быть очень тяжело как морально, так и умственно основательно приступить к изучению языка. Ещё сложнее это может показаться делать самостоятельно. Кажется, что следовало заниматься всем этим в детстве. Потому что сейчас уже просто нет для этого ни сил, ни времени. Потому что английский язык это очень-очень много информации, а мозг маленький. Это нормальное чувство, хотя оно и обманчиво.

          image


          Предыстория


          Кому-то в школьные годы английский давался легко. Другим же, в том числе и мне, английский казался жутко сложным и учить его казалось невозможным. Я себя чувствовал просто отчаянно тупым, когда сидел на уроках английского и что-то мямлил, пытаясь ответить на вопросы учителей. А потом родителям приходилось оплачивать дополнительные уроки по английскому, чтобы меня не оставляли на второй год. И на этих уроках я точно так же сидел и ничего не понимал.
          Читать дальше →
        • Чем искать уязвимости веб-приложений: сравниваем восемь популярных сканеров

            Сканеры веб-приложений — довольно популярная сегодня категория софта. Есть платные сканеры, есть бесплатные. У каждого из них свой набор параметров и уязвимостей, возможных для обнаружения. Некоторые ограничиваются только теми, что публикуются в OWASP Top Ten (Open Web Application Security Project), некоторые идут в своем black-box тестировании гораздо дальше.



            В этом посте мы собрали восемь популярных сканеров, рассмотрели их подробнее и попробовали в деле. В качестве тренировочных мишеней выбрали независимые точки на двух платформах (.NET и php): premium.pgabank.com и php.testsparker.com.
            Читать дальше →
          • Логирование в распределенном php-приложении

            • Tutorial


            В статье пойдет речь о том, какую пользу оказывает логирование. Расскажу о логах по PSR. Добавлю немного личных рекомендаций по работе с уровнем, сообщением и контекстом логируемого события. Будет приведен пример, как можно организовать логирование и мониторинг с помощью ELK в приложении, написанном на Laravel и запущенном через Docker на нескольких инстансах. Распишу важное правило системы оповещения. Приведу пример скрипта, который поднимает одной командой весь стек мониторинга.

            Читать дальше →
          • Стажёр Вася и его истории об идемпотентности API

              Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе.


              Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


              image

              Читать дальше →
            • Как создать приложение для сферы финансов: 5 API в помощь разработчику



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

                Для нового топика я подобрал пять API различных финансовых сервисов, которые позволяют как получать самые разные данные, так и непосредственно вести торговлю на бирже с помощью написанных роботов.
                Читать дальше →
              • Фантастика и фентези за два с половиной года, почти сто хороших книг

                На этот пост меня подтолкнула публикация «Почему я ворую книги, бедные авторы, и как это исправить», а именно — скепсис и возражения на мой комментарий о том, что я не читаю плохие книги. Мне предложили рассказать, как я выбираю книги для чтения и что именно читаю. Ну я и повелся.
                Оформить список было сравнительно просто, FBReader любезно хранил на GoogleDrive все скачанные книги с того момента, как там появилась эта услуга. Предлагаю вашему вниманию список прочитанного мной за 2,5 года из жанров фентези и фантастики.
                Читать дальше →
              • Курс о Deep Learning на пальцах

                  Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

                  Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

                  Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


                  Читать дальше →
                • Что записано в this? Закулисье JavaScript-объектов

                  • Перевод
                  JavaScript — это мультипарадигменный язык, поддерживающий объектно-ориентированное программирование и динамическую привязку методов — мощную концепцию, которая позволяет структуре JavaScript-кода меняться во время выполнения программы. Это даёт разработчикам серьёзные возможности, это делает язык гибким, но за всё надо платить. В данном случае платить приходится понятностью кода. Серьёзный вклад в эту цену вносит ключевое слово this, вокруг особенностей поведения которого собрано много такого, что способно запутать программиста.


                  Читать дальше →
                  • +26
                  • 14k
                  • 8
                • Тёмные времена наступают

                  • Перевод

                  Или о чем следует помнить при разработке тёмного режима приложения или сайта


                  2018 год показал: тёмные режимы на подходе. Теперь, когда мы уже на полпути в 2019, мы можем с уверенностью сказать: они здесь, и они везде.


                  Пример старого монитора «зеленым-по-чёрному»

                  Начнем с того, что тёмный режим — это совсем не новая концепция. Его используют уже достаточно давно. А когда-то на самом деле давно только его и использовали: мониторы были вида «зеленым-по-чёрному», но только потому, что люминесцентное покрытие внутри излучало зеленоватое свечение при воздействии на него излучения.


                  Но даже после внедрения цветных мониторов тёмный режим продолжал жить. Почему же так?

                  Читать дальше →
                • Продумываем персонажей игр и диалоги по советам писателей и на примере сторонников теории плоской Земли

                  • Перевод
                  Как человек, который в качестве хобби начал делать свою первую игру без всякого опыта программирования, постоянно читаю разные туториалы и гайды по геймдеву. А как человек из PR и журналистики, который часто работает с текстом, хочу сценарий и персонажей, а не просто геймплейные механики. Будем считать, что перевел эту статью для себя, как напоминание, но хорошо, если кому-то тоже зайдет.

                  А еще там разбирается характер персонажей на примере сторонников теории плоской Земли.


                  Сценарий фильма «Апокалипсис сегодня» (1979) по мотивам книги Джозефа Конрада «Сердце тьмы» (1899)
                  Читать дальше →
                  • +47
                  • 9,1k
                  • 6