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

Комментарии 142

Хорошая демка. На телефоне выглядит феерично, как будто в рекламном ролике снимаешься. Единственное замечание — нужно запретить уходить в сон, чтобы подсветка экрана не выключалась.
Спасибо. Как-то об этом забыл. И ориентацию экрана выставил жёстко, и обработчики правильные выставил. Скоро поправим :)
Кстати, какой у Вас телефон? Я тестировал на Galaxy S, Galaxy Tab, Desire, Desire HD, Sensible и некоторых других (пока ещё не анонсированных) девайсах от HTC.
Galaxy S i9003. На нем все сразу заработало без подтормаживаний и рассинхронизации. Могу еще на гораздо менее шустром устройстве (Zenithink ZT-180 1й ревизии) попробовать запустить.
Попробуйте, интересно узнать результат.
На Zenithink Zt-180 v2 — первый раз около 4-10 кадров в секунду, второй раз — не пробывал.
Простите, что встреваю и мог бы написать в личку, но эта ошибка так часто встречается, что полезна многим. Проб«Ы»вать — это как серпом по яйцам, аж передергивает. Правильно пишется проб«О»вать!
*что замечание будет полезно многим
На ZT-180 первой ревизии — слайдшоу с переменным fps. На глаз — от 5 до 20.
Но это сразу было понятно, не гигагерцами надо мериться (у меня оба устройства гигагерцовые), а особенностями разных поколений ARM-процессоров.
На HTC Magic (CM6) идёт. Но на особо загруженных сценах подтормаживает (видио + звук) :(
Да и еще последние титры обрезались. Две первые строчки нормально, в третьей образалось первое и последнее слово, а четвёртая вообще на половину порезалось.

П.С. Знаю я владелец очень редкого динозавра :)
Я не ожидал, что она на мэджике пойдёт. Думал, педалить будет безбожно.
:) я думаю в этом больше заслуги cayanogen'а
На HTC G1 тоже завелось (AOSP 2.2) звук не тормозит, изображение еле заметно подлагивает, а вот титры обрезались так же, как описал zoxa
Уже в процессе фиксинга =)
На планшете Galaxy Tab выглядит здорово.
Но при генерации фракталов (это ведь фракталы?) подтормаживает, не смотря на то, что у меня 1.4 Ггц.
Вы про снежинку? Да, это фракталы. Подтормаживает, наверное, из-за «прогрева» JIT-а. Попробуйте перезапустить, а я подумаю, что там можно ещё соптимизировать.
У меня система 2.2.1. JIT там не особо шустрый, но вторым запуском как будто не тормозит.
Автор говорит, что оно написано на c++, причём тут JIT?
Вы отвечаете автору.
Даже с++ через JNI работает в виртуальной машине.
Виртуальная машина (работающая как native-приложение) просто вызывает функцию из .so-библиотеки, так что код выполняется напрямую процессором, в обход VM. А код на Джаве там есть, я об этом написал в топике.
Хе, а у меня на Tabе снежинка не тормозила, а во всяких аля-плазмах и туннелях, бывали эпизодические лаги… ИМХО, TAB пытается понизить частоту что бы сберечь батарейку.
здорово, только экран гаснет, телефон думает что он ничего неделает. на HTC Desire на кубиках пропадает звук.
Тут всё зависит от таймаута экрана. Для начала попробуйте выставить его побольше или ткнуть в экран в самом начале, а я тем временем это пофикшу :)
Desire S тормозов не обнаружено
Galaxy S — выглядит потрясающе. Исходники показывать не планируете?
Не вопрос. Вот только там чёрт ногу сломит, там иногда такие оптимизационные хаки, что без пол-литра не разберёшь =).
А на youtube видео залить? =)
Она кстати под NDK или нативная ява?
«Our intro runs better in realtime than on YouTube»
Нормальная практика всегда дублировать видео к релизу, это уже много лет, со времен популярности youtube =)
уже записываю, осталось только пережат и выложить :)
Слушай, отлично получилось, видео посмотрел! Если на девайсе приличный FPS, то очень ок даже. Не хватает арта, дизайна, оригинальной музыки и можно на demoparty отправлять =)
Тяжко одному всё делать, музыкант из меня никакой, художник — балла на два, остаётся свирепо кодить :)
На девайсах фпс обычно от 20 до 35, на разных сценах и в зависимости от разрешения экрана.
Поддерживаю, посмотреть хоцца, но ни того ни другого нет.
эффекты на C++ через NDK, отрисовка через Java.
Если было бы все через NDK, можно было бы перенести на Airplay и зарелизить сразу под несколько платформ =)
Собственно, почти так под винду и портировал: надо было только реализовать отображение на экран.
Было бы неплохо увидеть статью с объяснением исходников.
Всё будет. Исходников немного, но они «ядрёные», мне есть о чем рассказать =)
Слово «демосцена» или просто «сцена» применяется только к сообществу людей, демосценеров. Программа же называется просто «демо» или «демка».
мне кажется это отсылка к известной фразе «смотрите демосцены» :)
Обычно так пишут только для людей в теме, которые точно понимают что это неправильно. А так да, можно демосцены и из других интернетов качать.

