вторник, 30 марта 2010 г.

Страна Тропинка, часть вторая...

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

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

Вот некоторые из отзывов. Писали и дети, и родители :)

Хочу, чтобы были элементы приключения пилигрима. Чтоб было много персонажей (Митя, 5 лет)

Хочу, чтобы там были приключения (Серёжа, 9 лет)

Чтобы в игре можно было составлять больше слов (Ахшар, 7 лет)

Сама идея очень интересна. Можно было бы отравиться в замок, искать буквы там. Или искать слова в море с рыбками (Елена, 3 года)

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

Мы приступили к разработке продолжения.
 
Если Бог даст, то сделаем. По срокам планируем сделать в мае. Что же будет в продолжении, оно же "Часть вторая" ?
 
- Цель этой части, как и других, будет состоять в том, чтобы собрать ключевой библейский стих и таким образом пойти по тропинке дальше. Сделать это будет не так просто, ведь нужно будет не только искать буквы, но и делать другие вещи. Какие? Об этом со временем :)
 
- Действие будет разворачиваться в лесу (по задумке, из полянки тропинка ведет через лес, мимо деревни к замку). Будет озеро, домик рыбака и несколько тропинок. В лесу можно будет увидеть зайчиков (привет, Даша) и услышать пение птиц.
 
- Из персонажей у нас появится рыбак, с которым можно будет общаться и он поделится с тобой историей, которая стоит за миром Тропинки.
 
- Возможно, будут другие "вкусности".
- Скорее всего, будет введена необязательная регистрация пользователей.
 
Мы надеемся, что сможем это реализовать с Божьей помощью. Молитесь о нас.

вторник, 23 марта 2010 г.

Муравьиный лев пойман

Не так давно сайт журнала Тропинка подвергся атаке со стороны бота, который ко всем страницам с расширением *.html и *.php дописывал яваскрипт, который, в свою очередь, должен был за счет посетителей сайта накручивать кому-то заработок.

Яваскрипт был обфускирован, т.е. закодирован в хлам, и начинался со следующей конструкции:

function zG() {....


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

Тупость метода внедрения яваскрипта была, по всей видимости, соразмерна жадности автора. Дело в том, что скрипт, дописывая себя к концу php страниц, не удосуживал себя проверять - в какой собственно контекст он вписывается. И нарушал тем самым напрочь php синтаксис. Страница, естественно, выдавала ошибку. Поэтому вместо желаемого эффекта кто-то ничего так и не получил, зато при заходе на сайт можно было увидеть ошибку PHP. Цель достигнута, сайт взломан :-)


После опроса команды и анализа логов FTP-сервера выяснилась следующая картина.

- У кого-то на компьютере стоял один из троянов разновидности trojan.keylogger или аналогичных, похищающих явки/пароли.

- Собственно они и были похищены.

- Этот троян честно слал то, что он наколупал, либо какому-то дяде, либо напрямую скрипту на сервере.

- Скрипт на стороннем сервере делал следующее: заходил по FTP, скачивал страницы, добавлял свой код и закачивал их обратно.

Анализ сервера показал, что находится он в Швейцарии и на нем прописаны с десяток мертвых сайтов. Whois для выбранного наугад домена показал, что тот принадлежит китайцу. Дальнейший ход мысли очевиден...


Посмеявшись, осталось только ограничить FTP-доступ по этому IP...


<limit LOGIN>
Order deny,allow
Deny from 195.78.108.
Allow from all
</Limit>

и, естественно, поменять пароли на FTP.

Мораль: проверяйте свои диски на наличие вирусов и троянов!

понедельник, 15 марта 2010 г.

Поехали!..

Свершилось!

Слава Богу! Опубликовали демо-версию игры на сайте Тропинки. Позади утомительные детали, сопроводительные подготовки (вроде оформления и баннера игры), тестирование и многое другое...

Теперь будем смотреть, как пойдет... Если Бог даст и будет интерес у посетителей сайта, собираемся продолжать делать приключения и дальше!

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

Главное послание, или message, игры таково: научить детей отличать добро от зла и делать выбор. Научить их понимать, что не по всем тропинкам можно ходить, и что посеет человек, то и пожнет. Девочка ходит по тропинкам, помогает персонажам, собирает и применяет библейские стихи, отгадывает загадки и, если она на верном пути, постепенно приближается к главной цели своего путешествия - таинственному красивому Замку, чтобы узнать тайну, заставившую ее пуститься в путешествие...

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

Ну и несколько слов про разработку. Это наша первая публичная игра с использованием движка Unity3D. Неспешная разработка заняла где-то недели 4, из них ядро недели 2 (взяли предыдущие наработки + напильник программиста), неделя ушла на оформление и примерно неделя на исправление багов.

среда, 10 марта 2010 г.

Главная страница игры, начало создания.

Вот, наконец, первый уровень "Тропинки" готов, но для размещения самой игры, мы решили сделать соответсвующую ей стартовую страницу. Как уже говорилось, игра в вебе будет работать на Unity Web Player, который внедряется в страницу подобно Flash Player-у, т.е. сама страница - это обычный html и никакой сложности.
Некорое время я думал, как оформить главную страницу игры. На ум приходили виденные когда то стартовые страницы MMORPG игр, весьма популярных сейчас. Яркие, броские и притягивающие внимание. Чаще всего первая страница нарисована лучше, чем сама игра, что и неудивительно - нужно притягивать новых игроков. Нескажу, чтобы нам не хотелось, чтобы у нашей игры было много пользователей, но все таки я решил быть более "правдивым" и сделать страницу в стиле и "духе" если можно так сказать, самой игры. Вообщем после всех философвствований - вот почти готовый вариант. Белый квадрат в середине - место для игры.


Далее, возможно мы немного расскажем о том как создавалась форма контакта, которую, как предпологается и очень нам хочется, чтобы хотя бы кратко заполняли прошедший первый, "прототипный" уровень. Вообще была еще идея, делать игру дальше на основании того, что предлагают пользователи, их пожеланий... Но время покажет ;)

воскресенье, 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.
- Программист скриптовых языков: Практика показывает, что выбор языков программирования не настолько принципиален, важно, чтобы человек был обучаем и имел инженерный подход.

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