Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

15000 FPS. Хардкорные трюки ч.2 — ну cовсем нестандартное окно

Время на прочтение6 мин
Количество просмотров27K

Стремимся к «pixel perfect» + прячем окно от RDP!


imageЭто продолжение серии постов с префиксом «15000 FPS», начало тут: часть 1 и часть 1.5. Можно и к этому окну добиться 15К FPS, но разумный подход тут не долбить FPS в цикле Render(), а перерисовывать лишь при необходимости, а большую часть остальной работы за нас винда сама сделает. Глядя на скриншот, первая мысль кодера — «ха, да мы все умеем делать нестандартные окна!».
Но дизайнер поопытнее заподозрит неладное: тень от окна какая-то не виндовая, и вообще тут градиенты и альфа-смешивание, не обошлось без честных 8 бит на альфа-канале. Как?
А нужен только Win32 API + System.Drawing.Bitmap, работать будет даже на Win2K с .Net 2.0 и это окно великолепно и быстро масштабируется и перемещается без глюков.
«Кастомное альфа-смешивание окна на десктоп и не тормозит? Вы шутите?».
Совсем не шучу
Всего голосов 82: ↑72 и ↓10+62
Комментарии29

Пишем игру-клон Fruit Ninja (часть 1)

Время на прочтение17 мин
Количество просмотров30K
imageВ этом замечательном туториале от Аллана Тана мы создадим собственную игру, похожую на Fruit Ninja от Halfbrick Studios, используя Cocos2D и Box2D.
В большинстве подобных игр, когда игрок разрезает спрайт, тот делится на два заранее подготовленных спрайта; вне зависимости от того, в каком именно месте мы разрубили объект.
Однако в этом туториале мы сделаем вещь покруче. Наши фрукты можно будет резать на несколько кусочков, и резаться они будут в зависимости от того, где прошел палец игрока!
Очевидно, что это руководство не для новичков и требует продвинутых знаний Cocos2D и Box2D. Если вы только начали программировать под iOS, то вам лучше, как минимум, пробежться глазами по введению в Cocos2D и в Box2D.

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



Всех заинтересовавшихся прошу под кат! Warning: много переведенного текста!
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии16

Способы передвижения компьютерных персонажей (Часть 1)

Время на прочтение6 мин
Количество просмотров64K
Все, кто начинал заниматься реализацией игрового искусственного интеллекта, наверняка сталкивались с проблемой реализации движений своих персонажей. Дело в том, что поведение и в реальном мире в большей степени определяет интеллектуальность того или иного существа. Даже люди друг друга зачастую оценивают по поведению (что немного неверно). Эта статья рассчитана на тех, кто только приступает к реализации своего первого игрового ИИ. Я расскажу о видах перемещений, их преимуществах и недостатках, а также покажу на примере как можно реализовать тот или иной способ на языке C++. Замечания и критика, а так же свои точки зрения приветствуются.
Читать дальше →
Всего голосов 77: ↑67 и ↓10+57
Комментарии14

Отладка EXC_BAD_ACCESS в Mac OS X и iPhone

Время на прочтение2 мин
Количество просмотров34K
Привет! В этой статье я постараюсь рассказать о том, как можно облегчить себе жизнь при отладке iPhone- и Mac-приложений. Речь пойдет об отладке исключения EXC_BAD_ACCESS, одного из самых неприятных в природе.
Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии25

Обучение программированию через игру или как быстро собрать весь мёд

Время на прочтение5 мин
Количество просмотров44K
Несколько лет назад я начал преподавать свой любимый язык python школьникам. И возникла такая задача: рассказать про объектную модель, но что бы это было не скучно и как можно нагляднее. И тут меня не сразу, но осенило — пчёлы!

Отчего пчёлы и как самому ими порулить
Всего голосов 35: ↑30 и ↓5+25
Комментарии31

Покадровые анимации и шейдеры в iOS

Время на прочтение2 мин
Количество просмотров17K
При разработке 2D игр часто сталкиваешься с покадровыми анимациями, и чем выше их качество, тем больше памяти они потребляют. С такой проблемой мы столкнулись при рендере анимации волос персонажа — художники рисуют пол сотни кадров замечательной графики с кучей мелких деталей и это очень быстро занимает всю доступную память. Собрали, замеряли, получилось 4 текструы по 16 мегабайт каждая. Детализация графики того стоит, но многовато как-то для одной анимации :)

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



Как это реализовать смотрите под катом
Всего голосов 34: ↑30 и ↓4+26
Комментарии14

Разработка патчера к игре

Время на прочтение4 мин
Количество просмотров27K
После написания первой игры перед нами встала задача, о которой мы даже не задумывались ранее. Это разработка патчера к игре. Для нашего патчера мы определили следующие требования:

  • Поддержка юнити игр
  • Дружелюбность к пользователю
  • Отображение игровых новостей
  • Универсальность для всех игр разработанных нашей студией
  • Гибкость настройки
  • И самое важное: умение делать небольшие патчи для больших файлов

