• 6 интересных багов, с которыми я столкнулся, пока делал игру для ВКонтакте

      image

      Мне нравится делать игры, это мое хобби. В общей сложности около года в свободное время я делал игру на javascript для ВКонтакте. В настоящее время игра доделана, запущена, прошла модерацию ВКонтакте и доступна в каталоге игр. Это не статья вида “как я сделал игру”, а рассказ о тех проблемах, с которыми я столкнулся, пока ее создавал. Надеюсь, кому-то данная информация поможет избежать сложных ситуаций в своих проектах. Знай я о некоторых багах заранее, было бы гораздо проще, и, возможно, я бы принимал другие решения относительно кода. Добро пожаловать под кат за подробностями.
      Читать дальше →
    • Frontend: Разработка и поддержка (+голосование)



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

        Под катом будет рассказ, как мы стараемся организовать эти процессы, какие инструменты создаём для препарирования SPA. Кроме этого, мы поговорим о технических подробностях реализации Live Coding / Hot Reload и чуток о VirtualDom и React с Angular.
        Читать дальше →
      • Создание виртуальной волны



          Как всем известно, 71% поверхности Земли занимает вода. К сожалению или к счастью, корректно изобразить океан умеют единицы. Иван Айвазовский вошел в учебники живописи благодаря одним только морским пейзажам. В компьютерных играх все еще сложнее. Когда-то море в них обозначали скоплением синих пикселей, раскрашенных белыми квадратами пены. Со временем виртуальные моря стали больше похожи на снимки из отпуска, научились качать волну и покрываться рябью, в которой иногда даже отражались очертания парусников. Но они оставались самостоятельной стихией: натолкнувшись на берег, волна превращалась в незамысловатые угловатые полигоны. Настоящий прибой логично взаимодействует с пляжем, увлажняет песок и с шуршанием откатывается назад. Такого правдоподобия удалось добиться только в современных играх. В том числе в нашем Skyforge. И хоть в основные события будут разворачиваться на суше, игроки попадут и на тропические острова, и в шумные порты. Вода будет постоянно рядом. Ее «правильный» облик будет играть большую роль. И воссоздание морской стихии – серьезная математическая задача. Расскажу об этапах ее реализации.
          Читать дальше →
        • Иллюзия скорости

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

          Настоящее время и воспринимаемое время



          Читать дальше →
        • Разработка прибыльной Android игры двумя школьниками

          В данной статье хочу рассказать вам об опыте разработки одной простенькой игры под Android, которая многократно окупилась еще на стадии разработки!

          image

          Читать дальше →
        • Как я создавал прибыльный глобальный SaaS проект, от разработки до продаж

          • Tutorial
          Некоторые люди здесь знают меня как основателя двух прибыльных SaaS проектов и автора популярных статей о них (статья про Postio, статья про Menumake). В этом тьюториале я расскажу о том как я, обыкновенный разработчик, в одиночку создавал свой первый глобальный проект и что из этого получилось (TL;DR: хеппи-энд и первые продажи). Ну и заодно пробежимся по всем проблемным вопросам, начиная о том как найти неконкурентную и гарантированно прибыльную идею (оставим создание следующего Гугла более амбициозным и умным людям), и заканчивая тем, как принимать платежи глобально, находясь при этом в России. Летс гоу.

          Ищем идею


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

          • Перевод
          • Tutorial


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

          Содержание


          1. Памятка для начинающих
          2. Основные принципы
          3. Процесс
          4. Инструменты
          5. Словарь
          6. Платформы
          7. Другие ресурсы
          Читать дальше →
          • +43
          • 14,4k
          • 2
        • Нужна ли замена JSON? По следам статьи про KTV

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

            Прикладываю к статье опросы. Помогите мне, пожалуйста, разобраться, в ситуации. :-)
            Читать дальше →
          • Обзор физики в играх Sonic. Часть 1: твердые тайлы

            • Перевод
            image

            От переводчика: этот пост — перевод одной из частей масштабного обзора физики (Sonic Physics Guide) в играх серии Sonic the Hedgehog для Sega Genesis/Mega Drive и Sonic CD. В следующих частях рассматриваются такие темы: бег, прыжки, вращение, потеря колец, поведение под водой, суперскорость, специальные возможности, камера, анимации и некоторые другие. Так как частей много (14 штук), в конце поста я добавил опрос. Стоит ли продолжать — решать вам.
            Читать дальше →
            • +51
            • 39,5k
            • 5
          • Браузерная 3D WebGL игра с возможностью установки в IndexedDB



            Запаситесь попкорном — я поведаю вам интересную историю… В общем, это будет одно из тысячи сочинений на тему «Как я написал свою игру». Сначала я планировал осветить как можно больше технических деталей, но потом понял, что их слишком много для одной статьи и она получится огромной. Поэтому «первая серия» будет, скорее, обзорной. Если будет интересно, то продолжу. Итак.
            Читать дальше →
            • +15
            • 16,7k
            • 6
          • Создание космической браузерной игры. Первый опыт

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

              В качестве вступления


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

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

              Читать дальше →
            • Рецепт вращения планет в космосе на HTML5 + JavaScript

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

                Вычеркиваем


                После непродолжительного подбора различных способов реализации, сразу были исключены варианты:
                • с gif-анимацией (из-за низкого качества изображения);
                • с Flash (по договоренности, Flash-технологии решили в проекте не использовать);
                • с анимацией с помощью JQuery посредством функции $().animate (по причине ее прожорливости).


                CANVAS в помощь!


                Итак, остановились мы на использовании Canvas и JavaScript, посчитав этот вариант оптимальным для реализации нашей задачи.
                Читать дальше →
              • 40 ключевых концепций информационных технологий доступно и понятно

                • Перевод
                Представляю вашему вниманию перевод очень ёмкой, и в то же время достаточно краткой (для такого масштаба проблемы) статьи Карла Чео. Я решил, что очень хочу сделать её перевод практически сразу, как только начал читать, и очень рад, что в итоге сделал это.
                Для того, чтобы сделать обучение более веселым и интересным, представляю вам перечень важных теорий и концепций информатики, объяснённых с помощью аналогий с минимальным количеством технических деталей. Это будет похоже на очень быстрый курс информатики для всех с целью просто дать вам общее представление об основных концепциях.

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

                Также зацените эту инфографику (вариант на русском), если вы просто начинающий программист.
                Читать дальше →
              • Интерактивная музыка в браузере

                В последнее время появилось много примеров использования Web Audio API для синтеза звука в браузере. Ознакомиться с наиболее интересными проектами в этой области можно на сайте Audiocrawl.co:

                image

                Какие библиотеки/фреймворки можно использовать для создание аудио-приложений? Есть MIDI.js, поиском по Github можно найти ещё несколько разной степени заброшенности.

                Но хотелось бы чего-то бОльшего:
                • полный набор виртуальных инструментов, а не только пианино или синусоидальная волна;
                • менять музыку даже во время воспроизведения;
                • играть отдельные ноты/аккорды;
                • должно работать в том числе и на мобильных платформах.

                И такая библиотека есть!
                Читать дальше →
                • +22
                • 13,3k
                • 4
              • Реальные причины роста популярности PhoneGap и других кроссплатформенных инструментов разработки



                  Кроссплатформенные инструменты разработки вроде PhoneGap и Xamarin сейчас популярнее, чем когда-либо. Это хорошо. Правда, причины такой популярности кроются отнюдь не в желании девелопера создать качественное приложение, которое понравилось бы пользователю. На самом деле причины несколько иные.

                  Согласно новому исследованию компании Visionmobile, базирующемуся на результатах опроса 8000 разработчиков, 30 % всех девелоперов, которые занимаются созданием мобильных приложений, используют кросс-платформенные инструменты. Но это вызвано желанием разработчика сэкономить свое время и деньги, а не улучшением взаимодействия с пользователями.
                  Читать дальше →
                • Webpack для Single Page App

                    Привет!





                    Отгремели фанфары, прошел звон в ушах от истязаний «евангелистов», модников в сфере фронтенд разработки. Кто-то ушел на sprockets, кто-то пустился во все тяжкие и стал писать свои велосипеды или расширять функционал gulp или grunt. Но статей по поводу популярных инструментов автоматизации процесса сборки – стало существенно меньше и это факт! Пора бы заполнить освободившееся пространство чем-то существенно иным.

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

                    Читать дальше →
                  • Как сделать тетрис за полгода на cocos2dx

                    В своей статье я бы хотел поделиться технической частью игры, которую сделали два человека. Будут рассмотрены основные архитектурные шаблоны (design patterns) и приёмы, дополнительные библиотеки, особенности портирования при работе с движком cocos2dx. Исходный код здесь.


                    Читать дальше →
                  • [ libGDX ] Опыт разработки игры с использованием Box2D

                    • Tutorial
                    Здравствуй, Хабр! Ух! Давно же я не писал здесь. Итак, начну пожалуй с небольшой предыстории и заодно приведу скриншот получившейся игры.

                    TOTAL100
                    Скриншот игрового процесса
                    Читать дальше →