• CastAR — очки дополненной реальности от бывших сотрудников Valve

      image

      На кикстартере появилась система дополненной реальности, вдохновлённая сценой из четвёртого эпизода Звёздных войн, где Чубакка и R2-D2 играют в местный аналог шахмат. На момент написания статьи Джери Элсворт и Рик Джонсон — так зовут изобретателей — уже успели собрать половину от необходимых 400 000 долларов.

      Система работает по принципу 3D-кинотеатра. В оправу очков встроены два микро-проектора, которые проецируют стереоскопическое изображение. Отражённый свет попадает в линзы с активным затвором, которые показывают разную картинку для левого и правого глаза, что приводит к появлению эффекта 3D. В комплекте с очками идёт специальная отражающая «скатерть», на которую нанесены инфракрасные метки. Небольшая камера, расположенная между проекторами, находит эти метки и использует их для отслеживания местоположения очков, а специальное программное обеспечение подстраивает картинку.
      Под катом видео и подробности
      • +17
      • 21.5k
      • 6
    • Видеодемонстрация работы Steam Controller

        В видеоролике от Valve показан процесс игры в Portal 2, Civilization V, Counter-Strike: GO и Papers, Please с помощью прототипа нового контроллера, который будут рассылать бетатестерам в этом году.



        В демонстрации Portal 2 был применён так называемый legacy-mode, в котором контроллер эмулирует клавиатуру и мышь. В этом режиме для вращения камеры используется правый трекпад в масштабе перемещения один к одному как у мыши: чем дальше и быстрее двигаешь палец, тем быстрее поворачивается камера, но если остановиться, то камера тоже замрёт на месте. В то же время левый трекпад работает как джойстик: круг трекпада разделяется на четыре сектора, которые эмулируют нажатие кнопок WASD.
        Читать дальше →
      • Процедурный генератор хрущёвок

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

          На самом деле, у хрущёвок существует несколько десятков модификаций, но некая основа, сущность хрущёвки всё равно прослеживается.

          В общем, недолго думая, я сел и написал генератор хрущёвок на C# под Unity3d. Под катом описание работы алгоритма и размышления на тему uv-карт, сабмешей и шейдеров.
          Читать дальше →
        • Последний анонс Valve на неделе — новые игровые контроллеры



            Горячая выдалась неделька! В понедельник компания Valve представила новую операционную систему на основе Linux, а в среду подразнила новыми консолями. Сегодня в Valve намерены закрепить успех выпуском игровых контроллеров, но, как и всегда, решили идти своим путём и не стали копировать чужие интерфейсы, основанные на жестах и движениями телом. Они делают ставку на точность, тактильность и обратную связь. На этот раз даже разорились на пару рендеров.

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

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



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

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

              На примере движка Unity и C# я покажу как можно работать с моделями и превращать текст в графику. Большинство приводимого кода легко портируется на другие фреймфорки и языки.

              Треугольник


              Начнём с простейшей формы — треугольника. В Unity и во многих других движках используется популярный способ описания моделей: с помощью массивов вершин, треугольников и нормалей. Дополнительно для текстурирования используются uv-координаты вершин. Для работы с моделями есть класс Mesh, в котором для каждого набора данных имеется отдельный массив. В Mesh.vertices хранятся координаты вершин, в Mesh.triangles — индексы вершин группами по три. А в Mesh.normals и Mesh.uv лежат векторы нормалей и координаты uv-карт, индексы которых должны совпадать с индексами соответствующих вершин, т. е. порядок в массивах должен быть одинаковым. Покажу на примере, чтобы было понятнее.
              Читать дальше →
              • +17
              • 61.8k
              • 7
            • Знакомьтесь, Steam Machines — новые игровые приставки от Valve



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

                Вообще говоря, Steam Machines это не консоли, а их чертежи. Из предыдущих слов Гейба Ньюэлла известно, что паровые машинки будут делиться на три категории: «хорошие», «покруче» и «самые крутые». Разные версии системы будут оптимизированы под разные параметры: малый размер, доступная цена, низкий шум и т. п. Машинки из первой категории будет стоить около ста долларов как OUYA и рассчитаны на игру в казуалки либо трансляцию игр с более мощных компьютеров.

                Устройство из второй категории уже ближе к настоящему SteamBox'у, его будет производить сама Valve, стоить оно будет около трёхсот долларов как другие «большие» консоли. А пока его прототип раздают бесплатно пользователям Steam для бетатеста. Всего в этом году раздадут три сотни устройств. Чтобы попасть на бетатест и получить заветную консоль нужно пройти квест:
                До 25 октября, зайдите в Steam и посетите страницу квеста, чтобы проверить статус вашего квеста на участие в бета-тесте.
                1. Присоединитесь к группе сообщества Steam Universe
                2. Примите Соглашение бета-теста устройств Steam
                3. Добавьте 10 друзей в Steam (если у вас их еще нет)
                4. Создайте открытый профиль в сообществе Steam (если еще не создали)
                5. Сыграйте в любую игру при помощи контроллера в режиме Big Picture

                Пожелания и отзывы во время бета-теста рекомендуется оставлять в Steam Universe, так что если вам не повезёт оказаться среди счастливчиков с бесплатными консолями, вы сможете прочитать все подробности там.

                Консоли из третьей категории будут отданы на производство всем желающим, в неё будут попадать конфигурации, превосходящие вторую категорию, по сути это будет обычный навороченный PC. На данный момент Valve уже договорилась с парой десятков производителей железа, так что скоро можно ждать Steam Machines в продаже.
                Читать дальше →
              • Процедурная генерация планов помещений


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

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

                  В этой статье я расскажу о том, как я реализовал на Unity3d один простой метод генерации, который приводит к хорошим результатам и легко модифицируется. С картинками и исходниками.
                  Читать дальше →
                • Мошеннические методы монетизации в free-to-play играх

                  • Translation
                  Примечание переводчика: После публикации статьи с автором связался коммерческий директор из King.com, создателя Candy Crush Saga, и прояснил несколько моментов, после чего автор добавил пару замечаний. Добавленные абзацы отмечены курсивом.

                  Принудительная монетизация


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

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

                  Этот дополнительный стресс часто подаётся в форме того, что Роджер Дики из Zynga называет «весёлыми мучениями». Приём заключается в том, чтобы поставить потребителя в очень неудобное или неприятное положение в игре, а потом предложить ему убрать эти «мучения» в обмен на деньги. Эти деньги всегда замаскированы в слоях принудительной монетизации, поскольку потребитель, столкнувшийся с «реальной» покупкой, скорее всего не поведётся на трюк.
                  Читать дальше →
                • Системы контроля в free-to-play

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

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

                  Другой путь удержания контроля — сделать контроль менее очевидным, более тонким. Когда человек приходит в казино, ему предлагают возможность сыграть и выиграть джекпот. Разумеется, тот факт, что в конечном итоге казино всегда в плюсе, и что выигрыш одного человека означает проигрыш множества других людей, умалчивается, эти детали часто скрываются под несколькими слоями, в которых нужно разобраться, прежде чем понять что на самом деле происходит.
                  Читать дальше →
                  • +8
                  • 10.4k
                  • 9
                • Преграда на пути к Большим играм

                  • Translation
                  В 1997 году с появлением Ultima Online игры стали гораздо крупнее. В 1999 масштаб игр опять существенно увеличился после выхода Everquest. Стало возможным строить сложные социальные отношения в виртуальном пространстве и даже иметь виртуальную работу, дающую больший доход чем «реальная» (Это я, «Lee», в статье 2000 года).

                  Затем верхняя граница снова взлетела до небес с выходом двух игр в 2003 году: EVE Online от CCP и World of Warcraft от Blizzard Entertainment. Обе эти игры стали эталоном «Большой» игры в нашей индустрии, и они всё продолжали становиться больше. Но потом произошла странная вещь.

                  Ничего не произошло.

                  Арена «больших» игр превратилась в настоящую Аллею Проклятых, устланную претендентами, потерпевшими фиаско. Миллионы долларов улетели в трубу в этой битве, и инвесторы запаниковали. Было лишь несколько исключений, которые сумели удержаться на плаву, такие как City of Heroes от Cryptic Studio (NCSoft) и Final Fantasy XI от Square Enix. Претендентов, считающих, что их игра должна быть ещё больше, ещё крупнее, ждала жуткая и страшная смерть на рынке. Я мог бы назвать имена, но не думаю, что несколько страниц, испещрённых перечислением потерянных миллиардов инвестиций, будут здесь уместны.

                  Я лучше расскажу вам секрет, который я храню уже несколько лет. Дело не в масштабе.

                  Дело в Капитале.
                  Читать дальше →
                • Ludum Dare 27 пройдёт в эти выходные

                    Ludum Dare это конкурс разработки игр, в котором люди со всего мира уже более десяти лет собираются, чтобы сделать кучу игр всего за пару дней. Тем, кто сетует на неоригинальность современных игр настоятельно советую приглядеться к данному событию.

                    Правила конкурса очень просты:
                    • Делать игру нужно в одиночку.
                    • Весь код, графика, звук и остальное должны быть созданы в течение 48 часов.
                    • Игра должна соответствовать теме конкурса.
                    • Можно использовать все общедоступные библиотеки, ПО и инструменты для разработки.
                    • К игре должен быть приложен исходный код.

                    Прямо сейчас идёт выбор темы Ludum Dare 27, уже начался второй раунд голосования.
                    Читать дальше →
                  • Дырка в кармане — Памятка по мобильной безопасности



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

                      К чему я веду? Эту реакцию можно проиллюстрировать поговоркой «лучше перебдеть, чем недобдеть». Как часто вы проводите время вдали от мобильного телефона? Чего уж греха таить, скорее всего, вы даже с ним спите. В режиме 24/7 рядом с вами находится устройство с микрофонами, камерами, GPS, всевозможными прочими датчиками и доступом в интернет, а вы доверяете ему свои деньги, распорядок дня, сокровенные мысли… Прямо-таки личный слуга! Насколько он надёжен?

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



                        С текстурами вечно какие-то проблемы! То оказывается, что нельзя взять любую фотку и налепить на модельку. То на стыке текстур появляются швы, которые замучаешься заглаживать. То вроде уже и загладил всё, но глаз, этакий проказник, всё равно замечает повторяющиеся узоры и рушит иллюзию.

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

                        Как же быть? Есть один трюк — непериодические мозаики. Они лишены проблемы повторяемости и достаточно просты в реализации. Одну из таких мозаик придумал китайский математик Ван Хао в 1961 году. Элементы этой мозаики можно представить в виде прямоугольников с разноцветными гранями. Но чтобы понять принцип её работы, надо сначала разобраться в классическом методе заполнения площадей текстурами.
                        А классический метод таков...
                      • Брезенхем и У на страже диагоналей



                          На что вы сейчас смотрите? Если вы не из параллельной вселенной, где все сидят за векторными мониторами, то перед вами растровое изображение. Поглядите на эту полоску: /. Если придвинуться поближе к монитору, то можно увидеть пиксельные ступеньки, которые пытаются притвориться векторной линией. Для этой цели существует целая куча всевозможных алгоритмов растеризации, но я бы хотел рассказать об алгоритме Брезенхема и алгоритме У, которые находят приближение векторного отрезка в растровых координатах.

                          С проблемой растеризации мне довелось столкнуться во время работы над процедурным генератором планов зданий. Мне нужно было представить стены помещения в виде ячеек двумерного массива. Похожие задачи могут встретиться в физических расчётах, алгоритмах поиска пути или расчёте освещения, если используется разбиение пространства. Кто бы мог подумать, что знакомство с алгоритмами растеризации однажды может пригодиться?
                          Принцип работы алгоритма Брезенхема очень простой...
                        • Каверзные кватернионы



                            Отгадайте загадку: в четырёх измерениях сидит и комплексными числами воротит?

                            Подсказка: это вектор со скаляром. И вещественная матрица. И придумал его Гамильтон.

                            Не помогло? Ну что вы, это же элементарно! Это кватернион! Кватернионы используют для записи вращений в робототехнике, игровых движках, ПО для моделирования и вообще везде, где не нужны проблемы с углами Эйлера или матрицами. Если вас испугала путаница выше с разными представлениями кватерниона, то можете быть спокойны. Кватернионы очень просты в использовании и их внутреннее строение может понадобиться только в очень редких случаях, где нужна тонкая оптимизация. В остальное время с помощью кватернионов можно крутить всё что угодно и как угодно, и оно будет плавно и красиво интерполироваться без шарнирных замков.
                            Что же такое кватернион?
                          • Кручу-верчу, запутать хочу: углы Эйлера и Gimbal lock



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

                              С некоторой натяжкой именно так работает вращение с помощью углов Эйлера. Немного непредсказуемо и неудобно, не правда ли? Углы Эйлера имеют несколько недостатков, но есть одно особенно нехорошее свойство из-за которого вы не захотите с ними связываться. Его имя — Gimbal lock.

                              В русском языке gimbal lock называют по-разному: шарнирный замок, блокировка осей, складывание рамок. К сожалению, по запросам в поисковике с такими ключевыми словами выдаётся много мусора, а статья в Википедии оставляет желать лучшего, поэтому я сам расскажу вам об этом феномене и предложу как с ним бороться.

                              Внимание! Заходя под кат вы подвергаетесь риску поломать голову.
                              Ха! Я ничего не боюсь! Где этот gimbal lock?
                            • Парадокс доказательства

                              • Translation
                              31 августа 2012 года японский математик Cинъити Мотидзуки опубликовал в интернете четыре статьи.

                              Заголовки были непостижимы. Объём был пугающим: 512 страниц в сумме. Посыл был дерзким: он заявил, что доказал abc-гипотезу, знаменитую, соблазнительно лёгкую числовую теорию, которая десятилетиями заводила математиков в тупик.

                              Затем Мотидзуки просто ушёл. Он не отправил свою работу в Annals of Mathematics. Он не оставил сообщение ни на одном сетевом форуме, которые часто посещают математики со всего мира. Он просто опубликовал статьи и ждал.

                              Два дня спустя, Джордан Элленберг, профессор математики в Висконсинского университета в Мадисоне, получил почтовое оповещение от Google Scholar, сервиса, который сканирует интернет в поисках статей по указанным темам. Второго сентября Google Scholar отправил ему статьи Мотидзуки: «Это может заинтересовать вас».

                              «А я такой: „Да, Гугл, мне это как бы интересно!“» – вспоминает Элленберг, – «Я запостил их в Фэйсбуке и в моём блоге, с пометкой: „Между прочим, похоже, что Мотидзуки доказал abc-гипотезу“».

                              Интернет взорвался. В течение дней даже далёкие от математики СМИ подхватили историю. «Решена сложнейшая в мире математическая теория», – объявила Telegraph. «Возможный прорыв в abc-гипотезе», – немного скромнее писала New York Times.

                              На математическом форуме MathOverflow математики со всего мира стали оспаривать и обсуждать заявление Мотидзуки. Вопрос, который быстро стал самым популярным на форуме был прост: «Кто-нибудь может объяснить философию его работы и прокомментировать почему она может пролить свет на abc-гипотезу?» – спросил Энди Путман, ассистент профессора в Университете Райса. Или, если перефразировать: «Я ничего не понял. Кто-нибудь понял?»

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

                              Это похоже на тарабарщину не только для обывателя. Это было тарабарщиной и для математического сообщества.

                              «Смотря на неё, ты чувствуешь будто читаешь статью из будущего или далёкого космоса», – написал Элленберг в своём блоге.

                              «Она очень, очень странная», – говорит профессор Колумбийского университета Йохан де Йонг, работающий в близких сферах математики.

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

                              Как профессор Мун Дучин из университета Тафтса выразила это: «Он воистину создал свой собственный мир».

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



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

                                Предположим, что у вас есть несколько объектов и вам нужно узнать нет ли между ними столкновений. Простейшим решением будет посчитать расстояние от каждого объекта до всех остальных объектов. Однако, при таком подходе количество необходимых вычислений растёт слишком быстро. Если на десятке объектов приходится делать сотню проверок, то на сотне объектов выходит уже десяток тысяч проверок. Это и есть печально известная квадратичная сложность алгоритма.
                                Можно улучшить ситуацию, если...
                              • Sony наконец-то показала PlayStation 4


                                  Во время конференции E3 Sony подтвердила слухи о том, что теперь все консоли будут на одно лицо: ПК с процессором от AMD в квадратной коробочке. Новая приставка поступит в продажу в конце этого года и будет стоить 399 $ в США и 399 € в Европе, что на 100 долларов дешевле по сравнению с новым Xbox. Потоковая трансляция игр ожидается где-то в 2014 году. Также Sony намекнули на какое-то партнёрство с Sony Pictures. Наверное это связано с тем, что у них будет даже два приложения для фильмов: Flixster и Redbox Instant.
                                  Картинки под катом
                                • Оптимизируем Boid'ов на Unity

                                  • Tutorial


                                  Знаете ли вы, что кузнечики, будучи брошенными в ведёрко, начинают маршировать по кругу как на картинке выше? Правда сверху не кузнечики, а Boids — модель коллективного поведения птичек, пчёлок, рыбок и другой живности. Несмотря на простоту модели, она демонстрирует эмерджентные свойства: боиды собираются в кучу, летают стаями по кругу, нападают на людей.

                                  Это вторая часть статьи, посвящённая различным хитростям оптимизации Unity и C#, которые увеличивают производительность алгоритма из первой части в пару десятков раз.
                                  Хитрости под катом