• Передача сообщений между потоками. Классические блокирующие алгоритмы

      Когда-то я вылез из песочницы с совочком в руке и постом о неблокирующих очередях и передаче данных между потоками. Тот пост был не столько об алгоритмах и их реализации, сколько об измерении быстродействия. Тогда же мне в комментариях задали совершенно резонный вопрос об обычных, блокирующих алгоритмах передачи — насколько они медленнее и вообще как выбрать оптимальный алгоритм под конкретную задачу.
      Я конечно обещал и с энтузиазмом принялся за дело, даже получил забавные результаты, однако… какой-то изюминки не хватало, выходило скучно и плоско. В результате мой внутренний перфекционист обьединился с моим нескрываемым прокрастинатором и вдвоем они меня одолели, пост надолго осел в черновиках и даже совесть уже не вздрагивала при виде забытого заголовка.
      Однако все меняется, появляются новые технологии, старые исчезают в архивах, и я вдруг решил что пришло время отдавать долги и сдерживать обещания. В качестве наказания мне пришлось все переписать с нуля, если скупой платит дважды, то ленивый дважды переделывает, так мне и надо.
      Да, за КДПВ извиняюсь — оно конечно совсем из другой предметной области, но для иллюстрации взаимодействия между потоками подходит тем не менее идеально.
      Читать дальше →
    • Мааааленькая PDF-сборка хардкорных статей про GameDev



        Привет!
        У издательств я узнал, что с 1 по 10 января люди читают больше, чем за год. Поэтому небольшой подарок от нас — мы договорились с Даниилом Куком (бывшим геймдизайнером Epic Megagames), взяли и перевели несколько его хардкорных материалов про разработку игр. И засунули их в PDF на сотню страниц.

        • Как игры формируются внешней средой: как рынок влияет на сюжет игры (например, из-за уменьшения среднего дохода на игру уменьшается роль открытого мира – слишком долго делать) и так далее. Очень хороший аналитический обзор от гуру с конкретными советами.
        • Организация игровых процессов в многопользовательской игре — как собирать игроков вместе, как делать асинхронные взаимодействия и много чего ещё с числами и примерами. Годный хардкор.
        • ТОП-5 споров о разработке 2014-го года — прошлогодний материал о том, что за тренды обсуждались. Всё актуально и сейчас.
        • Декларация независимости разработчика — американский крик души о том, что «уберите грязные лапы финансового директора от сюжета игры». Ну, примерно.
        • Критика критики игр — что делать, если обзоры пишут дилетанты, и как выделиться из балласта.
        • Создание эффективных причинно-следственных связей в играх — невероятно полезная вещь для всех тех, кто хочет понять, как работают когнитивные схемы игр. Полезна не только разработчикам, но и для UI/UX-спецов.
        • Таблицы трофеев – математика выковыривания лута из трупов врагов. Начинается с ликбеза и стремительно ускоряется до весьма крутых решений.

        Вот PDF и полные тексты. Ниже в посте – основные тезисы, если лень читать всё или хочется здесь и сейчас.
        Читать дальше →
        • +28
        • 41.9k
        • 8
      • Да пребудет с вами прокрутка: теория и практика по камере в платформерах [2/2]

        • Translation
        • Tutorial
        Первая часть

        От переводчика. OlegKozlov рассказал о приёмах камеры в своей игре «Несыть». Из-за большого количества трафика и не слишком верно действующего JS якорь перебрасывает куда угодно, только не на комментарий, поэтому сделаю копию здесь.
        Что сделано в «Несыти»…
        1. Упреждение по движению: точка привязки камеры вынесена вперёд от центра червя, причём чем быстрее он ползёт, там дальше она выносится.
        2. Упреждение по управлению: когда игрок начинает сжимать червя для прыжка, то вынос точки привязки камеры ещё усиливается заранее передвигая камеру в ту область, куда червь сейчас прыгнет.
        3. Линейное сглаживание — камера плавно стремится к точке своей привязки, тем быстрее, чем больше разница между фактическим положением камеры (центра экрана) и точкой её привязки.
        4. Плюс масштаб всего происходящего завязан на размер червя, когда червь увеличивается, то камера «отъезжает». Причём делает это тремя-четыремя ступенчатыми переключениями, чтобы игрок ощущал, что его червь вырос. Если делать плавно, то рост и изменение масштабов игры нивелируются и не приносят удовольствия.
        5. Упор в край. Камера «упирается» в края уровня, становясь более статичной и позволяя голове червя сильно смешаться от центра экрана, буквально упираться головой в его край.
        image

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

        Направление


        Подсказываем, куда идти, близко ли цель и что рядом важного

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

        Wonder Boy, ещё одна моя любимица, быстрый платформер, в котором можно идти только вперёд через старое доброе одностороннее окно свободного хода. В отличие то Super Mario Bros., там нет зоны разгона, плавно ускоряющей камеру, но есть другая интересная техника, которую я называю «рельсы». Камера ставится и движется так, чтобы предвосхищать будущие преграды.

        Wonder Boy (Sega, 1986)
        Рельсы: запрограммированный маршрут камеры
        Зона свободного хода (односторонняя)
        Статическое упреждение

        Пятое поколение приставок, среди них PlayStation и Nintendo 64, открыло новые аппаратные возможности, положив начала грубому, но настоящему 3D. Приёмы трёхмерной камеры — сами по себе захватывающая и многогранная тема, но поддержка 3D повлияла и на двухмерные игры. Разработчики теперь могут приближать камеру, наклонять вид и даже сочетать 2D и 3D — то, что мы сейчас называем 2,5D, когда игра идёт на двухмерной плоскости, но в объёмном мире.
        Очень много трафика...
      • Хроники лаборатории: как мы молотый кофе считали софтом для анализа клеточных структур



          Другие статьи цикла:
          Здравствуйте, я Meklon и я кофеин-зависимый
          Компот из кофейных сухофруктов. Знакомимся с каскарой — лучшим другом велосипедиста

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

          В целом, компьютерный анализ изображения — штука гибкая и может применяться в совершенно странных задачах. Заодно проверим, можно ли заменить турку колбой с магнитной мешалкой. В конце концов, главный принцип выживания в лаборатории — «Нет кофе — нет работы») Под катом очень много фотографий, но я постарался их ужать до приличных размеров.
          Читать дальше →
        • Знаменитый хакер Geohot собрал беспилотный автомобиль у себя в гараже



            Американский хакер Джордж Хоц, более известный под ником Geohot, прославился, когда выпустил первый в истории джейлбрейк для iPhone. Семнадцатилетний школьник взломал iPhone в 2007 году, а спустя три года стал автором джейлбрейка Sony PlayStation 3.

            Сейчас у Джорджа новый мега-проект: самодельный беспилотный автомобиль. Парень отверг предложение о работе в Tesla с многомиллионным бонусом. Он всё делает самостоятельно.
            Читать дальше →
          • Использование Google Analytics в играх

            • Translation
            Во время разработки игры SUPERVERSE нам нужно было средство для отслеживания того, как игроки взаимодействуют с игрой, а также получения сведений о «железе», разрешении экрана, операционной системе и т.д. Эти данные могли пригодиться не только на этапе отладки, но и помогли бы изучить особенности поведения пользователей в игре.


            Читать дальше →
            • +15
            • 12.8k
            • 6
          • Да пребудет с вами прокрутка: теория и практика по камере в платформерах [1/2]

            • Translation
            • Tutorial
            Вторая часть

            От переводчика. Статью написал Итай Керен, основатель инди-студии Untame, автор игры Mushroom 11. Получился настоящий учебник по управлению камерой в играх с боковой прокруткой. Хоть там нет ни строчки кода ни на каком языке (вру, одна есть), думаю, несложно будет перевести всё это в инструкции для компьютера. Обязательно к прочтению всем программистам и дизайнерам, которые занимаются динамичными 2D-играми. Терминологию я переводил больше по смыслу: например, position-locking — «привязанная камера». Да, и для многих игр до 1983 года показана версия для Dendy — немного неисторично, но простим.

            Введение




            Работая над игрой Mushroom 11, я натолкнулся на множество дизайнерских и технических вопросов. Я не рассчитывал, что кто-то напишет о вершинной анимации или плавном изменении формы, но я удивился, что по работе с камерой, задаче с 30-летней историей, тоже практически не пишут.

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

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



              Несмотря на то что ассоциируется у многих он в первую очередь с косплеерами и комиксами, для игрового разработчика там тоже оказалось кое-что полезное, о чем я и хочу рассказать.
              Читать дальше →
            • NextCastle Party 2015: как я свою игру показывал

                Месяц назад я принял участие в инди-шоукейсе на питерском фестивале NextCastle Party 2015, и хотел бы поделиться с вами полученным опытом и впечатлениями. Я игродел-любитель, попасть на такое относительно крупное мероприятие — серьёзное достижение для меня. Давайте посмотрим, смог ли я правильно распорядиться предоставленными мне шансами и показать свою игру так, как следовало бы.


                Фото — Михаил Евстратов
                Читать дальше →
              • Как я много раз не бросил разработку своей второй игры


                  Картинка для привлечения внимания

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

                  Так как небольшой опыт создания игры у меня уже был, я вооружился не клавиатурой, как в прошлый раз, а карандашом и бумагой, и принялся «придумывать» игру. На разных листах А4 я записывал свои мысли по разным направлениям: игровые механики, сеттинг, интерфейс, правила, интересные мысли, запомнившиеся игры из детства и т. п.; при этом я параллельно шерстил Google Play Market в поисках вдохновения. В итоге, спустя несколько дней, было принято решение, что игра станет головоломкой, а именно — пазлом. За это время мой мозг и пальцы заскучали по программированию, в результате чего захотелось сделать хоть какой-нибудь прототип игры. Это сподвигло меня на более интенсивную проработку идеи пазла, и в итоге в качестве рабочего был принят вариант со следующими правилами: игровое поле состоит из квадратных кусочков пазла (далее они будут называться тайлами), на которых располагаются разноцветные линии; тайлы можно менять местами; цель игры: собрать пазл единственным образом, в котором линии одного цвета замкнуты в некий узор.
                  Продолжить создавать игру
                • Фоны старых квестов — методы разработки, секреты, советы

                  • Tutorial


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

                  Давайте, впрочем, вернемся к теме сегодняшней публикации. Считаю это маленьким открытием, и мне непременно нужно поделиться им с теми, кто собирается соединить некоторый отрезок своей жизни с тем, что может называться классической адвенчурой. Быть может это поможет вернуть на рынок игры, которые немного оттеснят «хипстерский пиксель» заменив его на то, что может напомнить времена лучших игр от «Westwood Studios», «Sierra» и «Lucas Arts». Предположу вскользь, что множество художников и так знают это. И, тем не менее — я не заметил публикаций на эту тему. Наша братия не спешит делиться своими секретами, сохраняя некую монополию на собственные открытия.

                  Я хотел приурочить эту статью к началу разработки собственной адвенчуры. Но кто знает, когда это произойдет? А вам эта информация может помочь уже сейчас. Стоит ли откладывать? Думаю, что нет. Лопаты в руки.


                  Продолжить копать
                • История света и тени в одной маленькой, но гордой игре

                    Если коротко, то суть статьи можно можно проиллюстрировать так:



                    Ниже небольшая история реализации освещения в игре подручными средствами.
                    Встречают, как известно, по одёжке, а когда в команде нет ни то, что арт-директора, а даже просто художника, обычному программисту приходится изворачиваться по-разному.
                    Читать дальше →
                  • Сравнение Visual Studio Community 2013 с Visual Studio 2013 Express. Особенности лицензионного соглашения

                      Совсем недавно корпорация Microsoft представила новую редакцию самой популярной среды разработки — Visual Studio Community 2013. Большинство разработчиков не могут разобраться в особенностях лицензионного соглашения, в следствии чего и возникают вопросы, например, «Можно ли использовать Visual Studio Community 2013 в коммерческой разработке?». Давайте вместе разберемся в этом вопросе.

                      Собственно как сама Microsoft позиционирует Visual Studio Community 2013? — это бесплатная полнофункциональная интегрированная среда разработки. Что это значит? — это значит, что любой индивидуальный разработчик может создавать бесплатные или платные приложения с помощью Visual Studio Community. К сожалению в редакция Community предоставляется без подписки MSDN.
                      Читать дальше →
                    • Как создать мощную систему игровых достижений

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



                      Хотя игровые достижения не должны быть основной целью в вашей игре, это не мешает им существенно влиять на поведение игрока и его вовлеченность. Давным-давно, на одном из крупных проектов передо мной поставили масштабную задачу: создать мощную систему игровых достижений. В течении следующих 30 месяцев, я, как раб на галерах, провел за проектированием и тестированием различных систем достижений в сотнях игр. Меня поглотила бесконечная обработка данных: игровых комментариев, постов на форумах, непосредственное общение с игроками, изменения в игровых рейтингах. Я совершил и продолжаю совершать кучу ошибок, но я также усвоил несколько бесценных уроков. И эти знания нельзя держать в секрете…
                      Перейти к урокам
                    • MMORPG без лишних деталей: Open Source



                        Как говорится: «обещанного три года ждут». Примерно столько лет назад мы начали разработку своей «оригинальной» браузерки. О ней мы уже рассказывали: MMORPG без лишних деталей, как рассказывали и о наших скромных успехах год спустя.

                        При этом мельком упоминалось, что код игры постепенно открывается. И вот наконец настал тот момент, когда мы открыли его полностью: github.com/Tiendil/the-tale под BSD лицензией. А это значит, что вы вот прямо сейчас можете начать пилить свою собственную браузерку с… ну с чем захотите.

                        Разработчики игр, будущие владельцы браузерок и просто любопытствующие приглашаются под кат.
                        Читать дальше →
                      • «Галоп пикселя — часть вторая» — перспектива, цвет, анатомия и прикладные упражнения

                        • Tutorial


                        «Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
                        «Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
                        «Галоп пикселя», часть III — Анимация (линк)
                        «Галоп пикселя», часть IV — Анимация света и тени (линк)
                        «Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)линк)

                        Первая статья данного цикла была воспринята тепло, вследствие чего затягивать с продолжением не имело никакого смысла, но, увы – это произошло. Зимнее наступление захлебнулось и плавно переросло в летнюю кампанию. В конце статьи я объясню почему, не хотелось бы вас огорчать с самых первых строк. Итак. Публика выразила желание ознакомиться с предметом глубже, чем предполагалось изначально. Большое количество писем пришло на почту, наряду с регулярными тычками в социальных сетях. В этом месте мне вспоминается одна фраза – «будьте осторожны в своих желаниях».

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

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


                        Лопатить пиксели
                      • Хроники лаборатории: крыса в полимерном шлеме, спектральный анализ банкой чипсов и синяя изолента


                          Знакомьтесь — подопытная крыса Теодор-младший.

                          Как многие знают, я сменил род деятельности и теперь основную часть времени я занимаюсь выращиванием суперсолдат и порабощением мира стволовыми клетками. Сразу хочу предупредить — работа в нашей лаборатории сопряжена с NDA, поэтому некоторых вещей я коснусь лишь поверхностно.
                          Когда вы занимаетесь наукой, то очень часто возникает необходимость решать сложные и нестандартные задачи. Какими бы глянцевыми и красивыми ни были ваши портативные коллайдеры, любовно приборетенные для разработок, иногда возникает необходимость создать что-то «на коленке» для проверки какой-то идеи. Особенно остро это ощущается в госучреждениях, где, несмотря на зачастую прекрасное финансирование, закон вынуждает организовывать межгалактический тендер на приобретение карандаша. Поэтому я расскажу вам про синюю изоленту, спектральный анализ с помощью банки чипсов и художественную лепку экзоскелета для крысы-мутанта. А заодно узнаем, стоит ли топить сухой лед в унитазе и можно ли потом это пить.
                          Дальше очень-очень много фотографий и текста
                        • Мистерия марсианской воды ч.2


                            Продолжение. Начало.

                            В 2005 году на орбиту Марса вышел новый современный космический аппарат — Mars Reconnaissance Orbiter. На его борту установлена камера высокого разрешения HiRise, гиперспектрометр CRISM, радар Sharad…

                            Камера HiRise снимает поверхность Марса с разрешением до 26 см на пиксель. Такое высокое разрешение обещало вывести исследование Красной планеты на новый уровень, и ожидания ученых оправдались. Поистине сенсационным наблюдением стали марсианские "ручьи", которые заметны на склонах кратеров в средних широтах.
                            Читать дальше →
                          • Сравнение снимков «Столпов Творения», сделанных телескопом «Хаббл» в разное время

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

                              Все хорошо знают знаменитые фото «Хаббла» — Столпы Творения.

                              image
                              Эти фотографии разделяет почти 20 лет

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

                              Итак, что же произошло на этом участке неба за 20 лет? Предлагаю полюбоваться, и сравнить эти две фотографии.

                              Под катом большой GIF.
                              Читать дальше →