• 50 типичных ошибок проектирования игровой камеры (часть 1)

    • Перевод
    image

    Эта статья — перевод выступления Джона Нески (John Nesky) с GDC14.

    Вторая часть тут

    Джон — один из разработчиков в компании TGC, известной своей игрой Journey. Он начал работать там в роли гейм-дизайнера, но впоследствии увлёкся настройкой работы камеры в Journey, поэтому теперь его должность звучит как Feel Engineer.


    Вряд ли вы найдёте какое-нибудь сообщество разработчиков, специализирующихся на игровых камерах. И есть, пожалуй, всего одна книга на эту тему — Real Time Cameras за авторством Марка Хэйг-Хатчинсона (Mark Haigh-Hutchinson). Но хотелось бы глубже изучить эту тему и узнать, как люди решают те или иные трудности.

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

    Поэтому для того чтобы поговорить на тему игровых камер, нужно смириться с ошибками. И в этой статье я расскажу, что может пойти не так, когда вы начнёте проектировать поведение камеры в вашей игре.
    Читать дальше →
    • +33
    • 27,6k
    • 8
  • 58 признаков хорошего интерфейса

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

    1 Один столбец вместо нескольких


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

    image
    Читать дальше →
  • Очередная регистрация ООО или жестокая война с налоговой

      Примерно год назад я писал статью о регистрации ИП своими силами. Спустя год я решил зарегистрировать Общество с ограниченной ответственностью.
      Это было началом воин с налоговой.

      Читать дальше →
    • UNET — новая сетевая технология в Unity 3D

      • Перевод
      Некоторое время назад, на конференции Unite Asia, мы сообщили о разработке новых мультиплейерных инструментов, технологий и служб для разработчиков Unity. Внутреннее название этого проекта — UNET, что означает просто Unity Networking. Но наши планы простираются далеко за пределы простой работы с сетью. Как вы все знаете, основной целью Unity является демократизация процесса разработки игр. Команда Unity Networking хочет демократизировать разработку многопользовательских игр. Мы хотим, что бы все разработчики игр могли разрабатывать многопользовательские игры любого типа с любым количеством игроков. Само собой это не самая простая задача, но мы все уже решали ее в прошлом и очень хотим сделать это снова (потому что это действительно классно!). Мы решили разделить нашу общую цель на несколько фаз, что должны быть хорошо знакомо Unity-разработчикам. Согласно этому подходу мы выпустим фазу 1, получим отзывы пользователей, учтем их в нашей работе, что бы сделать следующую фазу еще лучше и повторим этот цикл. Для UNET фазой 1 будет то, что мы называем — Multiplayer Foundation — о ней мы расскажем чуть ниже. Фаза 2 будет построена на основе фазы 1 и предоставит технологию создания игр с авторизацией на сервере, которую мы называем Simulation Server, о ней в следующих статьях. В фазе 3 мы добавим возможность координировать множество Simulation Servers с помощью системы Master Simulation Server. Как всегда, точную дату выпуска назвать невозможно, особенно с учетом сбора отзывов от наших пользователей. Но мы можем сказать, что фаза 1 будет частью цикла релизов 5.х, а фаза 2 сейчас находится на этапе исследований.


      Читать дальше →
    • Игровые конференции: DevGamm, White Nights и здоровье индустрии

        Я технический евангелист компании Unity Technologies, и моя работа — путешествовать, рассказывать что-то полезное на конференциях, помогать отечественным разработчикам получить максимум внимания от компании Unity.

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

        image
        Читать дальше →
        • +13
        • 5,4k
        • 9
      • Шейдеры для маглов

        Предыстория


        Вышла книга Ламмерса на русском, астрологи предсказывают…

        На конференции DevGAMM я купил задорого книгу Кенни Ламмерса в которой впоследствии расписались: Симонов, Галёнкик и Придюк. Вальяжно за два вечера я-таки добил её до середины и решил: собрать всё то что там написано в начале, переварить, нарисовать картинок и написать статью.


        Статья предназначена для совсем новичков которые с трудом код на C# из уроков копируют, по этому я не буду углубляться в теорию которая и так уже описана. За место этого мы будем решать практические задачи и узнаем что шейдеры нужны не только что бы: «Всё сверкало и блестело».

        Читать дальше →
        • +25
        • 47,9k
        • 9
      • Классы в lua, или избавляемся от двоеточия

          Как всем известно, в lua нет как таковых классов и объектов. Однако есть метатаблицы и синтаксический сахар.
          С помощью указанных механизмов достаточно просто реализовать подобие классов.
          В итоге и получается нечто такое:
          Самый простой класс
          local MyClass = {} -- the table representing the class, which will double as the metatable for the instances
          MyClass.__index = MyClass -- failed table lookups on the instances should fallback to the class table, to get methods
          
          -- syntax equivalent to "MyClass.new = function..."
          function MyClass.new(init)
            local self = setmetatable({}, MyClass)
            self.value = init
            return self
          end
          
          function MyClass.set_value(self, newval)
            self.value = newval
          end
          
          function MyClass.get_value(self)
            return self.value
          end
          
          local i = MyClass.new(5)
          -- tbl:name(arg) is a shortcut for tbl.name(tbl, arg), except tbl is evaluated only once
          print(i:get_value()) --> 5
          i:set_value(6)
          print(i:get_value()) --> 6
          

          (взято с lua-users.org/wiki/ObjectOrientationTutorial)

          Всё это конечно хорошо, даже при определённой сноровке можно реализовать наследование…
          Но где public и private члены класса? Дефакто в этом примере они все public. Да ещё и надо помнить, где использовать двоеточие:
          MyClass:myFunc()
          

          а где просто одну точку:
          MyClass.myOtherFunc()
          

          А статические члены класса? Неужели придётся отказываться?
          Вот я и не захотел отказываться, и начал колхозить...
        • Great Permutator — опыт участия в бандлах и не только

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

            image

            Но, обо всем по порядку.

            Читать дальше →
          • Fancy Skulls — дневник разработки, запись №1

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

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


              Я расскажу о том, что я уже сделал, чему научился, и что собираюсь делать дальше. Может быть, стоило бы подождать когда игра будет закончена и написать постмортем, но я ведь тогда что-то забуду а что-то поленюсь записать, а так получится как бы сериал. Чем все закончится? Попадет ли моя игра в Стим через Greenlight и буду ли я благодаря этому во фраке и с моноклем в левом глазу прогуливатся по Невскому Проспекту в лакированых туфлях с белыми гамашами? Если да, то как и когда? Что такое гамаши? Оставайтесь с нами и вы все узнаете.
              Читать дальше →
            • Вещи которые вы возможно не знали о Unity3D

              О чём телега


              Я бы хотел описать возможности, ну и частично особенности которые присутствуют при разработке на данном движке. С Unity3D работаю уже около трёх лет, так что мыслей накопилось достаточно для средненькой такой статьи. Местами буду через чур мудрить, и рассказывать о том что вам вряд ли пригодится, но по большой части рассказ будет о очень простых и часто используемых вещах (если знать о них конечно).
              Читать дальше →