воскресенье, 28 февраля 2010 г.

И вместо кода - пламенный мотор, или как мы выбирали 3D движок

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

Ну во первых, нужно сказать вообще несколько слов о том, что позволяют современные пакеты.  В них создаются трехмерные игры, презентации и подобные вещи. Созданные творения могут работать на разных платформах: Windows PC, iPhone и Mac. Кроме того, если речь об игре, то там можно сделать мультиплеер.


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

Сначала мы хотели сделать point-n-click 2D. Для чего поставили себе Torque 2D. И вроде бы все ничего, но постепенно начали "опускаться руки" в том плане, что 3D позволяет гораздо больше.

Torque 3D нас не впечатлила, уж не помню почему (хотя вроде движок сам по себе неплохой за те деньги, что они просили), и поиски движка продолжились. На бесплатные движки мы не смотрели по причине того, что у них у всех проблемы с консистентностью - то звуковую либу прикручивать нужно, то еще что-то, ну а production pipeline у них у всех не очень. Грубо говоря, представьте, что лепите и анимируете вы в одном пакете, раскрашиваете в другом, а потом импортируете в третий и все это должно сразу появляться и еще и работать как нужно :) Так вот с современным состоянием опенсорца такой гладкости без напильника достичь просто невозможно.

Ну вот, а затем наткнулись на Shiva, пакет для создания игр производства французской компании Stonetrip (смешно, но запомнил: их сайт был сделан на Джумле). Почему они  решили так назвать пакет - вопрос к авторам.

Поскольку это был наш первый опыт с подобными 3d пакетами, мы сначала  было обрадовались предоставляемым возможостям, но ...Потом начали вылезать очевидные недостатки. (на момент использования, у нас была версия 1.7).

Во-первых, из любого пакета "торчат уши" философии его создателей. Не была исключением и Shiva. Сложилось впечатление, что многие вещи нужно делать самому: готовых скриптов было мало (например, first person walker там был не очень хороший, "камерных" скриптов, кажется, тоже не было). Сам скриптовый язык, который использовался там, был своебразным и скорее напоминал Basic. В документации было не очень много примеров (я про код). Импорт форматов там был, но откровенно недоделанный в плане поддержки industry standards. Работа со светом там была сделана плохо. Интерфейс пакета был тоже своеобразен. То, что оставило приятное впечатление - это что поддержка и сообщество в виде форума были на уровне. И еще - немаловажная фишка - там был GUI editor.

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

Самое интересное, что Shiv'у мы таки-купили и так она у нас до сих пор и лежит где-то, лицензированная, в бездонных глубинах жестких дисков :)

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

После этого разработка была отложена на некоторое время, а потом нашли Unity 3D. Называется "почувствуйте разницу": разработка не тормозилась, а наоборот , было такое ощущение, что ребята из этой команды сами прекрасно понимают, где нужно экономить время разработчиков. То, что на поверхности: "врожденное" понимание форматов "взрослых" пакетов типа Maya и Photoshop, удобный интерфейс программы, возможность использования C#, javascript (точнее, ECMA262) или Boo на выбор разработчика (и даже их смесь), наличие хорошего форума и многие другие достоинства привели к тому, что на текущий день мы используем именно ее.

В последнее время появилась тенденция делать 3D-движки бесплатными. Не стала исключением и полулегендарная UDK от Epic Games, на которой была сделаны игры серии Unreal. Посмотреть его пока не получилось. Складывается впечатление, что он все-таки для средних и больших студий, которые делают игры если уж не уровня AAA, то по меньшей мере к этому стремятся. Длительность обучения грозит быть слишком большой, да и лицензионные условия отталкивают....

среда, 24 февраля 2010 г.

Создание тропинки

Сегодня делали выход из первой части игры. Смысл таков, что "Тропинка" будет являтся системой мини игр, связанных между собой. Поэтому, соответсвенно нужнен "вход" и "выход" из мини-игры. Остановились на том, что игра (общий сюжет) будет иметь нелинейную структуру, но каждый раз, герой (девочка) будет начинать игру с тропинки, либо целью игры будет найти выход на тропинку. Примерно так выглядела текстура, после долгих поисков, которой я добавил нужный тон в Photoshop:

После чего текстура была импортирована в Unity, более подробно мы предпологаем писать об этом "движке" и дальше. Тропинка должна быть видна с самого начала игры, специально для этого я поставил сосны, отличные от других деревьев:

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


вторник, 23 февраля 2010 г.

О сайте Тропинки и проектах, с ним связанных

