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

Unity *

Инструмент разработки 2D/3D-игр

Сначала показывать
Порог рейтинга
Уровень сложности

Unity становится ближе — отчет о происходящем

Время на прочтение2 мин
Количество просмотров22K
Unity становится ближе — ВКонтактик, русский чат, присутствие на ключевых конференциях, обучение, выпуск книг… Какое из данных ключевых слов вам ближе всего? Почему вам это интересно?

Но, обо всем по порядку…


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

SuperHot — новое слово в инди-играх, slow-mo и управлении временем

Время на прочтение1 мин
Количество просмотров34K
Трейлер игры скажет все за себя сам.



В двух словах: время идет только, пока вы двигаетесь. Braid-стайл, да. Разработчиков можно поддержать и проголосовать за их игру в Steam Greenlight. Чтобы сыграть в демо-версию, нужно установить Unity Web Player.

Процедурная генерация планов помещений

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

Что делает крупный разработчик игр, когда ему нужно состряпать много помещений для игрового мира? Нанимает кучу художников. Что делает ленивый/бедный/одинокий разработчик игр в такой же ситуации? Пишет процедурный генератор, который выполняет за него всю грязную работу.

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

В этой статье я расскажу о том, как я реализовал на Unity3d один простой метод генерации, который приводит к хорошим результатам и легко модифицируется. С картинками и исходниками.
Читать дальше →

Unity3D + Kinect, или анимации на коленке

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

Здравствуй, уважаемый читатель. Прежде чем начать, мне хотелось бы немного рассказать о цели и формате моей статьи. Обычно с такими заголовками статьи носят обозревательный характер, в них описываются технические стороны реализации того или иного решения или приводится инструкция по эксплуатации и т.д. Выводы же читатель делает самостоятельно. Прежде чем написать эту статью, я провел небольшую исследовательскую работу на предмет аналогов. И нашел несколько статей как на самом хабре, так и массу видео материалов на ютубе. Поэтому я решил не писать очередной обзор технологии, а поделиться впечатлениями, рассказать о граблях, на которые мы наступили, и привести немного “кухонной” аналитики.
Цель этой статьи – помочь вам определиться, использовать или нет данный метод. В первую очередь она рассчитана на технических специалистов, хотя и не пестрит техническими деталями. Но так же будет полезна и всем остальным – арт-специалистам, менеджерам проектов да и просто всем, кто, так или иначе, связан с разработкой игр. Возможно, ссылка на данную статью поможет выбить бюджет у начальства и ускорить разработку/повысить качество вашей будущей игры. Итак, приступим.
Читать дальше →

Истории

Unity: 2D, реклама и издательство

Время на прочтение1 мин
Количество просмотров21K
На конференции UNITE в Ванкувере глава компании Дэвид Хельгасон анонсировал три новинки самого популярного игрового движка, который используют уже более 400 000 человек: официальную поддержку 2D игр, встроенный рекламный сервис Unity Cloud и новое издательское отделение компании Unity Games.

2D

Безусловно, и раньше можно было создавать двухмерные игры на Unity (см. Bad Piggies, например), но это всегда был неоднозначный процесс – с фиксированием камеры, проблемами с графикой, установкой сторонних расширений и т.п. То есть приходилось работать скорее против Unity, нежели вместе с ним.

Сейчас, в Unity 4.3, который выйдет осенью, процесс разработки 2D игр будет стандартизирован, появится новый набор инструментов для работы с 2D графикой, а так же популярный физический движок Box2D.
Читать дальше →

Конкурс игр с призовым фондом в $100000

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

Компания Unity и Microsoft приглашают разработчиков к участию в конкурсе по созданию приложений для Windows Store и Windows Phone Marketplace c использованием Unity3d. Конкурс заканчивается 30 сентября. Регистрация в конкурсе производится по адресу unity3d.com/contest/windows/new
Читать дальше →

Dependency Injection в Unity3d

Время на прочтение7 мин
Количество просмотров51K
Добрый день, уважаемые коллеги!

Так получилось, что к моменту начала работы с Unity3D, у меня был четырехлетний опыт разработки на .NET. Три года из этих четырех я успешно применял dependency injection в нескольких крупных промышленных проектах. Этот опыт оказался для меня настолько позитивен, что я постарался привнести его и в геймдев.
Сейчас уже могу сказать, что затеял это не зря. Дочитав до конца, вы увидите пример того, как dependency injection позволяет сделать код читабельнее и проще, но в то же время гибче, а заодно еще и более пригодным для юнит-тестирования. Даже если вы впервые слышите словосочетание dependency injection — ничего страшного. Не проходите мимо! Эта статья задумана как ознакомительная, без погружения в тонкие материи.
Читать дальше

Особенности игрового рынка в Китае — часть 3

Время на прочтение3 мин
Количество просмотров13K
В конце июня мне случилось сопровождать вице-президента Азии в Unity Technologies Джона Гудейла в его поездке в Петербург. Я знал о нашем подразделении Unity Games China и о свежеанонсированной поддержке Tizen, поэтому сделал все чтобы впечатлить Джона проектами русских разработчиков и вообще атмосферой российского игропрома, надеялся настроить плодотворное общение с нашими Азиатскими офисами.

