tag:blogger.com,1999:blog-74301970543225086802024-02-07T07:37:08.191+02:00.::Heratorz team::.<strong>Our motto:</strong> Make it simple! You have only several fuck..n’ hours…Anonymoushttp://www.blogger.com/profile/00768248497256469551noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-7430197054322508680.post-91757691463316212442011-08-06T01:06:00.002+03:002011-08-08T12:49:03.000+03:00Хакатон 2011 в Харькове<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRcnfc7Cc7MnsgrkGwo-5k-qaqG2TQFDIykNNfcGaArVamjlDiFzcbvx8MEFb8E3Fi90Vlln1wgO1XK9SmrqccRI4jV9Uz8dQrGSDG9w0MR8vQ1ylUJL51rk0GvIxMr-kB2GBkTc6if1M/s1600-h/hackathon-big%25255B8%25255D.png"><img align="left" alt="hackathon-big" border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhgPAPkgZ5WoOY3eqK9u-mI35U6-H6i3fG196u7Fk-vVVcR-CjSmIqLp8sMUZ5uZFRpGykllibCEOPcAOl80AxNc6JMsVWpbWJR4P-QNPN66x9gQuQFHAbbI9-pp20HHH2Ip8g_j6ZMSY/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; float: left; margin: 10px 10px 0px 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="hackathon-big" width="240" /></a>Ещё чуть больше недели назад я понятия не имел, что такое <a href="http://www.developers.org.ua/calendar/695/" target="_blank">Хакатон</a>. На <a href="http://developers.org.ua/" target="_blank">DOU</a> я не слишком частый гость, да и всякие RSS-ленты в последнее время читать абсолютно некогда. Тем не менее, перекинувшись в субботу (30 июля) парой сообщений с AquilA, решили с ним съездить в Ciklum, поглядеть, что да как.<br />
Идеи для проекта у нас, как водится, не было до самого последнего момента. Более того — не было у нас её даже через час после начала мероприятия. Приехав к самому началу Хакатона, мы с ужасом обнаружили, что бесплатная еда будет аж через три с половиной часа! Затянув потуже ремни и жадно сглотнув слюну, мы в поисках хоть какого-то занятия на время томительного ожидания провизии перебрали несколько вариантов проектов, но все они были отброшены по тем или иным причинам. Через 2-2,5 часа подумали, что неплохо было бы написать <em>небольшую игру</em>.<br />
Вскоре после начала обсуждения различных подробностей нашего новорождённого проекта прибыл третий участник команды — Хератор Skor. Тогда взяв в руки один из блокнотов от бессменного поставщика канцелярских товаров и чашек на подобного рода контестах — компании Global Logic — и заручившись разрешением моей девушки не возвращаться в этот день домой к ужину, мы принялись зарисовывать основные идеи. Так появился концепт космической стратегии.<br />
Однако оставался открытым вопрос: а кто будет создавать дизайн для нашей игры? Решение, как всегда, витало всё это время в воздухе и даже старательно попахивало свежей бумагой и пастой шариковой ручки. Но существо оно гордое, поэтому позволяет себе срываться с уст лишь самого ленивого, но и самого нуждающегося в нём человека. Так и произошло :) Идея родилась внезапно. Кто-то из моих коллег предложил: <em>а почему бы не сделать игру прямо в блокноте, не мудрствуя лишний раз с дизайном?!</em><br />
Не прошло и двух минут, как фотоаппарат, беспрерывно моргая глазком объектива, жадно запоминал всё новые и новые образы блокнота. И тут всем известный пушной зверёк с белой шубкой подкрался не то что бы совсем незаметно, но уж как-то слишком не вовремя — <strike>проявителя и закрепителя</strike> кабеля от фотоаппарата у нас не было, подходящего кардридера тоже, да и аккумулятор, как оказалось, разрядился к псам :) На выручку пришла народная мудрость «язык до Киева доведёт». Уж не знаю, попал ли AquilA в Киев, но до добрых людей с другим фотоаппаратом язык его таки довёл. Сделали пару-тройку фото, покромсали в фотошопе, Skor набросал костяк проекта… Compile. Run. <em>…Да, это оно!!!</em><br />
Исходя из наших предпочтений выбрали язык программирования: я всем сердцем люблю C++, AquilA предпочитает C#, Skor вообще, не побоюсь этого слова, математик… но в одном наши вкусы сходятся: <strike>обойдётся дотнетчик AquilA без своего сишлака</strike> <em>всё равно, на чём писать, лишь бы быстро</em>. Выбор пал на Java, хотя каких-то недюжинных познаний в этом языке ни за кем из нас доселе не наблюдалось.<br />
Создали mercurial-репозиторий. Распределение ролей: я — рисование в блокноте, последующее фотографирование (на мобилу… на балконе… в потёмках… без вспышки!) и обработка текстур в фотошопе + соответствующий код, а также merge наших правок; AquilA — гейм-дизайн, экономический баланс игры, в частности ресурсы, апгрейды и т.п. + соответствующий код; Skor — проектирование и основная алгоритмическая часть + переиначивание нашего с AquilA кода на свой <strike>сумасбродный</strike> математический лад.<br />
Обеда мы всё-таки дождались. AquilA съел три банки окрошки, закусил тазиком салата, и работа вновь закипела. С самого начала контеста мы выбрали лучшее место для кодинга во всём офисе — балкон. Когда ноутбуки почти разрядились, добрые охранники Ciklum помогли нам провести на балкон электричество, а когда начало смеркаться даже включили свет. Свежий воздух навевал столько новых и новых идей, что мы со Skor’ом, дабы не лопнуть от их переизбытка, частенько устраивали перекур :) Тот факт, что никуда ходить для этого не нужно было, сэкономил нам немало времени. Кроме того можно было свободно слушать музыку через колонки, никому при этом не мешая.<br />
Ближе к вечеру некоторые команды и соло-разработчики начали понемногу «забивать» на всё это дело. Некоторые из них брали пиво и сидели/спали полночи на балконе, о чём-то тихо общались — благо, балкон большой, никто никому не мешал. Мы же продолжали педалить свою игру, суть которой, собственно, состояла в следующем:<br />
Есть две фракции (синие и красные), у каждой есть изначально по планете. Планета позволяет строить два типа юнитов: харвестеры для сбора ресурсов и файтеры для уничтожения чужих юнитов и атаки вражеских планет. Кроме этого, файтеры могу получать улучшения защиты и атаки. Помимо этого есть два типа ресурсов, условно названные нами в лучших традициях привычных всем RTS-клише — Gold и Wood. Ресурсы используются для покупки юнитов и улучшений. Кроме этого должны быть нейтральные планеты, охраняемые нейтральным AI, которые может захватить любая из фракций. Планеты являются своего рода базами, которые позволяют строить юнитов. Цель игры: оставить противника без планет, то бишь без возможности строить новые юниты.<br />
В коде программы всё это вылилось примерно в следующую картину: WorldEnv хранит общее состояние игры, в том числе список объектов. Все игровые объекты унаследованы от базового класса FlyObject. Планеты, харвестеры, файтеры, ресурсы — потомки этого класса. Метод makeTurn() переопределён в некоторых потомках и содержит соответствующую типу юнита логику. Помимо этого мы реализовали относительно простой AI. Об используемых в нашей игре алгоритмах немного позже расскажет Skor.<br />
Провозившись всю ночь с фотографированием и подготовкой в Photoshop текстур, написанием логики поведения AI и бесконечным мёржем наших изменений, мы наконец получили нечто похожее на игру :) Также в процессе написания решили перейти от стратегии реального времени к пошаговому процессу игры, так как он более подходил для демонстрации возможностей. Ещё за неимением времени решили отказаться от апгрейдов файтеров и нейтральных планет. Получилось нечто вот такое (скрин кликабельный):<br />
<a href="http://wiki.heratorz-dou.googlecode.com/hg/screen.png" target="_blank"><img border="0" height="250" src="http://wiki.heratorz-dou.googlecode.com/hg/screen.png" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" width="457" /></a><br />
Потынявшись последние полчаса по офису (а AquilA успел даже вздремнуть на балконной лавке), попытавшись сыграть в настольный теннис (после бессонной ночи координация была на нуле), мы наконец добрались до помещения, в котором должно было проходить голосование.<br />
К этому времени остались самые стойкие команды. У всех были классные проекты, в особенности нам, как и всем остальным, понравился, конечно же, проект команды <a href="http://von-neumann-architecture.blogspot.com/2011/08/blog-post.html" target="_blank">Von Neumann Architecture</a>, которые реализовали на Haskell транслятор Pascal-кода в JavaScript и попытались портировать старую игру под DOS. Многие команды подготовили полноценные презентации, запаслись шутками, а некоторые даже подарками. Среди нас же прирождённых шоуменов не нашлось, название нашей команды перекрутили over 9000 раз, и проект свой демонстрировали мы самыми последними, так что рассчитывать ни на что особо не приходилось. Да и не было уже сил :)<br />
Каково же было удивление, когда по результатам общего голосования мы не только вышли в финал наравне с тремя другими проектами (сервис подбора подарков, приложение дополненной реальности и вышеупомянутый транслятор), но и заняли третье место. Сервис для подбора подарков, увы, немного не дотянул по количеству голосов, но, уверен, у них ещё всё впереди.<br />
Оставаться на after-party были просто не в состоянии, поэтому совершенно обессиленные мы взяли футболочки на память о мероприятии, под шумок собрали себе по чайному сервизу из халявных чашек GlobalLogic и отправились прямиком к метро, на котором и разъехались по домам, где каждого из нас ждали свои радости (кого лицензионная версия World of WarCraft, а кого и любящая, но изрядно заскучавшая девушка).<br />
Подытоживая, могу отметить, что организация мероприятия была на крайне высоком уровне, за что огромное спасибо организаторам, а также участникам мероприятия. До встречи на следующем харьковском Хакатоне!<br />
<br />
<em>P.S. Если кому-то всё ещё интересен наш проект, то исходники можно найти вот здесь:</em><br />
<a href="http://code.google.com/p/heratorz-dou/" target="_blank">Страница проекта на Google Code</a><br />
Через пару дней выложим скринкаст с геймплеем, так что будьте на связи!</div>
Anonymoushttp://www.blogger.com/profile/00768248497256469551noreply@blogger.com0tag:blogger.com,1999:blog-7430197054322508680.post-66370661096466832412009-10-23T18:31:00.000+03:002009-10-28T21:40:56.123+02:00Ололо! Киев ждёт нас!<p align="justify">Только что <a title="пруф" href="http://programmania.quest.ua/news/open/id/845/" target="_blank">стало известно</a>, что мы не останемся без подарочков:</p> <blockquote> <p align="justify">В связи с тем, что номинацию «Самое оригинальное решение с использованием Multithreading» от компаний Program-Ace и Intel было принято не присуждать, учредителями данной номинации было принято решение передать приз за данную номинацию, а именно: винчестер external HDD Toshiba 320 Gb и CDs Intel(R) ParallelStudio, команде <strong>heratorz</strong>, занявшей четвертое место. <br />Поздравляем и ждем на награждении!</p> </blockquote> <p align="justify">Собираем манатки и едем на вокзал за билетами :)))</p> Anonymoushttp://www.blogger.com/profile/00768248497256469551noreply@blogger.com0tag:blogger.com,1999:blog-7430197054322508680.post-19669356317655470052009-10-22T21:38:00.000+03:002009-10-28T21:41:24.792+02:00От каждого по способностям, каждому по потребностям…<p align="justify">Итак, сегодня выяснилось, что приз за самое быстрое прохождение присуждается <u>исключительно</u> за полевые задания. Таким образом, после «хитрого» пересчёта времени наша команда оказалась на <a title="Общая статистика" href="http://stat.quest.ua/stat/stat.rt.2927.html#stat" target="_blank">4-м месте</a> за полевую часть, пропустив вперёд Eclipse SP, 9 РОТУ IT и Pink Panther. Волей-неволей напрашивается вопрос: «А нафига вообще было спешить в поле и стараться побыстрее отправить задание в штабе?» Вопрос №2: «Зачем нужна была таблица статистики?» Пожалуй, этого мы никогда уже не узнаем, но в будущем будем умнее.</p> <p align="justify">В номинации «Самый оригинальный Java-код» победила команда Eclipse SP, однако, остальным командам ничего не остаётся, кроме как свято в это верить, т.к. GlobalLogic никому и никогда не покажет решения, присланные участниками конкурса. МУАХАХА! Или на Java больше никто не писал? :) В любом случае, nobody cares, потому что приз за эту номинацию предоставляла компания… Eclipse SP (сюрприз! А вы как думали ;))</p> <p align="justify">Непосредственно в основной части конкурса наша команда опять же на <a title="Сводная таблица результатов" href="http://www.globallogic.com.ua/?option=com_content&view=article&id=18654920&Itemid=204&lang=ru" target="_blank">4-м месте</a> с отрывом в 13 баллов <font color="#c0c0c0">(которые мы бы, несомненно, набрали, если бы забили на поле и не торопились)</font> от финалистов — команды Яволидио.</p> <p align="justify"><strong>Мораль: </strong>наша команда в течение всей игры с невообразимым мастерством держала «золотую середину» между полевыми и штабными заданиями, а не надо было. Одна из основных причин — очень смутные правила конкурса.</p> <p align="justify"><strong>Никогда доселе команда <em>heratorz</em> не была так близка к победе :)</strong></p> Anonymoushttp://www.blogger.com/profile/00768248497256469551noreply@blogger.com0tag:blogger.com,1999:blog-7430197054322508680.post-17027965636101470572009-10-10T21:00:00.017+03:002009-10-28T21:45:03.262+02:00УРА! Мы первые! =)Команда <b>heratorz</b> с отрывом более чем в пять минут финиширует первой на Программании ‘09, не дав тем самым пробиться вперёд основным конкурентам — команде <b>9 РОТА IT</b> <i>(Xanf, привет ;))</i>.<br />
<br />
Почетный президент команды, Хератор Скор не смог сдержать бурю эмоций и со всем уважением, которое только может проявить, благодарит соперников за отличную игру, не забыв, однако, напомнить, кто первый в таблице статистики:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP2Mih2TBwXdnGpueTaxlBhmYB3GyLToYPuXi053Wu0pMhqUSZ9b5EGqA6QNhAeZVG462U3Q_WuQoNyNJJQ-GVa9BsHmHgf39BTjmYlxvKvSucajErzG54q_72-UiNNU2xSeOCDg_oZWU/s1600-h/herrratorrz.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP2Mih2TBwXdnGpueTaxlBhmYB3GyLToYPuXi053Wu0pMhqUSZ9b5EGqA6QNhAeZVG462U3Q_WuQoNyNJJQ-GVa9BsHmHgf39BTjmYlxvKvSucajErzG54q_72-UiNNU2xSeOCDg_oZWU/s640/herrratorrz.jpg" /></a><br />
</div>Anonymoushttp://www.blogger.com/profile/00768248497256469551noreply@blogger.com0