• Введение в новую систему тайловых карт Unity

    • Перевод

    Знакомство с систему двухмерных тайловых карт Unity даёт отличную возможность экономии времени инди-разработчиков и игровых студий на прототипирование и создание качественных 2D-игр.

    Без этой системы можно потратить дни, если не недели на написание собственной системы тайловых карт или переработку чужой. И это только программирование, а как насчёт редактора тайловых карт?

    Новая система бесплатна и встроена непосредственно в редактор Unity. Она предоставляет множество возможностей, которые мы рассмотрим в этом туториале.

    В этой статье мы воспользуемся простой тайловой 2D-игрой, чтобы узнать следующее:

    • Как работают тайловые карты.
    • Как включать тайловые карты в Unity и настраивать сетку.
    • Как добавлять в проект спрайты, преобразовывать их в тайлы, а затем добавлять их в палитру тайлов.
    • Как использовать инструменты редактора тайлов для создания уровней.
    • Как сортировать тайлы и размещать их в разных слоях.
    • Как добавить тайлам физику Unity.
    • Как динамически окрашивать тайлы.
    • Как изменять тайлы-префабы с помощью собственного кода и логики.
    • Как добавлять в проект собственные расширения и скрипты тайловых карт.
    Читать дальше →
  • Как облегчить себе жизнь при использовании Git (а также подборка материалов для глубокого погружения)

    • Перевод

    Tree of Dragons II by surrealistguitarist

    Для тех, кто каждый день использует Git, но чувствует себя неуверенно, команда Mail.ru Cloud Solutions перевела статью фронтенд-разработчика Шейна Хадсона. Здесь вы найдете несколько трюков и советов, которые могут немного облегчить работу с Git, а также подборку статей и мануалов более продвинутого уровня.
    Читать дальше →
  • Машинное обучение в Unity: учим МО-агентов перепрыгивать через стены

    • Перевод
    За последние несколько лет в обучении с подкреплением (reinforcement learning, RL) произошли серьезные прорывы: от первого успешного его использования в обучении по сырым пикселям до обучения Open AI роборуки, ― и для дальнейшего прогресса становятся необходимы все более сложные среды, в чем на помощь приходит Unity.

    Инструмент Unity ML-Agents ― это новый плагин в игровом движке Unity, позволяющий использовать Unity как конструктор среды для обучения МО-агентов.

    От игры в футбол до ходьбы, прыжков со стен и обучения ИИ собаки игре с палкой, Unity ML-Agents Toolkit предоставляет широкий спектр условий для тренировки агентов.

    В этой статье мы рассмотрим, как работают МО-агенты Unity, а затем научим одного из таких агентов перепрыгивать через стены.

    image

    Читать дальше →
    • +28
    • 7,3k
    • 4
  • 10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

    • Перевод

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


    Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.


    image


    А я его перевел, т.к. показалось, что пост многим будет интересен. Перевод очень вольный: я опустил нерелевантные промо-ссылки и гипер эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, перейдем к списку.
    Читать дальше →
    • +62
    • 76,4k
    • 8
  • 5 инструментов геймдизайнера, которые помогут вашей игре

    • Перевод


    Видеоигры существуют более 50 лет. За это время технологии скакнули от текстовой The Oregon Trail до фотореалистичной Red Dead Redemption 2. Не говоря уже о VR-тайтлах вроде Half-Life: Alyx, которая выходит в конце марта.

    И все же, игровая индустрии еще очень молодая. Постоянно появляются новые способы и инструменты, которые помогают изучать и улучшать геймдизайн. О пяти из таких — в переводе под катом.
    Читать дальше →
    • +34
    • 11,5k
    • 5
  • Создание roguelike в Unity с нуля

    • Перевод
    image

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

    Примечание: я не утверждаю, что это единственный способ создания roguelike в Unity. Он просто один из. Вероятно, не самый лучший и эффективный, я учился путём проб и ошибок. А некоторые вещи я буду изучать прямо в процессе создания туториала.

    Будем считать, что вы знаете по крайней мере основы Unity, например, как создать префаб или скрипт, и тому подобное. Не ждите, что я буду учить вас, как создавать спрайтшиты, об этом есть множество прекрасных туториалов. Я буду делать упор не на изучение движка, а на то, как реализовать игру, которую мы будем создавать вместе. Если у вас возникнут трудности, то зайдите в одно из потрясающих сообществ в Discord и просите о помощи:

    Unity Developer Community

    Roguelikes

    Итак, давайте приступим!

    Этап 0 — планирование


    Да, всё верно. Первое, что нужно создать — это план. Вам хорошо будет спланировать игру, а мне — спланировать туториал, чтобы спустя время мы не отвлеклись от темы. В функциях игры легко запутаться, прямо как в подземельях roguelike.

    Мы будем писать roguelike. В основном мы будем слушаться мудрых советов разработчика Cogmind Джоша Ге, приведённых здесь. Сходите по ссылке, прочитайте пост или посмотрите видео, а потом возвращайтесь.

    Какова же цель этого туториала? Получить крепкую простую базовую roguelike, с которой потом можно будет экспериментировать. В ней должна быть генерация подземелий, движущийся по карте игрок, туман видимости, враги и предметы. Только самое необходимое. Итак, игрок должен иметь возможность спускаться вниз по лестницам на несколько этажей. допустим, на пять, повышать свой уровень, совершенствоваться, а в конце сражаться с боссом и побеждать его. Или умирать. Вот, собственно, и всё.
    Читать дальше →
    • +7
    • 9,8k
    • 3
  • Create ML в iOS



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

    Но прежде чем начать, немного истории и пояснений. На ежегодной конференции для разработчиков WWDC2018 компания Apple представила инструменты для работы с машинным обучением Create ML. Обученная в Create ML модель является результатом применения алгоритма машинного обучения для набора обучающих данных. Модели не занимают много места (около 3Мб), поэтому их можно хранить в проекте. Изначально модели предлагалось обучать с помощью Playgrounds в XCode 10 и поддерживалась работа с изображениями, текстом и таблицами. При запуске playgrounds проекта необходимо было импортировать библиотеку CreateML и запустить MLImageClassifierBuilder (в случае если бы мы обучали модель для классификации изображений).

    import CreateMLUI
    
    let builder = MLImageClassifierBuilder()
    builder.showInLineView()
    

    В 2019 году Apple представила совершенно новый инструмент для работы с моделями машинного обучения, отделив его от Playgrounds. Стало возможным обучать модели без единой строчки кода. Список типов данных пополнился звуками и активностью. Всего представлено 5 типов данных и 9 шаблонов моделей. Давайте рассмотрим каждый тип данных и какие модели мы можем получить в результате.
    Читать дальше →
    • +15
    • 3,7k
    • 4
  • Редактор кода Visual Studio Code. Самый подробный гайд по настройке и установке плагинов для начинающих

    • Tutorial
    Бесплатный, мощный, очень популярный, с кучей дополнений, да что там говорить, сам Фейсбук выбрал его в качестве основного редактора!


    Сегодня речь пойдет о редакторе кода Visual Studio Code или просто VS Code. Мы с тобой его установим, настроим, а также применим плагины, которые существенно упростят нам работу.
    Читать дальше →
  • Bloody hell, или Как ругаться на английском, чтобы тебя приняли за культурного человека

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

      Но есть ситуации, когда без «крепкого словца» не обойтись. И чтобы не потерять свой имидж культурного человека, мы предлагаем вам целую коллекцию «mild curses» — легких ругательств и идиоматических выражений на английском языке, которые не считаются матами, но при этом помогут выразить всю палитру эмоций. Поехали!


      Читать дальше →
    • Планирование потоков в Windows. Часть 1 из 4

        Ниже представлена не простая расшифровка доклада с семинара CLRium, а переработанная версия для книги .NET Platform Architecture. Той её части, что относится к потокам.



        Потоки и планирование потоков


        Что такое поток? Давайте дадим краткое определение. По своей сути поток это:


        • Средство параллельного относительно других потоков исполнения кода;
        • Имеющего общий доступ ко всем ресурсам процесса.

        Очень часто часто слышишь такое мнение, что потоки в .NET — они какие-то абсолютно свои. И наши .NET потоки являются чем-то более облегчённым чем есть в Windows. Но на самом деле потоки в .NET являются самыми обычными потоками Windows (хоть Windows thread id и скрыто так, что сложно достать). И если Вас удивляет, почему я буду рассказывать не-.NET вещи в хабе .NET, скажу вам так: если нет понимания этого уровня, можно забыть о хорошем понимании того, как и почему именно так работает код. Почему мы должны ставить volatile, использовать Interlocked и SpinWait. Дальше обычного lock дело не уйдёт. И очень даже зря.


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


        Задача процессора — просто исполнять код. Поэтому с точки зрения процессора есть только один поток: последовательное исполнение команд. А задача операционной системы каким-либо образом менять поток т.о. чтобы эмулировать несколько потоков.

        Читать дальше →
      • Deadlock Empire — игра для разработчиков


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

          Встречайте: Deadlock Empire!

          Суть игры — управление планировкой потоков, код которых приведен в заданиях. Управлять нужно так, чтобы добиться ошибочной ситуации: взаимблокировки, повторных значений счетчиков, достижения определенных участков кода и прочих непредвиденных ситуаций, которые нужно осознавать при разработке многопоточных приложений.
          Читать дальше →
          • +24
          • 11,6k
          • 5
        • Реализация шаблона «Состояние» в Unity

          • Перевод
          image

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

          Но если вы решите применить способ грубого перебора, то код быстро превратится в запутанный хаос со множеством вложенных операторов if-else.

          Для изящного решения этой задачи можно воспользоваться шаблоном проектирования «Состояние» (State design pattern). Ему-то мы и посвятим этот туториал!

          Из туториала вы:

          • Научитесь основам шаблона «Состояние» в Unity.
          • Узнаете, что такое конечный автомат, и когда его использовать.
          • Узнаете, как использовать эти концепции для управления движением персонажа.

          Примечание: этот туториал предназначен для опытных пользователей; предполагается, что вы уже умеете работать в Unity и обладаете средним уровнем знаний C#. Кроме того, в этом туториале используется Unity 2019.2 и C# 7.
          Читать дальше →
        • Какие английские слова IT-лексикона мы неправильно произносим чаще всего

            Пока пара новых статей на технические темы еще в процессе написания, я решил опубликовать небольшой лингвистический материал. Достаточно часто замечаю, что коллеги, у которых английский язык — не родной, неправильно произносят некоторые характерные для IT сферы слова. И дело здесь не в том, насколько аутентично произносятся отдельные звуки, а именно в транскрипции. Регулярно встречал ситуации при общении с носителями, когда неправильно произносимое слово приводило к недопониманиям.

            Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
            Читать дальше →
          • 10 признаков того, что хороший программист из вас не получится

            Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Signs You Will Suck at Programming» автора Jonathan Bluks.



            Очень часто на Reddit или Quora я вижу вопросы вида «Как понять, смогу ли я стать успешным программистом?» (На самом деле, эта статья является расширенным продолжением моего недавнего ответа на Quora.) Когда кто-то задумывается о смене карьеры или интересуется разработкой и хочет знать, что для этого требуется, неизбежно возникает этот самый вопрос.

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

            Будучи преподавателем на курсе «Full-stack Web-development», я работал со многими программистами-новичками. Хорошая новость в том, что мне редко встречались студенты, которые вообще не могли научиться программировать. Я считаю, что умение программировать — такой же базовый навык, как умение читать, писать и считать. Это под силу любому, так как это одна из способностей человека, но этому действительно надо учиться.

            За два года преподавания, я наблюдал мучения студентов в процессе обучения и видел у них несколько схожих проблем. Если вы взглянете на их список и почувствуете, что это все про вас, можете быть уверены — хороший программист из вас точно не получится и, возможно, вам стоит заняться чем-то другим. Однако, если вы останетесь верны своей цели стать разработчиком, вы сможете преодолеть все препятствия.

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



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

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

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

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


              Читать дальше →
            • Сортировка «Американский флаг»


                Чтобы понять принцип действия этой «многополосной» сортировки проще для начала разобраться на примере флага с тремя полосами. А чтобы легко разобраться с трёхцветным флагом, лучше сначала посмотреть, как это работает на примере двухцветного. А чтобы разобраться с двухцветным...
                Траффик
                • +28
                • 12,1k
                • 3
              • Пять привычек, которые помогут сохранить эффективность работы мозга

                • Перевод


                Тренируйте мозг, изменяйте нейронные связи


                Наш мозг на удивление динамичен и постоянно меняется. Он умеет приспосабливаться, лечиться, обновляться и изменять нейронные связи.

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

                Эксперименты по нейропластичности (это способность мозга изменяться в ответ на получаемый опыт) показали, что мозг умеет меняться — изменяя свою структуру, биохимию, увеличиваясь и уменьшаясь в размерах.

                Можно ли физически изменить мозг — в любом возрасте? Да, но в определенных пределах. И начать можно с того, о чем я сейчас расскажу.

                Переведено в Alconost
                Читать дальше →
              • Чему я научился за 10 лет на Stack Overflow

                • Перевод

                Близится десятая годовщина моего присутствия на Stack Overflow. За эти годы мой подход к использованию сайта и его восприятие сильно изменилось, и я хочу поделиться с вами своим опытом. И пишу я об этом с точки зрения среднестатистического пользователя, который не сильно вовлечён в жизнь сообщества сайта или его культуру. В последние дни я отвечаю лишь на вопросы, относящиеся к VS Code — продукту, над которым я работаю. Однако раньше я активно участвовал в обсуждении широкого набора тем. За 10 лет я задал около 50 вопросов и дал 575 ответов, просмотрел несметное количество чужих комментариев.

                Джон Скит описал культуру Stack Overflow гораздо лучше и авторитетнее, чем я когда-либо смогу сделать. Его публикация повлияла на некоторые главы этой статьи, хотя в целом это мои собственные откровенные размышления о моём опыте пребывания на Stack Overflow, что на этом сайте хорошо и что плохо, и как его можно сегодня использовать. Это обсуждение будет довольно поверхностным, без глубокого погружения в работу сайта или его историю.

                Итак, вот чему я научился за 10 лет использования Stack Overflow.
                Читать дальше →
                • +77
                • 20,1k
                • 5
              • Секционирование в SQL Server

                  Секционирование («партицирование») в SQL Server, при кажущейся простоте («да чего там – размазываешь таблицу и индексы по файловым группам, получаешь профит в администрировании и производительности») – достаточно обширная тема. Ниже я попробую описать как создать и применить функцию и схему секционирования и с какими проблемами можно столкнуться. О преимуществах я говорить не буду, кроме одного — переключение секций, когда вы моментально убираете из таблицы огромный набор данных, либо наоборот — моментально загружаете в таблицу не менее огромный набор.
                  Читать дальше →
                  • +14
                  • 16,2k
                  • 7