Я тогда сильно удивился — буквально у всех вокруг, больших и маленьких, уже был опыт работы с Китаем, но не было хоть сколько-нибудь положительных результатов.

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

Китай - это как Евросоюз, но в Азии...

История создания стартапа по разработке мобильных игр

Время на прочтение8 мин
Количество просмотров66K
В мае прошлого года я решил создать стартап по разработке социальных и мобильных игр. Спустя год, можно сказать, что авантюра удалась и немного рассказать о полученном опыте.

image

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

История запуска игры в социальных сетях

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

Под конец весны 2013 года, я описывал историю плохого старта на Google Play. Пока с iOS заминки, решили закинуть игру в ВК и ОК. В статье я хочу поделиться особенностями запуска приложения под соц-сети, и расскажу про возникшие проблемы до и после релиза.
Читать дальше →

Реализация системы динамически загружаемого контента (DLC) для мобильной игры в Unity 3D

Время на прочтение7 мин
Количество просмотров39K
Недавно, для одной игры на Unity 3D, которую мы разрабатывали, возникла необходимость добавить DLC систему. Хотя это оказалось далеко не так просто, как казалось в начале, мы успешно справились с возникшими проблемами и игра ушла в gold. В этой статье я хочу изложить наш вариант реализации DLC, рассказать о возникших проблемах и как мы их решили.

Постановка задачи


В игре есть магазин, где игрок покупает вещи за игровую или реальную валюту. В магазине – более 200 вещей. Когда игрок заходит в игру, ему доступно 20 вещей в магазине. Если есть интернет, игра без ведома юзера опрашивает сервер на предмет наличия DLC и, если таковое имеется, скачивает в бэкграунде. Когда игрок повторно зайдет в магазин, он увидит все новые вещи из DLC.
Еще есть набор локаций. Каждая локация имеет набор текстур и .asset файлов. Новые локации также должны добавляться через DLC.
Загрузка ресурсов из DLC должна быть синхронной.
Платформа: iOS (iPhone 3GS и выше.) и Android (Samsung Galaxy S и выше).
Читать дальше →

Особенности игрового рынка в Китае — часть 2

Время на прочтение3 мин
Количество просмотров9.6K
Многие инвесторы отказываются инвестировать в игровые стартапы из-за характера рынка игр — никогда не уверен, взлетит игра или нет, заработаешь ли ты, вернешь инвестиции или уйдешь в минус. «Индустрия игр завязана на хитах, это не бизнес, это удача», — часто приходится слышать от ИТ-инвесторов и бизнес-ангелов.

Действительно, рынок игр, а точнее, рынок мобильных казуальных игр развивается стремительно и быстро, появляются новые типы геймеров, меняются потребности и желания игроков, двигаются тренды игровой механики. И все же у опытных разработчиков и паблишеров получается понимать рынок, своего пользователя, выпускать новые всеми любимые хиты (маркетинговые бюджеты… маркетинговые бюджеты… ну да, не без них…). Но это на Западе…
Читать дальше →

Особенности игрового рынка в Китае — часть 1

Время на прочтение2 мин
Количество просмотров22K
Китай невероятно похож на Россию — пришли мы к выводу с Алленом Фу, руководителем подразделения Unity Technologies в Китае, после долгой беседы. Оказывается за 18 месяцев работы китайского офиса Юнити, Аллен встретился с теми же самыми культурными, историческими, национальными особенностями ведения бизнеса, с которыми команда Юнити встречается в России.

«Россия в сердце китайцев является частью общей истории. Я думаю наши страны должны намного больше общаться», — размышляет Синь Чжан, отвечающий за техническую поддержку пользователей Юнити в Китае. Он очень удивлен, почему Юнити до сих пор не открыла офис в России и не предоставляет техническую поддержку пользователей на русском языке…

Впрочем, приоритеты в играх у России и Китая отличаются очень сильно.


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

Ближайшие события

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Получи BlackBerry Z10 и Unity BlackBerry 10 Pro add-on бесплатно

Время на прочтение1 мин
Количество просмотров8.7K
Unity и BlackBerry объявили о новой акции для владельцев Pro версии Unity.

Если до 20 ноября вашу Unity игру одобрят в BlackBerry App World то вы абсолютно бесплатно получите Unity BlackBerry 10 Pro add-on а также телефон BlackBerry Z10, обзоры которого неоднократно появлялись на страницах Хабра (например тут, тут и тут)
Читать дальше →

Unity3D и MySQL

Время на прочтение2 мин
Количество просмотров22K
Наверное каждый, кто делал игру для социальной сети или просто онлайн игру сталкивался с проблемой подключения и сохранения данных в базу данных. В этой статье я постараюсь подробно описать как установить подключение и передать данные в базу данных MySQL с помощью PHP.

Итак, приступим, для начала создайте в Unity C# скрипт, назовите его MysqlConnect и внесите в него следующий код:

using UnityEngine;
using System.Collections;

public class MysqlConnect : MonoBehaviour {

