Search
Write a publication
Pull to refresh
14
0
Send message

Разработчики игры Game Dev Tycoon подшутили над пиратами

Reading time1 min
Views340K
Что будет, если игроки скачают нелицензионную копию симулятора игровой студии, а в игре столкнутся с пиратством — да так, что играть станет невозможно? Разработчики новой игры Game Dev Tycoon не удержались от того, чтобы провести эксперимент. Вместе с платной версией своей игры они создали «крякнутую» пиратскую версию с небольшими изменениями.

Как говорит один из авторов, уже через минуту после регистрации на трекере игру начали активно качать.


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

Темы оформления. С блэк-джеком и WeakReference

Reading time10 min
Views15K
Как-то раз передо мной встала задача сделать в приложении на Android поддержку тем оформления. Что хотелось получить:

  1. Возможность переключить оформление — изменить некоторые цвета и графику
  2. Смена должна происходить “на лету”, для пользователя должно измениться только оформление, все остальное (содержание полей ввода, позиция элементов в списке и т.п.) меняться не должно
  3. В перспективе хотелось бы, чтобы тема могла изменяться и без участия пользователя, например по времени суток
  4. Не хотелось бы в значительной степени изменять уже существующий код или разметку. В идеале хотелось бы просто как-то пометить элементы в разметке
  5. Было бы здорово уметь подгружать новые темы без обновления приложения.


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



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

Захабренный договор на разработку сайта, дизайна, софта. Версия 1.1

Reading time18 min
Views246K
На сайте немало постов о том, какие условия нужно включать в договор на создание сайтов и программ (краткий список ниже), но нет договора в формате, который можно взять за основу для составления своего договора. Мы изучили условия из постов (спасибо авторам), подумали над ними, переработали и учли в предлагаемой на ваш суд форме договора. Так что договор пока можно считать частично «захабренным».


Договор авторского заказа

Создание нестандартного компонента с нуля. Часть 2

Reading time10 min
Views21K

Вступление



Вновь приветствую, коллеги.

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



В этой статье под катом мы продолжим накручивать свистелки и... дополнительные возможности нашей клавиатуре. На повестке дня:

  1. Сохранение состояния компонента при повороте экрана
  2. добавление подсветки при оверскролле
  3. передача параметров в XML
  4. Мультитач зуммирование
Читать дальше →

Android NDK: OpenSL ES

Reading time9 min
Views24K
Здравствуйте, уважемые хабражители!
Недавно, читая хабр, я увидел статью об Android NDK и OpenAL. А в комментариях был задан вопрос о OpenSL ES. Тогда у меня и родилась мысль написать статью об этой библиотеке. Я занимался этой темой, когда мне понадобилось добавить звуки и музыку в игру под Android, написанную на C++, под NDK. Статья не претендует на полноту, здесь будут лишь основы.

Содержание:
  1. Краткое описание структур OpenSL ES
  2. Инициализация механизма библиотеки и создание объекта для работы с динамиками
  3. Проигрывание PCM(wav)
  4. Проигрывание MP3, OGG
  5. Заключение

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

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

Reading time4 min
Views61K
Мы любим игры для мобилок, а ещё очень ценим цифры. Но когда мы ищем в вебе статистику о трендах в разработке мобильных игр, мы быстро понимаем, что в общем-то нет единого места, где бы всё это добро было собрано. Так что вот оно, куча статистики индустрии мобильных игр, которая сделает вас очень популярным на следующей игровой конференции, или коктейльной вечеринке, когда вас спросит какой-нибудь скептик…

“Неужели люди действительно тратят так много времени на видео-игры?” Да, мы действительно тратим.

(прим. переводчика: автор частенько повторяется, простим ему это)


(Примечание к фото: мы никогда не смотрим выше)
Читать дальше →

Три самые ненавистные вещи в компьютерах

Reading time4 min
Views48K
Всё ниженаписанное касается не только и не столько опытных пользователей, сколько выражает обобщённые причины неприязни к современным компьютерам (то есть к компьютерным интерфейсам, так как внешний компьютеров вид не вызывает особых нареканий) со стороны малооптыных пользователей, которые не хотят тратить много времени на получение компетенции.

Итак, три самые ненавистные вещи для пользователей: изменения, неожиданности, разрыв контекста.

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

В качестве альтернативы я буду сравнивать несколько других интерфейсов: автомобиль, пианино, печатная машинка.

Изменения


Компьютеры позволяют менять интерфейс (напоминаю, речь про интерфейс для решения задачи) очень быстро и легко. Появление новых функций ставит программиста/разработчика интерфейса/etc перед проблемой логического переупорядочивания элементов. Например, было три функции в top level, теперь их стало семь, давайте разделим их на две логические группы (3 и 4) — всё ок, никакого хаоса.
С точки зрения пользователя: раньше было три логические функции, теперь они куда-то исчезли, на их месте появились два меню, причём одно действие в первом меню, а оставшиеся два во втором. Ад, ужас, погибель, проклятье программисту.
Читать дальше →

«Вычислительная техника и её применение» (ноябрь 1990)