Ссылка на исходники патчера в конце статьи.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии28

Миллион загрузок в месяц или как сделать хороший старт на Google Play

Время на прочтение5 мин
Количество просмотров33K
Всем привет,



Сначала хотел озаглавить топик «Миллион загрузок в месяц или как сделать хороший старт на Google Play на примере одной игры», но потом решил, что это слишком длинно. Тем не менее, сегодня я буду говорить о своей последней игре. Не только потому, что мне хочется немного ее прорекламировать (хотя и это тоже, чего скрывать), но и потому что каждый запуск новой игры индивидуален и без «привязки к местности» рассказывать, наверное, было бы не совсем правильно.
Читать дальше →
Всего голосов 110: ↑99 и ↓11+88
Комментарии45

Полезные штуки для iOS-разработчика #2

Время на прочтение3 мин
Количество просмотров38K
Некоторое время назад я прочитал интересный пост, посвященный полезным фрэймворкам и библиотекам для разработки под iOS. С вашего позволения и согласия Coder89 представляю «Полезные штуки для iOS-разработчика часть вторая».
Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии19

Git Wizardry

Время на прочтение17 мин
Количество просмотров451K
1 Введение


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

Данный же топик задумывался как непосредственное введение в работу с git, нечто
среднее между tutorial и обобщенной справкой, до которого все же рекомендуется
прочитать упомянутое выше введение. Сознательно избегаются технические
подробности работы git, употребляются только общие для СКВ термины и
ограничивается список упоминаемых команд.

Читать дальше →
Всего голосов 89: ↑66 и ↓23+43
Комментарии76

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 2

Время на прочтение5 мин
Количество просмотров61K

Great Appeal или девушка на миллион



Девушка на миллион

Итак, в прошлой статье мы закончили на том, что разобрались с тем, как получить «показы» нашего приложения в AppStore.

Иногда ошибочно считается, что запуск – это самое сложное. Это, мягко скажем, не так. Настоящая работа начинается после запуска.

Команда, искренне уверенная в качестве своего проекта, ждет вертикального взлета продаж с асимптотой к бесконечности… Но обычно получается больше похоже на новогодний фейерверк – короткий взлет, стремительное падение и забытье.

Кто виноват и что делать?
Всего голосов 116: ↑102 и ↓14+88
Комментарии27

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 1

Время на прочтение5 мин
Количество просмотров105K

Схема успеха



Джон, мы потеряли два листа математических выкладок! Что делать?
Как обычно, Билл… напиши: «отсюда с очевидностью следует…»


image

Чтобы прочитать некраткую сопроводительную записку к схеме – добро пожаловать под кат.

Читать дальше →
Всего голосов 130: ↑119 и ↓11+108
Комментарии35

Руководство по работе с Apple Push Notification Service

Время на прочтение13 мин
Количество просмотров264K
Статья представляет собой вольный перевод руководства по работе с Apple Push Notification Service сайта raywenderlich.com и некоторые мои дополнения.

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

Но что если происходит что-то интересное и вы хотите сообщить об этом пользователям, даже если ваше приложение у них не запущено?
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии33

Оптимизация игр под iOS платформу. Векторизация кода

Время на прочтение11 мин
Количество просмотров16K
Давно назревало желание написать парочку статей, в которых я смогу выложить свой опыт и знания на тему оптимизации игр под ARMv7 архитектуру CPU и PowerVR SGX 5 серию GPU, читай iOS платформу. Но все, или почти все, советы в равной степени применимы под другие системы с тем же железом, читай Андроиды. Данный материал в может быть применен не только в играх но и в большинстве ресурсоемких приложений — обработка изображений, аудио, видео и т.д. Начну свою первую статью с наиболее важной, ИМХО, оптимизации – векторизации кода под NEON.

Эта статья началась как доклад, на конференцию, которая состоится 24.11. Кладезь советов по оптимизации под iPhone можно найти здесь. Следующие статьи будут развивать в ширь и глубь темы материала из этой презентации.
Познакомиться с первой статьей
Всего голосов 54: ↑48 и ↓6+42
Комментарии33

Пара слов о Header Map в XCode

Время на прочтение3 мин
Количество просмотров5.6K
Семейство языков Си/Objective C/C++ нуждается в препроцессоре. Препроцессор пропускает компилируемый исходник через себя, прежде чем отдать текст на вход компилятору. Пожалуй самая важная часть работы препроцессора заключается в подстановке на место директив #include<имя-файла> содержимого указанного файла. Обычно указывают относительный путь (ex: stdio.h, sys/stat.h). Возникает закономерный вопрос — как препроцессор находит заголовочные файлы?

Классический ответ такой: препроцессор последовательно перебирает пути в INCLUDE_PATH начиная с первого. Относительный путь из директивы include разрешается относительно (sic) папки из INCLUDE_PATH. Если файл не найден, переходим к следующему элементу INCLUDE_PATH. Если INCLUDE_PATH исчерпан, компилятор сообщает об ошибке.