Но есть люди, которые не знают значений этих слов. Для них всё же надо стараться писать правильно, иначе они будут неправильно повторять.
Ну так я же и пишу: «демка». А название топика говорит о причастности к демосцене.
Вы так же пишите «список демосцен» и «должна быть демосцена: играет музыка, показываются какие-то эффекты, занавес». Это неправильно.
Спасибо, поправил.
А вы пишете «пишите» и смеете указывать, как правильно.
Ну, он же не орфографии учит :)
Да, все мы ошибаемся. И учиться писать правильно никогда не поздно. Воспринимайте мой пост как дружеский совет, а не как указание.
Не у всех есть девайс на андроиде, а посмотреть хочется! Есть варианты?
В сообщении явно указана ссылка на Win32-версию.
Это прекрасно, но если бы вы залили видео на Youtube, то было бы еще лучше — во-первых, не у всех Windows, во-вторых, не у всех он под рукой прямо сейчас)
У меня 64 кбайт\с дайлап по как бы 3G-свистку, так что увы, не залью.
Пардон, кбит\с, разумеется, к вечеру уже голова не соображает.
Фигово(
Под вайном работает прекрасно.
А под MacOSX есть варианты?
На HTC Legend — полет нормальный
Acer Liquid — нормалек! :)
Здорово! Выглядит потрясающе на моем Google Nexus S. Было бы очень интересно послушать как все это сделано, возможно посмотреть исходник.

А что такое блиттинг?

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

В списке запущенных программ ее тоже не было. Она была в списке «закэшированных» по словам моего нексуса. После убийства программы звук прекратился и я смог позвонить.
Я мог бы сделать серию статей про каждый эффект. Завтра, может, и начну.
1) Блиттинг — это копирование области памяти. В основном так называют процесс отрисовки методом копирования одного участка памяти (напирмер, изображения спрайта) в другое
2) С отрубанием скоро пофикшу.
3) Демка убивается сама себя после завершения или выхода, так что в процессах вы её не найдётся :)
блиттинг от слова blt, а ещё точнее от основной функции 2D-анимации — BITBLT, что является сокращением от BIT BLock Transfer
LG Optimus — «Force close», к сожалению.
Под порт Windows есть проблема: запускаю -> черный экран (решение этой проблемы знаю) -> закрываю -> скрывается окно, но процесс висит и играет музыка.
На Nexus S c 2.3.4 без томозов.
А откуда у вас 2.3.4?
Так с неделю назад уже сорцы дали. Даже на Дизайре у меня уже 2.3.4 (CM7, доступно ещё для пары десятков устройств).
Т.е. это не официальная прошивка?
А смысл сидеть на официальных, ждать у моря погоды, когда доступна свежая, полноценно работающая прошивка? Это не кривой порт, а чистая, собранная из исходников. В общем, меня устраивает.
Где ее брать?
Например, на официальном сайте. Ну и форум разработчиков в помощь, там вопросы/советы, темы оформления и прочие моды.
Привет от ценителей farbrausch! :)
Демка fr-08 .the .product в 2000 году изменила как минимум одну судьбу.
Мою изменила ещё Stash от The Black Lotus в далёком 1998м.
fr-041: debris. на 180кб и pno0001.exe (не знаю названия, на 98кб, полноценная 3д-игра) постоянно с собой на флешке, не перестаю удивляться :)
.kkrieger называется, и не 98, а 96кб (=

з.ы. по ссылке есть ссылка на видео, как делалась игра, как генерился контент, смотреть обязательно.
Спасибо за ссылку. А вес у меня всё же — 98 «правильных» килобайт :)
С точки зрения программиста вызывает уважение. С точки зрения зрителя — не впечатлило. Просто набор различных эффектов без общей идеи, да и не великой красоты.