Reading time10 min
Views42K
Дома у меня, как оказалось, сохранилась небольшая стопка потёртых компьютерных журналов, от 10-летней давности и старее. Погружение в эти страницы — не только приятная ностальгия, но и весьма интересный инсайт в ценности и чаяния того времени. Кроме того, хотелось бы сохранить всю эту информацию в более долговечной форме, чем бумажные страницы.

Я собираюсь выложить здесь подборку материалов из этих журналов, с указанием издания и авторов; поскольку до сих пор все эти тексты не существовали в цифровом виде, то НЛО вряд ли будет иметь ко мне претензии за копипаст.

Самый старый из сохранившихся номеров — "Вычислительная техника и её применение" за ноябрь 1990. Тема номера — Norton Commander. На обложке — три неопределённых компьютера с логотипами IBM, AT&T и Apple. Сзади — ещё один неопределённый компьютер с некой САПР на экране, цитата В.М.Глушкова, и адрес редакции — «СССР, Москва, Центр, проезд Серова, 4» — даже без индекса. Цена 20 коп.



Авторы выпуска: (интересно, живут ли они на Хабре?)

КЛЯУС Сергей Витальевич — научный сотрудник, занимается разработкой программного обеспечения АСУ, СУБД и систем передачи данных.

СЛОБОДЧУК Вячеслав Викторович — научный сотрудник, занимается исследованием и разработкой локальных вычислительных сетей.

ЖАРИКОВ Л.Н., СУХОРУКОВ Ф.Д. — программисты.
Читать дальше →

Дайджест новостей из мира мобильной разработки за последнюю неделю №9 (8 — 14 апреля 2013)

Reading time6 min
Views10K
Одним из главных событий этой недели стало удаление AppGratis из App Store – глава компании недоумевает, в то время как некоторые его оппоненты говорят, что на самом деле AppGratis не больше, чем Black Hat маркетинг. Также Google начал распространение новой версии магазина Play, наш коллега поделился своим опытом как увеличить загрузки сыграв на имени приложения, а автор SQUIDS подсчитал, сколько на самом деле денег приносят мобильные игры (развенчав, попутно, пяток устоявшихся мифов).

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

Создание нестандартного компонента с нуля. Часть 1

Reading time11 min
Views39K

Вступление


Приветствую, коллеги!

Достаточно часто при разработке мультимедийных Андроид-приложений (далее просто “приложений”) мы сталкиваемся с задачей создания собственных компонентов, не предусмотренных в системе. Это могут быть всяческие ручки-переключатели, визуализаторы спектра и т. п. Некоторые из них могут быть получены простой заменой графического ресурса, поворотом канвы на 90 градусов и т. п. Но, иногда, все же приходится делать что-то свое “с нуля”.
В этой статье я собираюсь рассказать о создании компонента — простой клавиатуры фортепиано, при помощи наследования от класса View и реализации всех внутренностей “самостоятельно”. Почему в кавычках — увидите дальше.

В серии статей я постараюсь осветить такие вопросы, как:

  1. отрисовка компонента
  2. добавление скроллинга с использованием стандартных скроллбаров
  3. взаимодействие, использование селекторов для клавиш
  4. Сохранение состояния компонента при повороте экрана
  5. добавление подсветки при оверскролле
  6. передача параметры в XML
  7. pinch zoom


Первая статья будет о первых трёх пунктах.

Если Вам интересны эти темы, добро пожаловать под кат.
Читать дальше →

Основы безопасности операционной системы Android. Уровень ядра

Reading time6 min
Views101K

Вступление


Самой распространенной операционной системой для смартфонов на сегодняшний день является Android. Но не только этот факт подогревает интерес к ней. Открытость, возможность что-то настроить, подкрутить, и, естественно, сломать тоже в немалой степени способствуют увеличению популярности этой платформы. Я попробую поделиться опытом, как устроена эта операционная система, а так же рассмотреть систему безопасности. Всем, кому интересно, добро пожаловать! В этой статье я рассмотрю безопасность на уровне ядра.
Читать дальше →

Первоапрельские CSS-сниппеты

Reading time3 min
Views26K
Предлагается вот такой вот комплект CSS снипетов, которыми можно раскарсить первое апреля.

/*
  Turn every website upside down
*/
body {
  /*-webkit-transform: rotate(180deg);
  transform: rotate(180deg);*/
}

/*
  blur every website for a split second every 30 seconds
*/
body {
  /*-webkit-animation: blur 30s infinite;*/
}

/*
  Spin every Website
*/ 
body {
  /*-webkit-animation: spin 5s linear infinite;
    animation: spin 5s linear infinite;*/
}

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

Видеозапись с помощью Directshow.NET

Reading time9 min
Views37K
Добрый день, уважаемые хабрапользователи. Некоторое время назад мне пришлось работать над несложным windows-приложением, в котором требовалось производить аудио- и видеозапись с различных устройств. В частности, захват аудио нужно было производить с шести каналов карты MAudio, а захват hd видео — с двух карт захвата AverMedia, сигнал на которые приходил с видеокамер по компонентному входу. Также нужно было делать скриншоты с документ-камеры, подключенной по USB-интерфейсу. Приложение было решено писать на C#, а видеозапись производить при помощи библиотеки DirectShow.NET.

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

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

