• Клонирует ли Ketchapp игры?

      image

      Старая добрая страшилка «Если вы выпустите успешную игру, то Ketchup скопирует её за неделю» уже давно ходит среди игровых разработчиков. Одни считают, что это правда; другие – что это глупые сплетни. На этот раз ей нашёлся свежий, с пылу с жару, пример, достойный обсуждения (сразу замечу, что в данной ситуации не всё однозначно).

      На выходных широкое внимание общественности привлёк Burak Kurkcu, разработчик из Турции. В своём Twitter он рассказал о том, что издатель Ketchup и разработчик Юрий Саначев склонировали его мобильную игру Stair Hops. Причём, в отличие от оригинальной игры, созданный за два месяца и выпущенный Ketchapp клон под названием Stairs попал в TOP-10 и приносит издателю неплохой заработок.

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

      Здесь можно поспорить, является ли игра жанра «infinite jumper» оригинальной в принципе — сам разработчик утверждает, что до выпуска его игры никаких аналогов в App Store не существовало.
      Читать дальше →
    • История о том, как П и Х игру «поделили»

        Это реальная история. События, о которых рассказывается в посте, произошли в США в 2015-2016 годах. Имена персонажей были изменены, однако всё остальное описано так, как было на самом деле.

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

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

        На всякий случай, предупреждаю — ваш покорный слуга не имеет к этой истории никакого отношения, однако считает её вполне себе показательным примером классической ситуации.
        Читать дальше →
      • Ретроспектива: Heroes of Might & Magic III

          image

          Heroes of Might & Magic III через полтора года исполняется 20 лет. Игра, покорившая не одно поколение своим волшебством, не потеряла своей привлекательности и сегодня — многие называют её «новыми шахматами», утверждая, что превзойти «магическую» формулу третьих «Героев» с тех пор так никому и не удалось.

          Сегодня вашему вниманию предлагается рассказ о том, как появились на свет HoMM III и её наследники. Учитывая, что знания, проливающие свет на события тех дней, всегда могут кануть в Лету, и их не спасет даже The Internet Archive (что уже произошло с некоторыми интервью) — а сама серия, по слухам, волей Ubisoft отправлена в глубокую «заморозку» из-за неважных финансовых показателей последней части франшизы — лучше сделать это сегодня, чем завтра.

          Мой рассказ является реконструкцией событий, происходивших два десятилетия назад, и в его основе лежат десятки источников — поэтому он может содержать некоторые неточности; к счастью, история пока сохранила для нас достаточно сведений про то, как New World Computing и 3DO смогли произвести на свет игру, удавшуюся настолько, что мы годы спустя продолжаем в неё играть. Узнаете вы и про то, что произошло после выпуска третьих «Героев».
          Когда всё закончится, ты забудешь о том, как тяжело тебе было, и захочешь повторить это снова.
          Джон Ван Канегем, «Напутствие тем, кто переживает кранч»

          Дисклеймер: каждый раз, когда речь заходит про «Героев», обязательно находится человек, который сразу же идёт их устанавливать. Вот почему лучшего дня для публикации этого поста, чем пятница, попросту не существует — чтобы к утру понедельника абсолютно все успели прийти в себя.
          Читать дальше →
        • Рождение Software Tools: как и зачем появились GREP и AWK

            image
            Этим летом мне на глаза попалось эссе Брайана Кернигана «Иногда старые способы — лучшие», опубликованное в честь 25-летнего юбилея журнала IEEE Software в 2008 году. В нем профессор Керниган рассказывал о том, какие инструменты он использует в работе.

            В тот момент он был занят двумя сложными проектами — один из них подразумевал экспертный анализ проекта на 100 000 строк кода, написанный на C и Assembler в 1990 году, под Windows XP; другой — перенос кода с экзотического языка L1 на не менее экзотический язык L2 при помощи программы, написанной на неназванном скриптовом языке под Linux. Удивительно, но для столь разных задач профессор Керниган вместо IDE использовал один и тот же набор инструментов — grep, diff, sort, awk, wc и прочих «старых знакомых» из эпохи раннего Unix. Более того, многие инструменты и IDE конца прошлого десятилетия он подверг критике за неудобность и несовершенство.

            Действительно, к некоторым вещам в своей жизни мы привыкли настолько сильно, что уже воспринимаем их за данность и критиковать их нам даже не приходит в голову — нам кажется, будто они существовали всегда. Подобный образ мышления помогает адаптироваться к потоку новой информации и неизбежен в современном мире, но давайте не будем сегодня отказывать себе в удовольствии «спуститься на уровень ниже», чтобы увидеть, как появилась сама идея программных инструментов (они же далее по тексту — «software tools», утилиты, команды Unix).
            Читать дальше →
            • +16
            • 6,3k
            • 2
          • О чём молчит пост-мортем: неизвестная история создания Gothic 3

              image

              У всех нас есть свои слабости, которым мы можем изредка предаваться — так называемые “guilty pleasures”. Я вот, к примеру, люблю время от времени перелистывать старые игровые журналы; среди прочего, в них попадаются интересные интервью и дневники разработчиков, неторопливо закрывающие белые пятна моего незнания (которое, как и положено, границ не имеет). С пост-мортемами разговор отдельный — они повествуют о вечном, и потому абсолютно не теряют своего очарования.

              imageВзять хотя бы пост-мортем Portal, опубликованный в январском выпуске журнала Game Developer за 2008 год. Благодаря ему, многие читатели впервые узнали про излюбленную методику создания игр в стенах компании Valve (да, было время, когда Valve еще делала игры): постоянными итерациями прототипов игровых механик и регулярными плей-тестами с участием новых игроков. Сегодня эта идея всем нам кажется очевидной — справедливости ради, она была известна и тогда, но не столь широко распространена — несмотря на то, что она уже успела поспособствовать появлению игр высочайшего геймплейного качества — одна Half-Life 2 чего стоит.

              Еще несколько фактов из пост-мортема Portal
              Оказывается, сам Portal в итоге был урезан примерно в два раза: в силу того, что неподготовленным игрокам тяжело давались те или иные уровни, разработчики регулярно убирали головоломки и заменяли их на новые. Как подсказывают завсегдатаи редактора Hammer, при прототипировании уровней Valve использует примитивы оранжевого цвета, а не серые, как все остальные — отсюда и сам этот процесс они называют не «grayboxing», а «orange boxing» (отсюда и «orange box»?..)

              Другой пост-мортем, и всего одна маленькая (и невероятная) деталь: концепты дизайна основных боссов в Diablo III за время разработки переделывались по 50-60 раз. Теперь я каждый раз напоминаю себе об этом факте, когда начинают опускаться руки!

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

              • Перевод
              Вашему вниманию предлагается перевод статьи Рэймонда Чена из блога The Old New Thing, посвященной проблемам кода, полагающегося на порядок вычисления выражений — и всем тем, кто пишет foo(i++, a[i]);
              Порядок вычисления выражений определяется конкретной реализацией, за исключением случаев, когда язык гарантирует определенный порядок вычислений. Если же в дополнение к результату вычисление выражения вызывает изменения в среде выполнения, то говорят, что данное выражение имеет побочные эффекты.
              MSDN
              В нашей внутренней рассылке про C# регулярно возникает дискуссионный вопрос, который касается корректной интерпретации подобных конструкций:

              a -= a *= a;
              p[x++] = ++x;
              

              В ответ я спрашиваю:
              Да кто вообще пишет такой код с невозмутимым видом? Одно дело, когда такое пишешь, пытаясь победить в «Международном Конкурсе запутывания кода на Си» (IOCCC, International Obfuscated C Code Contest), или если хочешь написать головоломку — но в обоих случаях понимаешь, что ты занимаешься чем-то нестандартным. Что, реально есть кто-то, кто пишет a -= a *= a и p[x++] = ++x; и думает про себя «Чёрт возьми, да я пишу действительно классный код!»
              Читать дальше →
            • Сортировка пузырьком в коде Qualcomm

                Забавной находкой поделился сегодня пользователь fj333 с Reddit. Разбираясь в появившемся год назад проприетарном коде Qualcomm Technologies для Android, он обнаружил, что неизвестный программист решил в production-коде использовать сортировку пузырьком для того, чтобы найти… максимум в массиве.

                Посмотреть исходный файл вы сможете по ссылке на Github или же под катом, а оценить его в работе может любой владелец устройства с Qualcomm Snapdragon 200 MSM8610 под управлением Android.

                Как известно любому, кто знаком с алгоритмами сортировки, сортировка пузырьком — алгоритм учебный, и в промышленном коде обычно не применяющийся в силу своей неэффективности; дело в том, что в наихудшем и среднем случаях он имеет сложность О(n2), к тому же его емкостная сложность в данном случае — O(n). Кого это не убедило — использовать сортировку пузырьком не рекомендует даже Барак Обама.

                И это всё не учитывая того, что для поиска максимума хватило бы и простого перебора.
                Читать дальше →
              • Дорога к С++20

                  imageСегодня завершилась летняя встреча комитета ISO WG21 C++, проходившая в Торонто с 10 по 15 июля. Вскоре нас наверняка ждёт подробный отчёт от РГ21, а сегодня уважаемой публике предлагается пост-«разогрев» с обсуждением самого интересного.

                  Итоги встречи следующие: стандарт С++17 завершен и будет опубликован на следующем собрании в ноябре этого года; стандарт С++20 уже обзавелся первыми серьезными фичами — концептами (concepts), явными обобщёнными лямбда-функциями (explicit generic lambdas) — и это только начало.

                  Возможности нового стандарта С++17 обсуждались уже не раз, про нововведения писали на Хабре, проводили доклады на конференциях, поэтому снова их приводить здесь я не буду. Не секрет, что ключевой особенностью этого выпуска С++ стал перенос самых «вкусных» возможностей в неопределенное будущее. Что ж, теперь можно с уверенностью сказать, что многие долгожданные «фичи» переехали именно в С++20. Взятый курс на расширение stdlib никуда не делся, поэтому от C++20 можно ожидать гораздо большего и богатого набора функций.
                  Читать дальше →
                • Мастерство программирования

                  • Перевод
                  image

                  Кент Бек — разработчик программного обеспечения, создатель таких методологий разработки ПО как экстремальное программирование (XP) и разработка через тестирование (TDD); в данный момент работает на Facebook. Вашему вниманию предлагается перевод набросков идей о том, как можно было бы сделать свою работу эффективнее. Разделение программистов на мастеров и подмастерьев, используемое на протяжении статьи, взято Кентом Беком из книги «Программист-прагматик» Эндрю Ханта и Дэвида Томаса.

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

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

                  Основной мотив набросков — раскрытие потенциала вашего мозга. Подмастерье учится решать большие задачи при помощи решения нескольких мелких задач разом. Мастер же учится решать еще большие задачи, чем подмастерье, при помощи решения меньшего количества задач разом. Важная часть мудрости здесь состоит в том, что разбивка задач должна осуществляться таким образом, чтобы интеграция независимых решений была бы меньшей проблемой, чем простое решение всех задач вместе.
                  Читать дальше →
                  • +4
                  • 9,7k
                  • 1
                • Microsoft избавится от телеметрии в Visual C++ в Update 3

                    image

                    Месяц назад Евгений Гречников grechnik опубликовал пост «Стандартная библиотека Visual Studio 2015 и телеметрия», в котором рассказал об интересной находке: оказалось, что в любом бинарнике, скомпилированном VS2015 из программы на C или C++, есть код, который может писать логи — и выглядело это всё слегка подозрительно, особенно в силу отсутствия исходников telemetry.cpp.

                    Три дня назад этот вопрос был снова поднят на Reddit, где время от времени в комментариях появляются разработчики Visual Studio — и вот сегодня общественности наконец-то удалось получить вполне себе официальный ответ от представителя Microsoft.

                    Самое важное: телеметрия будет убрана из статических библиотек в обновлении Update 3.
                    Читать дальше →