• Искусство реиграбельности

    • Translation

    С хорошей игрой расставаться тяжело: вы покидаете мир, в который были погружены в течение последних десяти, двадцати или даже сорока часов, и после финального аккорда любимые персонажи и запомнившиеся места начинают превращаться в блеклые воспоминания. А вам хочется играть дальше, и поэтому искусственное завершение игры лишь портит впечатление. Когда вы доходите до финала, в эмоциональную кульминацию примешивается оттенок печали: только что закончилось что-то восхитительное, что может никогда не повториться. Через несколько дней вы снова садитесь за игру, чтобы пережить знакомые ощущения… но что-то не так. Игровой процесс уже не кажется увлекательным — даже утомляет, дизайн уровней и толпы врагов не соответствуют навыкам, развитым вами за часы игры. Персонажи кажутся плоскими, а сюжет — предсказуемым. Вы разочаровываетесь и начинаете искать другие игры, которые — быть может — затронут те же струны в душе. Приключение подошло к концу, и не осталось ничего — лишь воспоминания: они будут радовать, но заново пережить эти впечатления уже не получится.

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

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

    Читать далее
  • Как начинающему геймдизайнеру устроиться в игровую студию: советы опытных специалистов

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

    Благодарим за помощь в подготовке материала старшего геймдизайнера в Ciliz Артёма Волкова, руководителя отдела геймдизайна в FrostGate Романа Ломакина, продюсера и менеджера проектов в Coderaptor Назара Маркова и геймдизайнера в 1С Тимура Мусина.
    Читать дальше →
  • Aspect Oriented Programming (AOP) через исходный код



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

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

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

    Если вам интересно узнать детали, прошу пожаловать под кат.
    Читать дальше →
  • Ник Бостром: Живем ли мы в компьютерной симуляции (2001)

    • Translation
    Я собираю все самые важные тексты всех времен и народов, влияющие на мировоззрение и формирование картины мира («Онтол»). И вот тут подумал-подумал и выдвигаю дерзкую гипотезу, что этот текст более революционный и важный в нашем представлении об устройстве мира, чем коперниканская революция и работы Канта. В рунете этот текст (полная версия) находился в ужасном состоянии, я его немного причесал и, с разрешения переводчика, публикую для обсуждения.

    image

    “Are you living in a computer simulation?”


    by Nick Bostrom [Published in Philosophical Quarterly (2003) Vol. 53, No. 211, pp. 243-255. (First version: 2001)]

    В данной статье утверждается, что по крайней мере одно из трёх следующих предположений является истинным:

    • (1) весьма вероятно, что человечество вымрет до того, как достигнет «постчеловеческой» фазы;
    • (2) каждая постчеловеческая цивилизация с крайне малой вероятностью будет запускать значительное число симуляций своей эволюционной истории (или ее вариантов) и
    • (3) мы почти определенно живём в компьютерной симуляции.

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

    1.Введение


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

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


      Альфрид Лэнгле (фото: Артем Лапшин, discours.io)

      Как предотвратить выгорание и как помочь себе, если это уже с вами произошло? Об этом была лекция доктора медицинских и философских наук Альфрида Лэнгле, которую он недавно прочел в НИУ ВШЭ в Санкт-Петербурге.
      Читать дальше →
    • Машинное обучение на C#: введение в ML.NET



        ML.NET претендует на звание самой мощной библиотеки для машинного обучения на платформе .NET. Так ли это на самом деле? На вопрос отвечает Джефф Просайз.

        Джефф Просайз — один из создателей компании Wintellect, коллега по цеху знаменитого Джеффри Рихтера, автор более девяти книг и множества статей по разработке приложений, сейчас работает с Azure и разрабатывает различные AI-решения.

        Под катом перевод и видео доклада Джеффа с конференции DotNext 2019 Moscow в оригинале.
        Читать дальше →
      • Футуризм, который мы заслужили

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



          Ключевые слова до ката для привлечения внимания: Андрей Себрант из Яндекса и TechSparks, Иван Ямщиков из ABBYY и института Макса Планка, Константин Кичинский из Платформа НТИ, Григорий Петров из Evrone, Георгий Могелашвили из Booking, Александр Белоцерковский из Microsoft, Михаил Климин из Едадил и Applicatura.
          Читать дальше →
          • +13
          • 15.7k
          • 2
        • Собеседования в разработку: друзей выбирают


            Первую сотню собеседований к себе в команду (а потом и в отдел разработки) я провёл лет семь назад. Поначалу этого процесса сам боялся, готовился. Затем всё превратилось не то чтобы в рутину (чего никогда не будет), но общая канва сложилась. Во многом она пересекается с тем, что описывалось в аналогичных статьях (см. 1, 2, 3… и особенно эту с комментами). Но я решил написать ещё одну. Надеюсь, она также будет вам полезна. Уж точно будет полезна тем, кто пойдёт к нам.


            И да, это персональная статья. Моё мнение может не совпадать с политикой компании Антиплагиат.

            Читать дальше →
          • Async programming in .NET: Best practices

              Появление async/await в C# привело к пересмотру того, как писать простой и корректный параллельный код. Зачастую, используя асинхронное программирование, программисты не только не решают проблемы, которые были с потоками, но и привносят новые. Дедлоки и рейсы никуда не пропадают — их просто становится труднее диагностировать.



              Дмитрий Иванов — Software Analysis TeamLead в Huawei, в прошлом техлид JetBrains Rider и разработчик ядра ReSharper: структур данных, кэшей, многопоточности, регулярный спикер конференции DotNext.

              Под катом — видеозапись и текстовая расшифровка доклада Дмитрия с конференции DotNext 2019 Piter.
              Читать дальше →
              • +30
              • 23.8k
              • 6
            • В двух словах: Лучшие практики Async/Await в .NET

              • Translation
              В преддверии старта курса «Разработчик C#» подготовили перевод интересного материала.




              Async/Await — Введение


              Языковая конструкция Async/Await существует со времен C# версии 5.0 (2012) и быстро стала одним из столпов современного программирования на .NET — любой уважающий себя C# разработчик, должен использовать ее для повышения производительности приложений, общей отзывчивости и разборчивости кода.

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

              Ну что ж, давайте углубимся в тему.
              Читать дальше →
            • «Ждёт тебя дорога дальняя…» или решение задачи прогнозирования на C# с помощью Ml.NET (DataScience)

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

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

                Спустя пару лет на обновлённом наборе данных мы попробуем решить простейшую задачу. Используя модель регрессии в Ml.NET Framework предскажем сколько запросов в месяц получает положительное решение. Попутно мы сравним Ml.NET с Accord. NET и библиотеками на Python.

                Хотите овладеть силой и могуществом предсказателя? Тогда милости прошу под кат.



                P.S. Пусть вас не смущает изображение С.С. Собянина, в статье не будет ни слова о политике.
                Читать дальше →
              • Автоматизируем сборку iOS приложений с помощью Fastlane

                • Tutorial

                Как часто нам, iOS разработчикам, приходится собирать приложение для загрузки в iTunes Connect App Store Connect? В процессе этапа активного бета-тестирования приложения нужно оперативно фиксить баги и поставлять обновленную сборку для тестирования. А также необходимо скачивать сертификаты, Provision profiles, прокликивать много разных галочек и кнопочек при каждой выкладке нового билда.


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


                В этом посте я расскажу: что такое fastlane и как быстро начать его использовать в своих iOS проектах.

                Читать дальше →