Ignite – анимация

В продолжении вчерашней записи о системе декалей . На ее основе осуществлено отображение анимации персонажами (в данном случае изображение удара). Сейчас анимация выглядит достаточно просто, но теперь это уже вопрос качества исходного изображения, чем нерешенной задачи программиста.

Ignite – Система декалей

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

-Пролейся кровь, – сказал полицейский.

Сражение у прохода на следующий уровень

Работа над Игнайтом кипит:

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

Ignite main menu background

Ignite – Главное меню и интерфейс

Интерфейс пользователя в Игнайте стоит на двух “слонах”: моих самописных модулей, наследников DrawableGameComponent из XNAFramework, и не менее самописных модулей, которые наследуют прекрасную библиотеку Neoforce от Тома Шейна. Том, к сожалению для всех нас, отказался развивать ее дальше и перешел к коммерческой разработке (и я его полностью понимаю), но его дело продолжает жить.

Сегодня я расскажу вам, на что я потратил половину воскресенья и создал вот такое главное меню:

Для начала я создал панельку с кнопками. Их создание чрезвычайно похоже на работу с Windows Forms и не представляет ни сложности, ни интереса для рассказа. За их внешнее оформление в Neoforce отвечают скины. По-умолчанию можно использовать один из двух, которые поставляются с основным пакетом Neoforce, или создать свой, что я и сделал. При должном умении – это не слишком сложная задача, нужно только суметь перерисовать уже готовые изображения стандартного скина в свой.

Изображение создавал, как трехмерную сцену в Blender e. Сначала были мысли сделать меню трехмерным, ведь XNA это полностью поддерживает, но решил это перенести в какой-нибудь другой проект, что бы с одной стороны не переусложнять этот, а с другой не выбиваться из общего стиля.

Как я и говорил, сцена создавалась в Блендере, практически полностью, кроме фона, который я изначально создал в Terragen e, размыл в фотошопе и вставил в виде текстурируемого плана позади драконов. По-драконам остались нарекания в виде слишком их пластикового вида, и вероятно я это исправлю уже сегодня, как вернусь домой. При виде этих драконов мне вспоминается Oblivion, который весь был таким же пластмассовым :)

Сцена из Блендера в дальнейшем рендерится в виде достаточно большого изображения в файл, который используется в самописном Drawable компоненте, который маштабирует автоматически масштабирует изображение под размер монитора.

Возвращение к Ignite

То, о чем так долго говорили большевики, случилось – после чрезвычайно длительного перерыва я возвращаюсь к Ignite. Перерыв позволил мне приумножить знания в области игростроения, а также переосмыслить концепцию проекта.

С точки зрения механики, я обрезаю элементы игрового дизайна, которые на данный момент являются инородными для roguelike-игры, а именно:

  • вырубка леса и добыча минералов из гор. На данный момент полностью выключена возможность добычи полезных ископаемых и я планирую полностью выпилить эту составляющую игры и сместить акцент на боевую систему от крафтовой
  • разрушаемое окружение. В прошлой версии, игрок мог достаточно просто разрушать окружение добывая ресурсы. Сейчас окружение остается разрушаемым, но теперь процесс разрушения становится не такой тривиальной задачей для игрока и будет проявляться как результат воздействия магии, специальных способностей или редких инструментов
  • создание предметов, система крафта. Система крафта будет значительно переделана в более поздних версиях игры. От создания простых предметов будет совершен переход к модификации/усложнению уже существующих предметов.
  • погода, время суток. Смена дня и ночи полностью остаются в силе, погода перестает меняться на конкретном уровне. На игрока перестают действовать погодные эффекты (дегидрация, замерзание и прочие)
  • уход от переусложненной системы с частями тела к более традиционный системе “очков жизни”. Система с частями тела хоть и интересна, но чрезвычайно сложна для отображения и понимания игроком.

В остальном игра продолжает развитие существующих идей. Бета будет готова, когда будет готова.

PS так приятно вернуться к этому проекту, что у меня даже нет слов описать свои чувства :-)

PHP – случайные записи WordPress

Теме вывода случайных записей в WordPress посвящено множество плагинов сторонних разработчиков, и, как любая сторонняя разработка, такие плагины зачастую не полностью решают вставшую перед нами задачу. При создании сайта-галереи я хотел, что быслучайные записи выводились не в виде ссылок с заголовками записей, а в виде маленьких фотографий, повторяя дизайн главной страницы. И, как всегда бывает в таких случаях, плагина, который бы полностью удовлетворил мои нужды, не нашлось. В WordPress есть плагины, которые действительно необходимы для работы CMS, но большинство, будем говорить четсно – мусор, засоряющий вашу систему. Хорошей практикой является отключение и удаление ненужных плагинов.

В нашем случае плагин для отображения случайных записей в WordPress занимал бы несколько строк PHP кода.. и эти строки мы сейчас напишем самостоятельно!

Если вы вставите этот код в свою страницу, то увидите, что он уже позволяет получить заголовки и описание 5 случайных записей. Давайте разберемся с входными параметрами:

‘numberposts’ => 5

Количество случайных записей, которое будет отображаться.

‘orderby’ => ‘rand’

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

‘post_status’ => ’publish’

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

‘offset’ => 1

Смещение в одну запись от первой в списке

С помощью данного кода вы можете самостоятельно реализовать отображение случайных записей на своем сайте в удобном для вас виде. Например, как это реализовано у меня на сайте

Автоматизированный сайт – автоматическое наполнение контентом