	private string username = ""; //Переменная для хранения имени
	private string pswd = ""; //Переменная для хранения пароля
	private string email = ""; //Переменная для хранения почтового ящика
	private string url = "http://www.localhost.ru/habr/connect.php"; //Переменная для хранения адреса
	
	//Создание метода, отвечающего за подключение и передачу данных
	void Connect()
	{
		WWWForm form = new WWWForm(); //Создаём новую форму 
		//Добавляем в форму новые данные
		form.AddField("username", username);
		form.AddField("password", pswd);
		form.AddField("email", email);
		//Создаём новое подключение
		WWW connect = new WWW(url, form);
		//Если удалось установить подключение
		if (connect.isDone)
		{
			//Выводим в консоль ответ сервера
			Debug.Log(connect.text);
		}
		//Если при подключении возникла ошибка
		else if (connect.error == null)
		{
			//Выводим в консоль текст Error
			Debug.Log("Error");
		}
	}
	
	//Создаём метод OnGUI()
	void OnGUI()
	{
		//Создаём текстовое поле для ввода имени пользователя
		username = GUI.TextField(new Rect(Screen.width/2-100, Screen.height/2-100, 200, 20), username, 12);
		//Создаём текстовое поле для ввода пароля
		pswd = GUI.TextField(new Rect(Screen.width/2-100, Screen.height/2-75, 200, 20), pswd, 12);
		//Создаём текстовое поле для ввода почтового ящика
		email = GUI.TextField(new Rect(Screen.width/2-100, Screen.height/2-50, 200, 20), email, 50);
		//Создаём кнопку для произведения подключения
		if (GUI.Button(new Rect(Screen.width/2-100, Screen.height/2-25, 200, 20), "Connect"))
		{
			Connect();
		}
	}
}


В данном скрипте производится запрос к PHP скрипту и ему передаются данные, введённые пользователем.
Читать дальше →

Бесконечные неповторяющиеся текстуры с помощью мозаики Вана

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


С текстурами вечно какие-то проблемы! То оказывается, что нельзя взять любую фотку и налепить на модельку. То на стыке текстур появляются швы, которые замучаешься заглаживать. То вроде уже и загладил всё, но глаз, этакий проказник, всё равно замечает повторяющиеся узоры и рушит иллюзию.

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

Как же быть? Есть один трюк — непериодические мозаики. Они лишены проблемы повторяемости и достаточно просты в реализации. Одну из таких мозаик придумал китайский математик Ван Хао в 1961 году. Элементы этой мозаики можно представить в виде прямоугольников с разноцветными гранями. Но чтобы понять принцип её работы, надо сначала разобраться в классическом методе заполнения площадей текстурами.
А классический метод таков...

Брезенхем и У на страже диагоналей

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


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

С проблемой растеризации мне довелось столкнуться во время работы над процедурным генератором планов зданий. Мне нужно было представить стены помещения в виде ячеек двумерного массива. Похожие задачи могут встретиться в физических расчётах, алгоритмах поиска пути или расчёте освещения, если используется разбиение пространства. Кто бы мог подумать, что знакомство с алгоритмами растеризации однажды может пригодиться?
Принцип работы алгоритма Брезенхема очень простой...

Каверзные кватернионы

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


Отгадайте загадку: в четырёх измерениях сидит и комплексными числами воротит?

Подсказка: это вектор со скаляром. И вещественная матрица. И придумал его Гамильтон.

Не помогло? Ну что вы, это же элементарно! Это кватернион! Кватернионы используют для записи вращений в робототехнике, игровых движках, ПО для моделирования и вообще везде, где не нужны проблемы с углами Эйлера или матрицами. Если вас испугала путаница выше с разными представлениями кватерниона, то можете быть спокойны. Кватернионы очень просты в использовании и их внутреннее строение может понадобиться только в очень редких случаях, где нужна тонкая оптимизация. В остальное время с помощью кватернионов можно крутить всё что угодно и как угодно, и оно будет плавно и красиво интерполироваться без шарнирных замков.
Что же такое кватернион?

Кручу-верчу, запутать хочу: углы Эйлера и Gimbal lock

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


Выставите любой палец левой руки вперед. Давайте, не стесняйтесь, никто не будет над вами смеяться. Это нужно для важного эксперимента. Выставили? Теперь представьте что вы — это ваш палец (ну и бред). Повернитесь под прямым углом направо, затем наверх, и наконец налево. Где вы оказались? Правильно, в том же месте, но уже на спине.

С некоторой натяжкой именно так работает вращение с помощью углов Эйлера. Немного непредсказуемо и неудобно, не правда ли? Углы Эйлера имеют несколько недостатков, но есть одно особенно нехорошее свойство из-за которого вы не захотите с ними связываться. Его имя — Gimbal lock.

В русском языке gimbal lock называют по-разному: шарнирный замок, блокировка осей, складывание рамок. К сожалению, по запросам в поисковике с такими ключевыми словами выдаётся много мусора, а статья в Википедии оставляет желать лучшего, поэтому я сам расскажу вам об этом феномене и предложу как с ним бороться.

Внимание! Заходя под кат вы подвергаетесь риску поломать голову.
Ха! Я ничего не боюсь! Где этот gimbal lock?