Не так давно открылся новый сайт детского христианского журнала "Тропинка" (http://tropinka.eu). Пока что до конца он не заполнен (в частности, в архиве мало номеров), но то , что есть, уже стоит того, чтобы ваше чадо туда заглянуло. Немного расскажу о сайте как один из тех, кто имеет отношение к его непрекращающемуся созиданию.... Ну, а поскольку это записки одного из разработчиков, то довольно много внимания будет уделено техническим "мелочам".
 
Идея, стоящая за сайтом, была такова: сделать не просто сайт христианского детского журнала, а сайт для детей, на котором им было бы интересно, и стараться сделать его лучшим.  Отсюда стали ясны требования к содержимому: кроме архива журнала и подписки, должны быть игры, кроссворды, интересные материалы, проводиться конкурсы.... В дополнение к этому на сайте должны быть курсы по основам христианской веры для детей, сделанные в понятной и увлекательной форме (о них как-нибудь отдельно).

Ход дел показал, что это не проект ради денег, а проект с неограниченной перспективой, который делается по велению дущи.

С чего все начиналось

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

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

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

Вот так все концы сплелись в одну ниточку и Божий план начал осуществляться.


Наследие

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

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

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

Переезд

Когда пришла пора размещать сайт, возник вопрос с хостингом. Дело в том, что на сервере в Германии, где размещался предыдущий сайт, стояла платформа IIS, и это оказалось неприемлемо - PHP глючил. К тому же общий перформанс оставлял желать лучшего.

Поэтому, после обсуждений, решили держать сайт на нашем сервере в Штатах. Старый добрый LAMP, работающий как часы, и хороший канал - что еще нужно сайту? А уже закачанный музыкальный контент решили оставить на старом сервере, оставив его таким образом в качестве веб-сервера для отдачи медиа-контента.

Поехали

Сайт окончательно был запущен (если не ошибаюсь) в конце января, и можно было бы на этом поставить точку. Но... оказалось, что нужно было еще перенести (опять же недоделанные) детские христианские курсы "Путешествуй по Тропинке". Дизайн не очень нравился, да и были они недоделаны, поэтому нами было принято решение делать их на Flash, с бек-ендом на PHP. Сам движок (front-end + back-end) с первым уроком занял недели две или три. На момент написания этой статьи в фоновом режиме сейчас выкладываются один за другим "путешествия". Называть их уроками как-то совсем не хочется :) И по соображениям юридическим, и просто потому, что они скорее похожи на интересные небольшие детские книжки, чем на школьные уроки.

Планы на будущее

Параллельно с доделкой курсов нам с Эриком почти одновременно пришла мысль вернуться к проекту, отложенному в долгий ящик. То создания  3D-игры для детей, игры со смыслом, которая не только развлекала бы, но и содержала бы духовную составляющую. Чтобы у наших детей была лучшая альтернатива существующим играм.


Прототип уже почти доделан и, Бог даст, скоро будет выложен. Игра ведется от лица девочки Тропинки и планируется как серия логически связанных между собой приключений Тропинки и ее друзей. Что из этого получится - пока знает только Бог. У нас есть вдохновение и мы верим, что это от Бога, как и весь проект Тропинки.

Для чего нужен этот блог. О команде

Здравствуйте!

Мы решили завести этот блог, чтобы, во-первых, писать сюда о ходе разработки проектов, связанных с сайтом детского христианского журнала "Тропинка" (ибо назрело), а во-вторых, чтобы была обратная связь с нашими посетителями.

О команде

Мы - это команда разработчиков Тропинки. Пока что нас двое человек: Эрнест Бруггер и Сергей Дмитриев.По вероисповеданию мы евангельские христиане. Наша студия называется CreativePlasma.


Эрнест Бруггер
40 лет, христианин евангельского вероисповедания. Дизайнер и музыкант, около 15 лет работаю в журнале "Евангелие за колючей проволокой" (издается Русским Христианским Радио), разрабатывал многие как христианские, так и мирские веб-ресурсы. Женат, двое детей. Живу и работаю в Москве, Россия.





Сергей Дмитриев
33 года. Христианин евангельского вероисповедания.  Программист и системный администратор, несколько лет работал в "Свет на Востоке". Разработчик нескольких проектов, среди них онлайн-курсы по изучению Библии и "Дом наш". Женат, двое детей. Живу и работаю в Санкт-Петербурге, Россия.


Присоединяйтесь!

Если вы хотите принять участие в наших проектах, то вот список того, в чем вы можете быть полезны:

- 3-D (создание, анимация). Maya, ZBrush.
- Программист скриптовых языков: Практика показывает, что выбор языков программирования не настолько принципиален, важно, чтобы человек был обучаем и имел инженерный подход.

Работать с нами означает поддержку, профессиональный рост, творчество и кучу позитива!