Но Apple как всегда вносит свои коррективы. При сборке в XCode дополнительно используются т.н. header map. Это индекс всех заголовочных файлов в проекте. Если XCode «знает» про foobar.h, то данный файл будет доступен просто по имени (#include<foobar.h>), вне зависимости от фактического размещения на файловой системе.

Это прекрасное решение — до тех пор, пока оно работает как задумано. К сожалению, механизм header map плохо документирован, что не способствует быстрому разрешению проблем. Постараюсь восполнить этот пробел.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии7

Additional XCode SDK — что это такое, и почему вам это не нужно

Время на прочтение3 мин
Количество просмотров11K
Apple привносит в мир много нового. Удачные нововведения приживаются, а неудачные понемногу отмирают. Кстати неудачных решений оказывается не так уж и мало и я считаю это абсолютно нормальным. В конце концов мы уважаем Apple именно за готовность идти на риск и экспериментировать:)

Все это в полной мере относится и к средствам разработки. В прошлой заметке я писал о нестандартном алгоритме поиске заголовочных файлов в XCode. Сегодня я хочу подробнее остановиться на так называемых SDK — в XCode этим термином называют комплект библиотек и заголовочных файлов под определенную версию iOS или Mac OS. Зачем нужны SDK в понимании xCode?
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии10

Миллион партиклов. Часть 1

Время на прочтение6 мин
Количество просмотров22K
imageХочу рассказать как я создавал, и потом переводил собственную систему частиц на GPU. Как я наивно думал просто будет сделать (мол чо там, двигать частицы, тююю). На самом деле о нюансах, возникающих при реализации, можно говорить очень много и долго, поэтому далее я расскажу только об решении проблем «узких» мест.

История вопроса


Заказчик разрабатывает динамические музыкальные фонтанные комплексы, которые управляются через dmx контроллеры по сценарию. Редактор сценариев он сделал самостоятельно. Но на практике создавать сценарии оказалось неудобным, потому что для того, чтобы видеть как получается нужно иметь целиком построенный и запущенный фонтан. Кроме того, если вдруг дизайнеру хореографу захотелось добавить дополнительные сопла для фонтана — то этого сделать уже практически невозможно. Поэтому заказчик захотел обзавестись модулем для моделирования фонтанов, чтобы хореограф мог без настоящего фонтана разрабатывать сценарии. В целом у меня вышло что-то в таком духе: вот видео того что было смоделировано Hawaii50.wmv, а вот то, что вышло в реале после конструирования фонтана: H5OClip.wmv
Читать дальше →
Всего голосов 90: ↑86 и ↓4+82
Комментарии35

[Dev Story] Игра «Пазлы: Маша и Медведь» для iPad

Время на прочтение7 мин
Количество просмотров8K
Статья «простым языком» или «на пальцах» о том, как мы создавали нашу первую игру — «Пазлы: Маша и Медведь» . Рассказ менеджера проекта, программиста, дизайнера и менеджера по рекламе. Собственно в такой последовательности и будем вещать.
Кому интересно — велком под кат.
Продолжение...
Всего голосов 17: ↑12 и ↓5+7
Комментарии13

Коллекция паттернов и антипаттернов JavaScript

Время на прочтение1 мин
Количество просмотров5.5K
Несколько месяцев назад на Гитхабе появилась очень неплохая коллекция паттернов и антипаттернов JavaScript и jQuery на все случаи жизни. Автор проекта Shi Chuan проделал отличную работу, собрав десятки примеров кода из книг и других источников. Репозиторий уже набрал почти полторы тысячи подписчиков и активно пополняется. Всё очень удобно разложено по категориям и откомментировано. Наслаждайтесь!
Всего голосов 68: ↑54 и ↓14+40
Комментарии81

Подкаст Appprofessionals — Продвижение мобильных приложений: один из самых сложных вопросов индустрии

Время на прочтение1 мин
Количество просмотров2.3K
image
Мы сделали подкаст с представителями компаний Mail.ru и Legendary Made, из которого вы узнаете о том, как сделать известным свой мобильный продукт. Если вы мечтаете затмить Angry Birds или Instagram, или хотя бы сделать так, чтобы ваш продукт продавался — это выпуск для вас.
В рамках дискуссии были затронуты интересные и актуальные темы:

• Как воздействовать на общественное мнение и word-of-mouth?
• Существуют ли программные методы продвижения мобильных приложений в сторах?
• Помогает ли работа с технологическими блогерами продвижению или нет?
• Как правильно определять свою аудиторию?

Эти и другие вопросы обсуждают Александр Пацай из Mail.ru, Игорь Зеленов и Виталий Смородин из Legendary Made. Если у вас появятся вопросы и комментарии к подкасту — наши уважаемые спикеры обязательно примут участие в обсуждении.
Всего голосов 4: ↑2 и ↓20
Комментарии0

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность