• Прекратите скручивать!

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

    Дальше много текста, фотографий, разборок. Ну все как обычно
  • Как вращается камера в 3D играх или что такое матрица поворота

      В этой статье я кратко расскажу, как именно преобразуются координаты точек при повороте камеры в 3D играх, css-преобразованиях и вообще везде, где есть какие-то вращения камеры или предметов в пространстве. По совместительству это будет кратким введением в линейную алгебру: читатель узнает, что такое (на самом деле) вектор, скалярное произведение и, наконец, матрица поворота.
      Читать дальше →
    • Туториал по Unreal Engine. Часть 1: знакомство с движком

      • Translation
      • Tutorial
      image

      Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.

      Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

      В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

      • Установка движка
      • Импорт ассетов
      • Создание материалов
      • Использование Blueprints для создания объектов с простейшими функциями
      Читать дальше →
      • +17
      • 329k
      • 9
    • Справочник по синхронизаторам java.util.concurrent.*

      • Tutorial
      Целью данной публикации не является полный анализ синхронизаторов из пакета java.util.concurrent. Пишу её, прежде всего, как справочник, который облегчит вхождение в тему и покажет возможности практического применения классов для синхронизации потоков (далее поток = thread).

      В java.util.concurrent много различных классов, которые по функционалу можно поделить на группы: Concurrent Collections, Executors, Atomics и т.д. Одной из этих групп будет Synchronizers (синхронизаторы).



      Синхронизаторы – вспомогательные утилиты для синхронизации потоков, которые дают возможность разработчику регулировать и/или ограничивать работу потоков и предоставляют более высокий уровень абстракции, чем основные примитивы языка (мониторы).
      Читать дальше
    • Органайзер-каталог для карт Heroes III и более 7700 карт в придачу


        Я играю в Heroes of Might and Magic со времен царя Гороха королевы Ламанды, и за это время накопилось такое количество карт для 3-х Героев, что я решил их как-то упорядочить и структурировать.

        Цели были следующие:

        1. Избавиться от дубликатов карт
        2. Точно знать, играл я в эту карту или нет, если играл, то знать статус: выиграл, проиграл или пропустил
        3. Иметь возможность загружать в органайзер новые карты с проверкой на уникальность
        4. Писать свой личный комментарий к карте
        5. Иметь возможность мгновенно отсортировать каталог карт по следующим параметрам:
          названию, статусу, версии, кодировке, размеру карты, наличию подземелья, уровню сложности и размеру файла
        Читать дальше →
      • Learn OpenGL. Урок 4.10 — Инстансинг

        • Translation
        • Tutorial
        OGL3

        Инстансинг


        Представьте, что вы задумали сцену, содержащую огромное количество моделей объектов, причем преимущественно эти модели содержат одинаковые вершинные данные, разнятся только матрицы трансформации, примененные к ним. Например, сцена с травяным полем, где каждая былинка представлена маленькой моделью, составленной буквально из пары треугольников. Конечно же, для достижения нужного эффекта придется отрендерить эту модель не один раз, а тысячу, десять тысяч раз за кадр. Поскольку в каждом листике содержится буквально пара треугольников, то его рендер будет практически мгновенным. Но вот тысячи повторных вызовов функций рендера совокупно очень заметно ударят по производительности.
        Читать дальше →
        • +39
        • 14.4k
        • 4
      • Почему дизайн Go плох для умных программистов

        • Translation

        На протяжении последних месяцев я использую Go для имплементаций Proof of Concept (прим.пер.: код для проверки работоспособности идеи) в свободное время, отчасти для изучения самого языка программирования. Программы сами по себе очень просты и не являются целью написания статьи, но сам опыт использования Go заслуживает того, чтобы сказать о нем пару слов. Go обещает быть (прим.пер.: статья написана в 2015) массовым языком для серьезного масштабируемого кода. Язык создан в Google, в котором активно им пользуются. Подведя черту, я искренне считаю, что дизайн языка Go плох для умных программистов.

        Читать дальше →
      • 14 лучших метроидваний на PC

        • Translation

        Метроидвания — один из тех жанров, сформулировать границы которых довольно сложно. Само его название является соединением двух довольно разных серий игр — Metroid и Castlevania. Признаки принадлежности к жанру всегда были предметом споров. Поэтому мы подозреваем, что это будет один из самых противоречивых списков: мы обязательно пропустим чью-нибудь любимую игру, которую не посчитали метроидванией. Тем не менее, все выбранные нами игры потрясающи.

        Нужно честно признаться, что мы ограничились довольно консервативной интерпретацией жанра — только теми играми, которые соответствуют классической модели огромного исследуемого мира с разблокируемыми областями, к которым нужно возвращаться, и получаемыми новыми возможностями. Мы стремились по возможности отсеять игры, которые лучше соответствуют категории «roguelike/lite», а также те, которые можно просто описывать словом «платформеры». Да, такой выбор — настоящее минное поле. А способность обнаружения мин мы на карте ещё не нашли.

        Поэтому нет, Dark Souls и её родственники сюда не относятся, как и Бэтмен с его приключениями в Аркхэме. Вы против? Как вам угодно. Однако самой противоречивой игрой, не вошедшей в наш список, стала Dead Cells. Кто-то с жаром возражал, что это настоящая метроидвания, другие справедливо утверждали, что это roguelite-платформер с увеличивающимся набором навыков. Да, без споров не обошлось.

        Игры никак не ранжированы и перечислены в случайном порядке. Ну ладно, поехали!
        Читать дальше →
      • Как бороться с репостами или пара слов о перцептивных хешах

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

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

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

          Художники нарисовали яркую графику, программисты встроили ее в игру, аниматоры добавили движения — казалось бы, все, готово. Но нет, менеджерам не нравится:

          «Надо убрать серые пятна и белые линии. Тут пульсирующая кнопка дергается, там прогресс-бар лесенкой идет».

          Смотришь игровые ресурсы — нет в них ничего такого, все спрайты обрезаны. Читаешь код — формулы правильные, точности шейдера хватает. Но результат все равно получился неважный. Где ошибка?



          Небольшой опрос для тех, кто уже знает откуда берутся артефакты. Что делать в такой ситуации?

          1. Нужна мощная видеокарта и свежие драйверы;
          2. Стоит сделать скачиваемые наборы графики для всех возможных разрешений экрана;
          3. У квадратных текстур с размерами степени двойки нет таких проблем;
          4. Это все из-за сжатия графики (PVRTC/DXT5/ETC1/...);
          5. В графическом редакторе придется слегка размазать края;
          6. Так и должно было получиться, ведь мы не подготовили графические данные;
          7. Поможет только антиалиасинг;
          8. Нужны текстуры и таргеты в режиме premultiplied alpha.

          Какой вариант ответа правильный, почему именно он и как побороть артефакты графики читайте под катом.
          Читать дальше →
        • Планетарный ландшафт

          • Tutorial
          Трудно поспорить, что ландшафт — неотъемлемая часть большинства компьютерных игр на открытых пространствах. Традиционный метод реализации изменения рельефа окружающей игрока поверхности следующий — берем сетку (Mesh), представляющую из себя плоскость и для каждого примитива в этой сетке производим смещение по нормали к этой плоскости на значение, конкретное для данного примитива. Говоря простыми словами, у нас есть одноканальная текстура размером 256 на 256 пикселей и сетка плоскости. Для каждого примитива по его координатам на плоскости берем значение из текстуры. Теперь просто смещаем по нормали к плоскости координаты примитива на полученное значение(рис.1)


          Рис.1 карта высот + плоскость = ландшафт

          Почему это работает? Если представить, что игрок находится на поверхности сферы, и радиус этой сферы чрезвычайно велик по отношению к размеру игрока, то искривлением поверхности можно пренебречь и использовать плоскость. Но что если не пренебрегать тем фактом, что мы находимся на сфере? Своим опытом построения такого рода ландшафтов я хочу поделиться с читателем в данной статье.
          Читать дальше →
        • Использование ImGui с SFML для создания инструментов для разработки игр

          • Tutorial

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


          Данная статья — вольный перевод моей статьи на русский с некоторыми небольшими изменениями и улучшениями. Хотелось бы показать как просто и полезно использовать ImGui с SFML. Приступим.



          Введение


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


          Вот какие инструменты я создал с помощью ImGui для своей игры:



          Редактор уровней

          Читать дальше →
        • Введение в процедурную анимацию: инверсная кинематика

          • Translation

          Часть 4. Введение в градиентный спуск


          Эта часть представляет собой теоретическое введение в инверсную кинематику и содержит программное решение, основанное на градиентном спуске (gradient descent). Эта статья не будет всеобъемлющим руководством по этой теме, это всего лишь общее введение. В следующей части мы покажем настоящую реализацию этого алгоритма на C# в Unity.

          Серия состоит из следующих частей (части 1-3 представлены в предыдущем посте):

          Читать дальше →
          • +54
          • 22.7k
          • 5
        • Изучение английского языка с помощью параллельных переводов

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

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

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

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

          Есть набор художественных книг. На данный момент их около пятидесяти. Вы можете выбрать любую из книг для изучения английского языка.
          Каждая книга разбита на предложения как показано на рисунке ниже.
          Читать дальше →
        • Элиза

            Давным-давно, когда я был маленький, у меня не было друзей. Нет, правда, совсем-совсем не было. Я нуждался в общении, мечтал о ком-то близком, но понимания среди других людей найти не мог, и спасение находил лишь в книгах и компьютере. Вместе с первым CD-приводом появились мои первые компакт-диски с играми. Ты, наверное, помнишь такие: триста игр, пятьсот, семьсот… Кроме всяких аркад и шутеров, на одном из дисков была программа Диала — интерактивный собеседник.
            Читать дальше →
          • Регистрируем торговую марку в США

            • Tutorial

            Вопрос этот, прямо скажем, волнует не каждого. Но если вы планируете серьёзно выходить на рынок США, то этот вопрос обязательно возникнет. Минусов или проблем от регистрации торговой марки нет, но это стоит некоторых денег. Зато после регистрации, можно будет писать на сайте и в рекламной продукции — МояМарка ®. Это добавит вашему продукту/услуге некоторой солидности.
            Ранее на хабре был топик по патентам. Я же раскажу о регистрации торговой марки, как всегда на своём опыте.
            Читать дальше →
          • Ctrl+СОН (контролируем сон с помощью гаджетов)

              Прочитал немало статей на Хабре на тему «вовремя ложиться и вставать и не спать потом целый день», больше всего понравилась статья "Спать мало, но правильно".

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

              Вот они:
              Читать дальше →
            • Спать мало, но правильно?

                Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
                Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
                Читать дальше →
              • Локализация и деньги

                  Прочитав пост от mikeSP, я окончательно убил в себе лень, и, все-таки, решил сюда написать.

                  Эпиграф

                  В далеком 1995-м деньги просто падали с небес тому, кто умел их подбирать. Это коснулось и игр.
                  Как только вышла в свет прекраснейшая, сделанная на полном энтузиазме, локализованная версия игры «Warcraft II», мужик (парень, как вариант) посмотрел, как голодный русско-язычный народ расхватывает горячие пирожки с надписью «русская версия», и понял «Это хорошо!». И понеслась…

                  Читать дальше →
                • Пиратская локализация. Как это было

                    Так уж вышло, что мне довелось стоять, можно сказать, у истоков так называемой “пиратской локализации” игр на территории бывшего СССР. Многие ее ругают, многие привыкли и воспринимают это явление как должное. Я попробую рассказать, как все это начиналось и вкратце поделиться своим немалым опытом.

                    Итак, за окном шел дождь, и календарь отсчитывал 1991 год…
                    Читать дальше →