Ludum Dare #2. Вы тот самый крепостной.


Привет, мир! Для тебя снова ставит музыку IT - диджей Алексей Зиновьев [Alexey Zinoviev], сходивший 15-16 декабря на второй омский хакатон в стиле Ludum Dare



Что такое Ludum Dare  - стиль?


Этот стиль предлагает за короткие сроки разрабатывать игры, доводя их до играбельности буквально за пару суток.

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

Вы можете готовить технологии, учиться писать игровые циклы, изучать особенности движков заранее, но упаси Господь придумать вас игру сильно раньше. Вы можете сильно пролететь при объявлении темы.

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

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




GDG Omsk на Ludum Dare


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

Вот наши 11*11 логотипы:

GDG Green, написавшая замечательную игру про котейку - злодейку.
Обязательно поиграйте в нее, я прошел ее пару раз.














И GDG Red - наша команда, совпавшая на 66,(6)% с командой Diabalda на весеннем хакатоне по Android.

У нашей команды было еще и неофициальное название - Point G. Но оно не прозвучало нигде официально.



Стойкие игроманьяки


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

Однако, первый игрок нашей команды был уже в поле и я устремился.

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

Чашка горячего чая и прекрасная треть команды вдохновили меня на перевод темы "You are the Villain" как "Вы тот самый крепостной", используя этимологические корни слово Villain, уходящие к презрительному прозвищу французских крестьян "виллан".

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

Было много безумных описаний, обещаний:
  • банды цыган против РПЦ
  • потомки Дарта Вейдера
  • безумные злые чебурашки
  • Путин и Медведев, которым и целого мира мало
  • злой Dead Мороз
  • злые животные разных полов и вероисповеданий, убивающие добро
  • волшебник, крадущий краски из реального мира (мимими!)
  • злая маленькая девочка 
  • живые наркотики
  • какающий на коммунизм голубь
и многое другое, что позволило старику Фрейду и Юнгу дружно ворочаться в гробах. 

Фоточки с хакатона можно поглядеть вот тут.
А также несколько симпатичных игр прошедших в финал. Убейте пару недель.




Наша игра 

 

Презентация нашей игры

Для примера выложу описание нашей игры: 

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

Мотивы и дух игры были навеяны игрой EU 2,  позволявшей окунуться в любую средневековую эпоху качественно и со смаком.







В качестве исторической основы была взята тема бегства русских крепостных на Дон в период введения заповедных лет на Юрьев день. Т.е. фактически запрет крестьянину хоть как - то сменить хозяина.  







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


 
МВД 16 века.

 
























Санные пробки на московских дорогах.




Московское государство глазами немчуры.








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








За основу была взята карта Московского царства эпохи смутного времени.

 

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

 


Что - то пошло не так

   
Конечно, что - то пошло не так, JS повел себя не по - мужски, повернувшись к нам не лучшим местом. Игровая логика требовала нормальных объектов, общающихся между собой, а приходилось эмулировать все это дешевыми функциями и следить за типами. А бэкендом выступил файл с данными в формате JSON.

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

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

Были проблемы и с отладкой в разных браузерах, и в общей сцепленности модулей прототипа. Часто мы затрагивали друг друга своими изменениями сильнее, чем было можно. Но MVC в Js очень сложно запилить.

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


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

 


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



 

 

 


 

 

 

 

 

Финита ля комедиа


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

Нужно было еще 1 - 2 часа рабочего времени для запуска прототипа.

Экономя время, я поехал на презентацию, Боря остался пилить релиз, а Настя решила сделать презентацию. Мотивация зашкаливала и счет шел на секунды.

Я доехал  вовремя. И мне по почте были присланы в последний момент презентация и игра, в которой ЧТО - ТО двигалось! Это была победа. Пусть наша, маленькая, но победа. Тем более, что коммиты идут и после хакатона.




Презентация прошла задорно, я передал приветы своей команде, следящей за показом через трансляцию и порадовал всех рассказом о разработке. Вот и вы его читаете.

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

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

Хакатоньте и вы!

Комментарии

  1. А на текущую версию можно как-нибудь взглянуть?
    --
    Саша Диберт.

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

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Cassandra, мой первый кластер и первая NoSQL

10 причин раздражаться при использовании Apache Spark

Big Data on your local machine : Installing Hadoop Cluster (Multi Node regime)

MyBatis и Hibernate на одном проекте. Как подружить?

Virtual Box - много маленьких машинок внутри одной.