Минусуйте.
Ха, как раз недавно обзавёлся гуглофоном и во время очередного мозгового штурма на тему «что я ещё могу выжать из новой игрушки» подумалось, что на телефонах явно не хватает демосцены:)

Да, я за продолжение и развитие темы:)
HTC Hero — приложение неожиданно остановилось =(((
На фоне этого было бы очень интересно посмотреть на youtube
Прекрасно на SGS и SGTab, и вот на LG Optimus One(2.2) — тормоза страшные.
НЛО прилетело и опубликовало эту надпись здесь
Установил на HTC Hero (Android 2.1.1)
Установка прошла нормально. Запустить, к сожалению, не удалось:

E/AndroidRuntime( 7080): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 7080): java.lang.UnsatisfiedLinkError: Library AndroidDemoscene not found
E/AndroidRuntime( 7080): at java.lang.Runtime.loadLibrary(Runtime.java:489)
E/AndroidRuntime( 7080): at java.lang.System.loadLibrary(System.java:557)
E/AndroidRuntime( 7080): at com.gosu.one.NativeSceneManager.loadNativeLibrary(NativeSceneManager.java:44)
E/AndroidRuntime( 7080): at com.gosu.one.Loader.start(Loader.java:14)
E/AndroidRuntime( 7080): at com.gosu.one.MainActivity.onCreate(MainActivity.java:17)
E/AndroidRuntime( 7080): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 7080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
E/AndroidRuntime( 7080): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
E/AndroidRuntime( 7080): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
E/AndroidRuntime( 7080): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
E/AndroidRuntime( 7080): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 7080): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 7080): at android.app.ActivityThread.main(ActivityThread.java:4595)
E/AndroidRuntime( 7080): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 7080): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 7080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime( 7080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime( 7080): at dalvik.system.NativeStart.main(Native Method)
Спасибо, исправлю (понял, в чём проблема).
НЛО прилетело и опубликовало эту надпись здесь
Зациклить бы ее. Стоит рядом андройдная приставка для телевизора от китайских товарищей, вполне можно было демку использовать в качестве «скринсейвера».
У меня была идея написать что-нибудь в таком стиле в виде Live Wallpaper. Может, в будущем что-нить да нарисую.
Можно просто после паузы на титры начинать все сначала.
Только стоит ограничить фпс, или как-то иначе уменьшить нагрузку, чтобы меньше батарею кушало, и неплохой набор для живых обоев (на выбор) готов :)
htc HD2, android 2.2.1. Работает отлично.
На Viewsonic GTablet (разогнаном) работает отлично. Спасибо.
извиняюсь за оффтоп, но можно узнать как вы добыли ГТаблет?
Из америки вестимо. Друг купил. Сейчас вроде меньше 300 долларов стоит, я покупал за 400.
Просто отличная идея! Вот она, новая жизнь демо-сцены! :)
Напишите про алгоритмы, очень хотелось бы почитать об этом.
Motorola Milestone 2.1 Произошла неожиданная остановка приложения com.gosu.one
Сегодня скачал апдейт. Работает.
Я как то давно портировал понравившуюся 1k демку «In the mist of web» в живые обои на андроид (к сожалению не знаю кто автор). Если кому то будет интерестно посмотреть: маркет, исходники.
Чем-то напомнило старый добрый скринсейвер «Геометрический вальс» ещё из Win95 =)
Samsung galaxy spica CM 6.1.1 — работает отлично, как это ни странно для этого аппарата, только титры не влезают.
на LG GT540 вылетает(
Напишите, пожалуйста, версию Android и разрешение экрана.
2.1, 480x320 точек (HVGA)
На Highscreen Cosmo нормально летает. Ждём ещё демок от вас!
На Sony Ericsson X10 не запустился, вылетел с FC
Отлично! Выражаю автору респект. Особо сложных эффектов не увидел, точно такую же дему могу крутить в 320x200 на iP 133 Mhz вообще без тормозов. В том числе и фракталы (по таблицам ес-сно). Хотя в андройде вроде же ява, поэтому да, хороший результат.

Для примера, я вот баловался с Vogue-плеером (проц — mips ~450 Mhz):
www.youtube.com/watch?v=n4QLd8uGxgM
www.youtube.com/watch?v=kZM_so_r4Pw

На fps не обращайте внимание, я там стормозил и обновлял буфер по два раза на кадр. Поэтому фпс там как минимум выше раза в два. Потом исправил, просто переснимать лень. А вообще, ценю работу. Твердый зачет!
такую же дему могу крутить в 320x200 на iP 133 Mhz

В том-то и дело, что нынешние ARM-процессоры недалеко ушли от уровня Pentium 2 с 400 MHz.
Но, во-первых, разрешение, на котором выдаётся 30 fps (бывает и чуть-чуть больше) — 800x480 (В 6 раз больше пикселей, нежели в Вашем варианте), а во-вторых, как я написал в топике, самым узким местом была отрисовка средствами Java. Думаю всё-таки перенести всё в нейтив — должно просто залетать даже на пылесосах =).
Сами эффекты написаны на C++, безо всяких OpenGL с ускорителями. Написанные на Java, они дают примерно в 2-3 раза меньшую частоту кадров, что неприемлемо.
Про разрешение экрана просто не знал, сорри. Да, 800x480 уже трудновато блюрить в реалтайме на iP 133, согласен. Про Джаву я все понимаю, тут не нужно комментариев. То, что без всякого OpenGL я тоже вижу. Но крутить кубики с текстурой я могу хоть на арифмометре (правда не реалтайм).
Ваще круто получилось, хорошая работа. Мои поздравления!
Для меня всё соль кубиков в том, что собственноручно написал перспективно-корректно текстурирование примитивов со сглаживанием и освещением на процессоре. Это была, наверное, самая сложная задача в плане производительности.
BTW, переспективно-корректное текстурирование (если конечно мы говорим об одном и том-же) — тот еще тормоз. Я бы для данного случая (для данной демы) обошелся простым афинным текстурированием. Скорость в разы быстрее, качество конечно хуже, но для данной сцены (кубы) — вполне сгодилось бы.
Угу, непросто было заставить его быстро шевелиться и оставить всего пару-тройку вещественных операций на строку (остальное всё в Fixed Point). Аффинное уже было написано задолго до демки, поэтому хотелось большего, так сказать, proof of concept.
А что это за устройство такое? Выглядит ну очень по-промышленному.
А это декабарьский(?) номер дамского журнала Vogue вышел со встроенной видео-рекламой. Открываешь страничку и начинается крутиться реклама Мартини. Суть в том, что внутренности — по сути обычный китайский аудио-видео плеер.
32 метра памяти, проц Ingenic JZ4725B 360Mhz (в последствии догнатый до 450Mhz).

Изначально в нем стояла урезанная прошивка, которая только и могла что крутить один залитый в него видео-файл. Потом я списался с китайцами и заполучил исходники нормальной прошивки, со всеми функциями. Собрали, настроили под нашу аппаратную часть и получили полноценный видео-аудио плеер за 120 руб (примерно столько стоил сам журнал).

Тут подробнее про хардварную часть: vogeeky.co.cc/hardware
Ну и вообще, в целом по этому девайсу: vogeeky.co.cc/
Тот самый номер, про который писали здесь? Крутотень!
Ну Бумбурум-овский топик получился не столь эпичный, как топик первопроходцев: habrahabr.ru/blogs/DIY/108917/ Тыща каментов как-никак )) Но да, это тот самый номер.

Когда я наигрался с демками и чуть-чуть освоился в чуждой мне системе реального времени, я портанул NES-овский эмулятор для него. Затем ребята с комунити подпаяли дендиевский джойстик и получилась переносная денди )) Вот так примерно это выглядит:
www.youtube.com/watch?v=eX9o2FtoaSY

Замечу, что все это я делал с недружественным языком Си (всю жизнь прогал на паскале). Но экспириенс получил хороший. После проделанного могу сказать, что я чуть-чуть познакомился с новым языком программирования Си.
А мне после Паскаля (в школе пару лет олимпиады писал) Си показался просто мёдом в плане возможностей. Паскаль научил, что писать надо аккуратно и структурированно, а Си дал в тысячу раз больше возможностей.
Си мне тоже очень понравился. Очень гибкий язык, не нужно городить тонны бегин-эндов и подобных конструкций. Писать на нем одно удовольствие. Но увы, для меня пока чуть шаг в сторону — гугл. Поэтому конечно продолжаю кодить на паскале. Именно «кодить» — я понимаю под этим словом когда пишешь, не задумываясь над синтаксисом языка, просто кодируешь сами алгоритмы. Паскаль мой третий язык программирования (первый был ассемблер x86, второй — бейсик), и я на нем всю жизнь кодю (уже лет 17 как). Но си мне очень понравился, планирую продолжить его изучение. Сейчас вот, например, делаю распозновалку различных штрих-кодов на Visual C. Трудно конечно, но дело продвигается )
HTC Hero 633 MHz 2.3.3.подтормаживает, но идёт. Звук иногда пропадает.
В каких местах пропадает? На кубиках?
Торомозит при переключении с одного контекста на другой. То есть со снежинок на размытые круги и тп. Пропадает как-то рандомно.
Я в дальнейшем (при объяснении алгоритмов) напишу, почему это может происходить.
на SE Xperia x8 даже не запускаеццо: Произошла неожиданная остановка приложения com.gosu.one. (процесс com.gosu.one). Повторите попытку
У коллеги на SE x10 то же самое
Жаль, нету ни одного доступного девайса «на потестить». Если нетрудно, не могли бы Вы скинуть лог ошибки?
не знаю где посмотреть
«adb logcat» в консоли, скачав SDK, и установив в нём developer tools.
Можно просто «logcat > /sdcard/log.txt» на мобиле, если поставить эмулятор терминала.
Хотя, при установке приложения через Маркет, при ошибке предлагается отправить отчёт, вот это он и есть, только в автоматическом режиме.
спасибо, буду знать
вощем после обновления — заработало
> «список демосцен»…
Демосцена — это явление (если разжевать то «сцена, на которой показывают демо», если угодно «театр для демо»), а конечный продукт называется «демо» (интро, музыка, графика и т.д.).
Поправил.
ура.
демок на мобльные не так уж и мало, из года в год по нескольку штук появляется.
вот в том году на цц даже две игры были для мобильника. правда простенькие.
Nexus One 2.3.3
Картинка пропадает в середине.
Поставьте таймаут экрана побольше — это он срабатывает. Я пофикшу это позже, чтобы экран не гас.
HTC Desire — всё отлично. Вообще, очень понравилось. Люблю демки ещё со времён спектрума и амиги. Как раз мобильные девайсы могут дать новый толчок этому движению. Если раньше можно было сказать — ОГО, 3.5 Мгц, а что творится-то!!!… то теперь на PC удивление вызывают вещи, разве что, типа .kkrigier и т.п. (т.е. ОГО — 98 кб, а что творится-то!!!). Поэтому — жду новых релизов :)
На планшете ViewSonic ViewPad 10s смотрится отлично, а вот на Acer Liquid уже подтормаживает.
На Google Nexus One тормоза не замечены, работает отлично
Это уже придирки, но при открытии/закрытии аппаратной клавиатуры приложение рестартует. Похоже, нужно отлавливать событие смены ориентации и клавиатуры. Добавьте в манифест для activity android:configChanges="orientation|keyboardHidden"
Droid 2 Global, 2.2.1
Спасибо, сейчас сделаю.
Готово, скоро должно появиться на маркете, версия 0.92.
Скачал, посмотрел, понравилось (#nexusone) Все пытался дотронутся до экрана — ничего не происходило.

Можно такую фичу добавить. Юзер дотрагивается то экрана и на сцену добавляется какойто элемент. Например точка или шарик. Ну и соответственно продолжает летать этот новый элемент со всеми начальными ;)
Это совсем тяжко будет сделать, да и смысла не вижу, если честно =)
Тут народ предлагал живые обои из этого понаделать, думаю, за это и возьмусь.
НЛО прилетело и опубликовало эту надпись здесь
На HTC Wildfire не ставится.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории