CINDER 0.8.6

Cinder
Вышло обновление открытой С++ библиотеки для креативного кодирования CINDER 0.8.6. Из нового: поддержка WinRT и DirectX, работа в Visual C++ 2013, 64-битные приложения, новое API для звука. Подробнее: http://libcinder.org/blog/posts/9_cinder-086-released/. Скачать можно тут http://libcinder.org/download/

p5.js


Появилась альтернатива processing.js — p5.js (http://p5js.org). p5.js — это JavaScript библиотека с той же целью что и изначальная цель Процессинга — снизить порог входа в програмирование для художников, дизайнеров, учителей. p5.js активно развивается, скоро появится среда для разработки. Дополнительные библиотеки позволяют легко взаимодействовать с HTML5 объектами: текстом, звуком, видео, вводом и вебкамерой. Посмотрите яркую презентацию в которой, главный разработчик Лорен МакКарти (Lauren McCarthy) и Даниэл Шиффман (Dan Shiffman) рассказывают о p5.js — http://hello.p5js.org/. Выше p5.js в действии.

DevGAMM Moscow 2014

Мы с коллегами сходили DevGAMM Moscow 2014. Решил по горячим следам записать свои впечатления от конференции (просто пара слов про каждый доклад).
10258140_10152462317297853_1391774187438794225_o

Первый день 15 мая

  • Рами Исмаил не успел приехать и вместо него разработчик Ern to Die  и рассказывал про проблемы с которыми они столкнулись и разные хитрые их решения. Коллидеры спереди и сзади не реагируют на землю и тяжелее кузова — не отскакивает носом и центр тяжести ниже. Ускорение -вектор вправо и крутящий момент на колесо. Зомби превращаются в рэг долл по коллизии с машиной. Вектор буста направлен всегда вправо.
  • Валентин Симонов из Interactive lab расказывал про три проекта: снежинки, звезды и фуражки и классики, чм по футболу. Используют Nlog и splunk для логирования. Очередь из живых людей, обучение, разные картинки для принтера и экрана.
  • Манифест игровых сценаристов. Не очень запомнился доклад.  После доклада выведал у Маши Кочаковой книги о сценариях: The Writers Journey: Mythic Structure for Writers by Christopher Vogler и The Anatomy of Story: 22 Steps to Becoming a Master Storyteller by John Truby.
  • Антон Волков советовал инвестировать в коммуникации, расставаться с сотрудниками не разделяющими ценности. Сформулировать конкретную цель — достижение таких то денег, за такой-то срок. Все задачи направлены на достижение цели. Диаграмма хочу- не хочу, делаю- не делаю. Спрашивать на собеседование как можно конкретнее, например как выглядит рабочий день поминутно, узнать у человека какие ценности он разделяет, 3 вещи которыми он гордится. Коммуникации — за достижение сообщения ответственен источник сообщения.
  • Гейм дизайн какой предмет прикрутить вместо головы к зомби — аквариум. Не о чем.
  • Дмитрий Тарасов, Rg games реализация активного геймплея. Сервер си++, клиент флеш. Идентичные алгоритмы, отказ от float, углы умножить на 100 и оставить два знака после запятой, быстрое проигрывание сессии на сервере. XML как скриптовый язык — разворачивается в объекты языка полиморфно, велосипед конечно, но выглядит клево.
  • Steam Early Access — интересно было слушать, но я ничего не запомнил. Алекс рассказывал абсолютно бесцветным голосом.
  • Визуальные эффекты в world of tanks. Частицы, дым, альфа канал… Я ушел на середине, а жаль говорят потом было интересно.
  • Сергей Носков автор игр свет и поезд. Делаем игру в одиночку. Куча пост эффектов. Работа для самореализации.
  • Какой персонаж нужен вашей игре. Чем проще персонаж по форме, по анимации, чем меньше деталей, тем проще его воспроизводить на разных носителях. Разные аудитории, аудитория может повзрослеть.

Второй день 16 мая

  • Доклад Дэвида Хельгасона назывался «The Value of Collaboration». Сейчас у нас много благ (шоколад, оперы и ipod) благодаря совместной работе. Рассказал немного про asset store, everyplay, unity 5. Golden age of game creation. Представили русскую команду, пару слов сказали realtime school и screemschool.
  • Andy Touch рассказывал про GUI в Юнити. Глюки со спрайтом логотипа дев гам. Грид, кнопка, гуй в пространстве. Анди хороший докладчик — было интересно.
  • Михаил Пигичка — Цвет в играх. Пол доклада о своём образовании — валдорфовская школа, институт печати. Олег Зверлин, швабра вмести кисти, «драка на листе», «бутылка и стакан». Функции цвета: маркировка, навигация, выделение главного, прогресс, атмосфера. Иттен. Примеры игр с разными цветовыми решениями: монохроматические, триадные и тд.
  • Руслан Григорьев хитрости работы с Юнити под андроид. Пришел на окончание доклада немного послушал как правильно репортить баги.
  • Вместо перерыва был обещанный доклад Рами Исмаила из Vlambeer. Про гейм дизайн. Эмоциональный доклад, Рами очень живо выступает. Начинали как два инди и питались разводными макаронами. Игры отличаются от книги и кино, тем что играющий главный герой повествования. Книга- Фродо несёт кольцо и бросает его в огненную гору, тем самым побеждая злодея. Кино- Брюс Уиллис выбрасывает злодея из окна небоскреба. Но, в игре я усатый водопроводчик прыгающий через трубы и по черепахам. Serios Sam RPG. FICTION! Весь мир должен быть продуман, нужно уметь ответить на любой вопрос почему. Главный вопрос — Почему? Мир может быть безумный и нелепый, но продуманный со своей логикой, не рандом. Рассказал про сценарии FEZ, Team Fortress 2 и еще одной игры. Новая их игра Nuclear Throne: истории персонажа нет потому что у него нет рта и он не смог ничего про себя рассказать.
  • Сергей Климов 10 признаков плохого контракта. Чёткое определение терминов, условия разрыва контракта. Надо будет все тезисы выписать и выучить.
  • Олег Чумаков — плюсы работы проекта в консоли. Легче тестировать, лучше архитектура, разделение кода. Из минусов нужно писать врапперы для GameObjects, bb.
  • Ирина Никитина видел только конец доклада, о чем жалею. Надо будет посмотреть в записи. «Тактильные ощущения в интерфейсах заменяет звук».
  • Память и производительность в Unity Марко Тривеллато, к этому докладу я уже устал и докладчик рассказывал нудновато, приходилось делать усилие, что бы следить за повествованием. Пудинг объектов, stack based allocation, явный вызов Dispose… На середине доклада я ушел слушать про музыкальное оформление детских игр. Возлагал надежду, что пойму как подступится к музыке в своем проекте с паровозами и вагонами. Доклад оказался не интересным. Дочка играет в игры и ей нравится играть. Не должно быть низких частот. Мало конкретных фактов, только- у нас куча компаний заказывали музыку и у нас есть доступ к детской аудитории, мы можем протестировать на детях. Боюсь детям понравится все, что будет двигаться на экране со звуком.
  • Carl Callewaert рассказывал про анимацию в Unity, Mecanim. Карл отличный докладчик. Назвал анимацию Russia и стал анимировать мишку Тедди.
  • Награждение было не очень интересное.

Фотография Ярослава Кравцова.

Hello processing

Processing Foundation сделала для Hour of Code 2013 четыре урока по Процессингу. Фантастический Даниэл Шиффман очень живо рассказывает основы Processing: http://hello.processing.org/

SanielShiffmanHelloProcessing

Нестандартное использование функции map

Функция map используется в Процессинге для пересчета позиции переменной из одного диапазона в другой (описание функции на сайте http://processing.org). Но можно расширить использование функции, чтобы менять еще и распределение с линейного на степенное. Для этого  возводим входную переменную и границы ее диапазона в степень, например в квадрат

float m = map(value * value, 0, 100 * 100, 0, width);

Небольшой пример с линейным,  квадратичным и кубическим распределением диаметров окружностей:



float D = 140;
int circleCount = 12;
void setup() {
  size(550, 320);
  noFill();
  strokeWeight(1.5);
  stroke(255, 204, 0);
  smooth();
  noLoop();
  background(20, 30, 50);
}

void draw()
{  
  stroke(255, 204, 0);
  float d = 0;
  for(int i = 0; i <= circleCount; i++)
  {
    d = map(i, 0, circleCount, 0, D);
    ellipse(100, height / 2f, d, d);

    d = map(i*i, 0, circleCount*circleCount, 0, D);
    ellipse(275, height / 2f, d, d);

    d = map(pow(i, 3), 0, pow(circleCount, 3), 0, D);
    ellipse(450, height / 2f, d, d);
  }
}

Final Project for Creative Programming for Digital Media & Mobile Apps Course

Курс креативного программирования на курсере закончился. Курс конечно совсем для начинающих оказался, но все равно было занятно послушать лекции. Очень много рассказывали про звук, что для меня было интересно. Интересных программных концепций я особо не почерпнул. Книга Generative Art от Matt Pearson гораздо круче в этом плане. Вот мой наспех сделанный Final Project. Звуки колоколов от http://www.freesound.org/people/anamorphosis/.


Начался курс Creative Programming

SonicPainter

На Coursera начался курс Creative Programming for Digital Media & Mobile Apps. Основным инструментом используемом в курсе является Процессинг.

Курс продолжится 6 недель.

Неделя 1: Введение: рисовалка со звуком (Introduction: sonic painter)
Неделя 2: Интерактивное приложение для диджея/виджея (Interactive D/VJ app)
Неделя 3: Музыкальный плеер с визуализацией (Music player and sensor controlled visualiser)
Неделя 4: Игра (Game with physical modelling and synthesis)
Неделя 5: Работа с программными интерфейсами социальных сетей (APIs accessing and processing social media data)
Неделя 6: Музыкальная машина (Music machine)

Processing 2.0!

ProcessingIDE2

Не успел я написать про очередную бету Процессинга, как вышла финальная версия Processing 2.0. Сайт http://processing.org/ тоже обновился.

Новая бета Processing 2.0b9

18 мая появилась новая бета Процессинга. Главное новшество новой версии, это новый интерфейс! Из IDE исчезли режимы Android и JavaScript — их теперь можно установить с помощью кнопки «Add mode…». Также исправлены ошибки и внесены разные изменения, полный список которых здесь.

 

 Processing 2

 

Приз в конкурсе Intel® Perceptual Computing Challenge

Escape game prototype

Мой прототип игры, сделанный сделанный для первого тура конкурса Intel® Perceptual Computing Challenge отметили призом (http://software.intel.com/sites/campaigns/perceptualshowcase/escape.htm). Intel устроила конкурс для продвижения своего Intel Perceptual Computing SDK, про который можно подробнее почитать на хабре.
Прототип написан на openFrameworks (фрэймворк использует подход аналогичный Процессингу, но в качестве языка используется С++). Давно хотел попробовать openframeworks в работе и тут представился такой случай. Ощущения после работы с openframeworks, какие-то двоякие — он достаточно простой, для него написано много дополнений, можно быстро создать приложение, но что-то в нем устарело, что-то недописано. Возможно, я не достаточно погрузился в него, чтобы с удовольствием с ним работать. Сейчас посматриваю на его альтернативы: cinder и polycode — библиотеки для creative coding, тоже использующие С++.