Сегодня я расскажу об одном моем сайд-проекте – сайте-галерее изображений . Изначально сайт был задуман таким образом, что наполнять его контентом должно быть быстро и просто. CMS была выбрана WordPress, а дизайн был создан практически с нуля. Перейдя на сайт вы не обнаружите ни стандартного расположения постов, ни привычной страничной разметки WordPress`a. По-мере скроллинга страницы, сайт автоматически догружает более старые посты – это реализовано с помощью jQuery.

Скриншот главной страницы сайта с автоматически-наполненным контентом

Как следует из названия этой записи, контент для этого сайта не создается вручную. Под контентом я имею ввиду конечные записи-посты, фотографии в галерее, которые видны при просмотре (сами фотки конечно кем-то создаются и взяты мною в качестве примера реализации сайта-решения).

Для автоматического постинга в WordPress мною была написана собственное решение – программа, которая умеет в автоматическом режиме собирать данные о фотографиях/изображениях из сети интернет, сохранять их названия, подбирать теги и выделять описание, если его оставил автор фотографии. Дальше программа может самостоятельно запостить это изображение на сайт или ждать решения о модерации данного изображения пользователем. Конечно же, программа не обучена восприятию прекрасного и не способна отличить отличную фотографию(как те, что вы видите на сайте) от ерунды, но если вам нужно добавить несколько тысяч страниц за день, разбавив их полу-уникальным контентом, то придется смириться с тем. что качество подобного контента будет не на высоте.

В противном случае (когда качество содержимого для вас имеет значение), пользователь волен использовать ручной режим и добавлять фотографии вручную. Для каждого конкретного сайта, из которого будут парсится фотографии, должен быть написан собственный модуль извлечения информации об изображении. Также программа способна отслеживать содержимое буфера обмена Windows, и если та появляется изображение или ссылка на него, автоматически формировать из этого изображения полноценный пост для сайта.

Страница сайта с одиночной фотографией

Подсчет показал, что в ручном режиме за 8-ми часовой рабочий день, один человек способен сформировать 2500-2800 постов с изображениями которым автоматически будут сопоставлены теги, описание и название. Подобного суточного потока информации более чем достаточно для функционирования полноценного ресурса.

Средства автоматизации, подобные тому, что описано в этой записи, я разрабатываю с составе студии “Новый Сайт” . Программы делаются, как для новых проектов, так и для уже существующих.

XNA – Используем атласы текстур

Сегодня я поделюсь с вами собственным классом, который хранит изображения в моих играх. Этот класс самостоятельно загружает текстуры при запуске игры (в обход Content Pipeline) и предоставляет возможность изменять их во время исполнения. Сегодня я также доработал его до такого состояния, что теперь можно абстрагироваться от необходимости работы текстурами внутри атласа.

Следующая структура хранит информацию о изображении:

Ничего необычного, кроме того, что данная структура может сама себя отрисовать через SpriteBatch с помощью метода Draw.

Дальше идет класс ImageManager в котором хранятся все изображения:

Изображения я храню в виде хеш-таблицы с доступом по названию текстуры.

Это конструктор, которых вылавливает все директории, которые находятся внутри Content/Images/ и вытаскивает из них все изображения. Если ваш проект настолько запутан сложен, что вы храните изображения в папках внутри папок, которые находятся внутри третьих папок, то добавляйте еще один цикл поиска директорий.

Это наш xml-файл, в котором хранится информация о каждой текстуре-атласе.

В этом блоке мы загружаем наши текстуры в заносим в string key имя текстуры в виде “folder/filename” лишая ее разрешения. По-этому имени можно будет обратиться к атласу-текстуре целиком.

В этом блоке, мы ищем информацию о более мелких текстурах, которые входят в наш атлас текстур. Если таковая находятся то каждая из мелких текстур заносится в хеш-таблицу.

В заключении, заносим в хеш-таблицу саму текстуру-атлас. Обращаю ваше внимание на то, что несмотря на то, что мы создаем структуру Image для каждой мелкой текстуры, входящей в состав атласа, сама текстура-атлас(Texture2D texture) хранится в памяти всего один раз, а доступ к ней предоставляется по ссылке.

DeviantLike – раскрутка в DeviantArt

DeviantArt – отличная социальная сеть для любителей всего прекрасного. И не важно, смотришь ли ты просто фотографии или фотографируешь сам – в этой сети ты найдешь место, где миллионы творческих людей совершенно разных профессий встречаются вместе.

Однако, идеала в этом мире не существует и у DeviantArt a есть свои недостатки. И самый большой из них, что новичку достаточно тяжело заявить о себе, сделать так, чтобы его работы просматривало большее число людей, нежели те 5-10 человек, что случайно забредают на вашу страничку, после того как вы выложите с десяток новых фотографий.

Уже после того, как человек становится известным и популярным в социальной сети, когда у него появляются Wather ы, люди, которые следят за его обновлениями, то на каждую новую фотографию вы можете получать сотни, а то и тысячи просмотров. Сейчас, для вас это может казаться невозможным, но я вас уверяю, что с помощью программы DeviantLike уже сегодня вы можете получить до 1000 уникальных переходов в вашу галерею… и это число будет расти с каждым днем лавинообразно!

Но не верьте мне на слово – посмотрите на результаты работы программы для раскрутки самостоятельно:

Deviant Art посещения

Я специально взял аккаунт, который не использовал до этого DeviantLike , чтобы эксперимент был чистым и на число ежедневных посещений не влияло никаких посторонних факторов. Как вы видите, включение программы дало скачкообразное увеличение посещаемости галереи DeviantArt. Эффект от использования DeviantLike настолько силен, что посещений в предыдущие дни практически не заметно. Это как не видно мотылька на фоне солнца.

Но это еще не все, Вам ведь нужно не только, что бы вашу работу наконец-то заметили, но и получить на нее какую-то реакцию, правда?

DeviantArt раскрутка

Это примерно 10% уведомлений, которые я получил за последние сутки. Всмотритесь в это изображение – более 40 новых последователей, которые захотели следить за обновлениями моей галереи на DeviantArt. Все новые работы, которые вы выкладываете на DeviantArt e автоматически будут присылаться этим людям, что с течением времени (по мере увеличения количества ваших подписчиков) позволит вам постоянно увеличивать количество ежедневных посещений. Вы думаете, что 1000 посещений в день это много? С DeviantLike   Вы сможете достигнуть намного большего .

Вы ознакомились с эффектом "первого дня" работы DeviantLike , а что с долгосрочной перспективой, спросите вы меня? Для демонстрации этого я взял аккаунт, который работал с DeviantLike в течении трех месяцев, смотрите сами:

deviantart раскрутка За два месяца было получено более 110 000 просмотров профиля и более 375 000 просмотров фотографий в галерее, что вместе составляет  почти 500 000 просмотров. Как вам такое ?

deviantart раскрутка

Я специально показываю вам, что я не "фоловлю" людей тысячами в надежде, что кто-то ответит взаимностью. Более 2400 людей самостоятельно решили следить за обновлениями моей галереи.

deviantart раскрутка

Фотографии получили почти 5000 комментариев. Вы представляете себе весь этот объем сообщений, которые получат Ваши работы ? Вы будете общаться с совершенно разнообразными людьми, некоторым просто будет нравится то, что вы делаете, а кто-то будет давать вам советы, чтобы вы стали лучшим мастером, чем вы есть сейчас. Совершенствование и признание - о чем еще может мечтать творец? (я не говорю уже о 17 000 фейворитов, которые получат ваши работы).

deviantart раскрутка

Это рекорды популярности двух моих фотографий. На одной из них изображено озеро утром, а на второй мои друзья на пикнике. Друзей на пикнике увидело более 30 000 людей. Многие фотографии, которые получают daily deviation не получают такого количества просмотров. Вы их получите спустя несколько месяцев использования DeviantLike .

deviantart раскрутка

В среднем каждая моя фотография получила 35 комментариев, 120 добавлений в избранное и 2 700 просмотров - неплохая статистика для 3-х месяцев работы, правда ? Кроме этого бонусом вы получаете продвижение в поисковой системе DeviantArt, которая ранжирует ваши работы выше остальных из-за их высокой популярности. Не верьте мне на слово, проверьте сами ключевое слово donetsk - мой родной город, по-которому на первой странице выдачи исключительно мои фотографии (привет фотографам из Донецка :) ). Думаю, лишним будет говорить, что именно таким образом можно вытащить свой бренд в топ поисковой выдачи DeviantArt.

Теперь, когда вы видите результат работы программы, у вас уже должен появиться закономерный вопрос о том, каким образом вы можете начать ею пользоваться? Стоимость лицензии программы составляет 35 $ за один продвигаемый аккаунт  - скромное пожертвование, которое  поможет дальнейшему развитию данного проекта и позволит вам пользоваться всеми обновлениями, которые могут потребоваться в дальнейшем (например, при изменениях в сайте DeviantArt a).

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

Внимание! У вас есть возможность получить скидку 7$ на приобретение программы! Если у вас есть блог в интернете или какой-то другой фотосайт/арт-проект  с ежедневной посещаемостью не менее 100 уникальных пользователей, то при размещении информационного обзора программы (не менее 1500 символов) с активной dofollow-ссылкой на эту запись, вы получаете скидку на приобретение DeviantLike.

Если вы приобретаете премиум-аккаунт на Deviant Art`e, то с DeviantLike вы можете сэкономить! Я научу Вас, как с помощью моей программы и вашей высокой популярности, вы можете иметь премиум-аккаунт DeviantArt не платя за него. Премиум аккаунт стоит 4,95$ в месяц, что через год выйдет вам в 60$. При использовании DeviantLike за четверть этой суммы ( 15$ ) вы получаете это навсегда.

*ваши результаты от работы DeviantLike могут отличаться от моих в зависимости от профессионального уровня ваших работ