Познавательная анатомия языков в iTunes

Reading time3 min
Views7.8K
привет Хабр,

Те, кто сталкивался с локализацией ios приложений на разные языки, не могли не обратить внимание на все пышное разнообразие языковых настроек в Itunes Store и в Itunes Connect. Их настолько много, что сходу не поймешь, где, что и на каком языке будет отображаться. Этим постом я попытаюсь провести интересующихся неискушенных через языковые измерения не всегда понятного и удобного Itunes хозяйства и, следовательно, уберечь от переживаний (от легкого изумления а ля «Воно оно как...» до тяжелого ступора вроде «да какого хрена ?! „), ну и, возможно, от ошибок. А бывалые, думаю, найдут для себя некоторые новые моменты.

Если в мобильном сторе с языком все еще даже ничего, то когда дело доходит до продвижения в вебе- Itunes и itunes preview являют иногда языковые сюрпризы. Имеем 5 измерений:



#1 на первой картинке это: Название, описание и скриншоты


Немного кэпа: Их можно настроить под каждый язык в Itunes Connect при сабмите приложения в аппстор И они никак не связаны с языками, на которые вы перевели интерфейс приложения. Более того, не стоит спешить делать скриншоты с бенгальской или фарси версии вашего приложения (в принципе с фарси я загнул… просто даже украинской ), ибо список языков, на который можно локализовать эти три параметра, весьма ограничен, хоть и покрывают бОльшую часть Землян:

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

Моделирование большого количества взаимодействующих друг с другом частиц

Reading time6 min
Views30K
Рассмотрим ситуацию, когда необходимо обрабатывать столкновения между объектами. Как вы в этом случае поступите? Вероятно, самым простым решением будет проверить каждый объект с каждым другим объектом. И это правильное решение, и все будет замечательно до тех пор пока объектов не много. Как только их станет порядка нескольких тысяч, вы заметите, что все стало как-то медленно работать. А если частиц несколько десятков тысяч или сотен? Тогда все замрет. Вот здесь уже интересно, на какие хитрости и оптимизации вы пойдете, чтобы решить такую проблему.

Для простоты, будем рассматривать 2D случай, частицы круглые, радиус частиц у всех одинаковый.

Содержание


1. Обзор алгоритмов
1.1. Полный перебор
1.2. Sweep & Prune
1.3. Регулярная сеть
2. Некоторые оптимизации
2.1. Sweep & Prune
2.2. Регулярная сеть
3. Сравнение скорости выполнения
4. Приложение (программа и исходный код)
5. Заключение

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

Баланс в играх жанра Tower Defense (часть 1)

Reading time7 min
Views69K
В данной статье речь пойдет о принципах вычисления баланса в нашей игре жанра Tower Defense (TD), которую мы выпустили летом 2012г. для платформ iOS и Android. Мы расскажем, c какими сложностями и ограничениями пришлось столкнуться, каков был ход мыслей геймдизайнера при выборе того или иного решения, и как был получен конечный результат.

Достижения игры
1. побывала в топ6 и топ7 в категориях US Appstore;
2. занимала топ1 категорий и топ7 overall в RU Appstore;
3. «письмо счастья» от Apple;
4. 425 000 закачек;
5. 5 звезд (средняя оценка для всех магазинов);
6. множество положительных комментариев;
7. обзоры на ведущих мировых мобильных порталах.


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

Сетка в дизайне интерфейсов для Windows Phone: строгий учитель или добрый помощник? (Часть 2)

Reading time4 min
Views12K
Продолжаем публиковать статьи по следам Design Camp. Сегодня у нас продолжение статьи Егора Гилева (yegorg) об использовании сетки в Windows Phone. Статья приведена как есть и отображает авторскую точку зрения на дизайн приложений под Windows Phone.

Сетка базовых линий


Для выравнивания текста по вертикали мне гораздо больше нравится другое решение — сетка базовых линий. Это просто равномерная сетка из горизонтальных линий, как в школьной тетради. Вот пример экрана приложения «Право.ru», построенного на основе сетки базовых линий:


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

Clang API. Начало

Reading time11 min
Views35K
Сейчас с уверенностью можно утверждать, что времена самописных C++-парсеров постепенно отходят в прошлое. На сцену медленно, но неумолимо выходит clang — полноценный C++-фронренд и компилятор, предоставляющий своим пользователям богатое API. С помощью этого API можно распарсить исходный текст на C/C++/Objective C, и вытащить из него всю необходимую информацию — от простого лексического значения токенов, до таблицы символов, AST-деревьев и результатов статического анализа кода на предмет всяких разных проблем. В связке с llvm и при сильном на то желании C++ можно использовать в качестве скриптового языка, парся и исполняя C++-программы «на лету». В общем, возможности перед программистами открываются богатые, надо только понять — как ими правильно воспользоваться. А тут, как это не редко случается, и начинается самое интересное.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity