Archive for Февраль 2009

Вечный реплей 11×11

Февраль 25, 2009

good_moment

Матчи хранятся в архиве не более двух дней.

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

Почему же администрация не хранит матчи вечно. Дело в том, что один матч занимает примерно 300 kb. Я за день могу сыграть 10-15 матчей. В итоге — 3-4.5 мегабайта только не меня одного. Жестоко, если учесть что активных игроков примерно 5.000. Получается что за день наигрывается по самым скромным подсчётам около 15-27 гигабайта! Если я всё посчитал правильно, то администрация проекта итак поступает с нами по божески, позволяя себе хранить повторы за два дня.

А теперь посмотрим, как же всё-таки сохранить заветный реплей. Итак, начнем припарироваит страницу повтора игры. Первое, что было замечено, так это то, что swf файлик, который отвечает за просмотр повтора называется viewer48.swf. Из этого можно сделать предположение, что администрация уже не раз меня протокол обмена информацие, и текущяя версия скорее всего 48 :) Следовательно надо следить за обновлениями и сохранять старые версии «просмотрщиков».

Для начала скачаем файл с игрой. Если повтор находится по ссылке http://www.11×11.ru/matches/31384630, то скачивать надо файл

http://osgiliath.nekki.ru/files/bin/31/38/46/31384630.bin

Для этого просто достаточно встанить новоиспеченный линк в браузер. Надеюсь не надо объяснять, как именно получился такой урл (я даже специально расскрасил).  Я так понял, что админы специально разложили все реплеи по папкам, чтобы уменьшить расходы на поиск и отдачу файла. Ведь намного проще сначала зайти в одну директорию, потом в поддиректорию, чем искать один файл в директории в которой около миллиона файлов. Получился своего рода Хеш. Интересно, как они сделали, чтобы сервер справлялся с такой нагрузкой?

Еще немного порадовал комментарий разработчиков в JS коде

// собираем информацию. помогает при взломах персонажей. :)

Из страницы было удалено всё лишнее и…. ничего не вышло. Дело втом, что у Flash очень «капризная» система безопасности и запускаться с локального диска всё это дело не будет. Для этого всё добро необходимо залить на локальный сервер (просто Flash настолько сильно заботиться о вас, что никогда не наберется наглости загрузить что-нибудь с вашего винта, и это правильно). Залил…. заработало, вот только бегают одни циферки нв белом поле, да мячик летает. Идём в исходный код и видим, что еще же надо кучу всяких картинок загрузить : поле футболка игрока и т.п. и т.д.

Продолжим препорацию:

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

А да, создатели данной игры действительно мастера своего дела. Давно я не видел столько приёмчиков в одной страничке, что не может не радовать.

Смена формата игры

Февраль 24, 2009

bee-local-specialty_u22026430Сегодня утром потратил немного времени (часа так 2 :) ) и попытался привести своего сапйра в порядок. Добавил часики, теперь можно точно сказать, за сколько времени ты разминировал поле. Кроме того, сделал первый клик безопасным. Теперь поле генерируется только после первого клика, что гарантирует, как минимум, выживание на первом ходу.

Но не обошлось и без багов. Юра, самый лучший тестер. Как он нашел столько ошибок, уму не постижимо, я дома играл себе и ничего не сыпалось. А дал Юре, и понеслось:

  • некорректно работает таймер при нажатии на кнопку рестарти при начатой игре. (баг легкий, исправлю моментально)
  • Иногда происходит автоматичесткое выигрывание. (Скорее всего это связано с подсчётом открытых ячеек. Из-за того, что я добавил возможность проверки по Ctrl+Click)

Так же Юрик предложил, чтобы кнопка рестарта при проигрыше как то намекала на своё существование. Сказано — сделаем.

Но вот поступила срочная радиограмма.

[17:34:21] Юра Кая: Палыч, предложил твоего сапера стилизировать под улей с пчелами!
Вместо бомб трутней какх-нибудь злых… и т.д

Бля, а ведь точно! Как я сам не догадался? Можно же сделать целую серию игрушек про улей : цвеотчки горшочки и т.п. и т.д. В общем, скоро произойдет ребрендинг.

Обновленный дизайн страницы игры

Февраль 23, 2009

bugНу уж очень мне не нравился внешний вид странички с моим сапёром. Решил его немного оживить с помошью картинок и немного подправить css. Вроде стало лучше.

Первые отзывы на шестигранного сапёра

Февраль 23, 2009

minesweeperthumbНа сайте flashgamelicense.com на мою игру Hexagonal Minesweeper несколько девелоперов оставили пару отзывов.

  • very interesting game. Try to make an instruction of how to play, cause i used to have right click in minesweeper. more improvement in graphics and try to add sound.. very nice
  • It’s easier than regular minesweeper. One big problem is striking mines on the first click. Normal minesweeper this is impossible. Vista minesweeper you are guarenteed to click on something not even adjacent to a mine. Just generate the minefield after the first click.

    I also miss the combined left and right click that you get in normal minesweeper.

    Finally — it needs a clock!

  • Due to the way in which one goes about solving a mine-sweeper board, adding 2 more sides to each choice actually makes the game easier to win. However, I do feel like the backend to the game is well done.

    One improvement I would recommend would be to make the board generate AFTER the first click. The current setup results in sometimes clicking a mine one th efirst click, which is really just annoying to the end user.

Из этих отзывов вытекает:

  • что игра довольно интересна, но проще чем виндошная (это я и сам знал).
  • убрать возможность взрыва при первом клике. Честно сказать, я такого не предвидел, но, как мне кажеться, у меня не должно возникнуть проблем с внедрением такого фичи.
  • добавить часы (дельное замечание).
  • добавить возможность Right+Left click стандарного  сапёра. Это еще примерно минут 20 работы, если конечно не встречу косяков.
  • улучшить графику. Вот тут уж дудки. Мне нравится моя графика. Она простая, незамысловатая, не напрягает мозг.

Сегодня вечером постараюсь воплотить всё это в жизнь, уж очень хочеться заработать первую денюшку :)

Тестовая игра практически готова

Февраль 20, 2009

minesweepericonИтак, сегодня утром я практически закончил свою тестовую игру «Шестигранный сапёр«. Еще конечно много чего нету:

  • меню
  • звуков
  • подсчёта времени
  • таблицы рекордов

Но самое главное, уже можно играть. Кроме того, я научился делать игру так, чтобы после обработки mochiads’овким криптовщиком она работала.

Ах да, чуть совсем не забыл, надо же еще и иконку самому нарисовать, а то мне не сильно нравиться текущая.

А какая у меня тема диплома?

Февраль 20, 2009

Так как у меня аж пять дипломников в ХТТ, то самому придумывать темы будет не просто. Вот и решил подсмотреть, как же называли свои дипломные работы мои одногрупники, может чё толкое смогу найти. Сначала я хотел сам зайти в университет на кафедру и попросить лаборанта распечатать необходимый мне списочек. Но, как всегда, из-за кучи дел я не успел. После этого я хотел  переложить свой поход на Юрика, он всё равно в столовую ходит :). Но Юра, услышав очень злобное слово «университет», моментально выдал мне ссылку на все темы дипломных и курсовых нашего факультета. Вот как ему не хотелось идти в универ :)

Я был в шоке. Оказывается наша кафедра не просто так называется кафедрой «Информатики и вычислительно техники». Вот я только не могу понять, почему данную ссылку никто никогда не «светил» за время моей учебы. Работы бы у лаборанта на кафедре точно бы поуменьшилось, если бы студенты знали, что существует на сайте раздел «документы«.

Ах да. Уважаемая кафедра, вставте всё таки картинку :)

Новая задача для олимпиады по программированию

Февраль 19, 2009

В своё время, когда я еще был маленький (8 класс) и занимался математикой, я был на олимпиаде по математике и получил диплом второй степени. И на разборе задач Жук (это фамилия преподавателя) сказал, что очень часто задачу для олимпиады можно составить взглянув на самые простые вещи, например, на игры.

Поэтому, глядя на игру «Block Drop«, я сразу понял: вот она, одимпиадная задача.

Вот какой текст получился у меня.

Имеется игровое клетчатое поле размером N на M. Оно полностью залито водой. В каждой клетке над водой находиться определенное количество кубиков. У нас есть человечек, который может прыгать со столбика на соседний столбик или через одну клетку. Если человечек прыгнет в клетку в которой нет кубиков, то он утонет. После того, как человечек прыгнул с одного столбика на другой, тот столбик, на котором он находился до прыжка погружается на один кубик в воду, т.е. в этом столбике становиться на один кубик меньше. Необходимо пропрыгать со столбика А до столбика B таким образом, чтобы на поле не осталось ни одного кубика, кроме кубика на финишной клетке, на котором и должен стоять человечек после окончания серии прыжков. Необходимо вывести последовательность прыжков, выполня которую человечик решит поставленную задачу Варианты прыжков на соседнюю клетку — L,R,U,D, через одну — L2,R2,U2, D2.

Надеюсь объянять, что такое L,R,U,D не надо :) Как её решать я пока не знаю, но мне кажется будет интересно.

jQuery magic

Февраль 19, 2009

logo_jquery_215x53Что такое jQuery скорее всего уже все знают (а если не знают, то бегом читать…). Но некоторые методы данного JS фреймворка для меня казались бесполезными (какой я был наивный :))

Рассмотрим мой конкретный пример. У меня в ячейке таблицы находится линк. При нажатии на этот линк мне необходимо получить ссылку на строку, в которой находиться данный линк.

Я поначалу воспользовался методом

.parents("tr")

Но меня ждал сюрприз. (Дети, внимательно читайте документацию !!!). Оказывается данный метод вернет всех родителей в дереве, которые являются строками таблицы. Т.е. если наша таблица вложена в еще одну таблицу (а такой вариант на 100% вам попадётся) то вы получите и родительскую строку, и прородительскую. А мне такого не надо.

На помощь приходит базовый фильтр eq. Написав

.parents("tr:eq(0)")

я как раз и получил только первую строку таблицы. Кстати, рекомандую заглянуть на страницу справки данного фильтра. Там очень интересные примеры использования.

И напоследок, есть возможность устновить себе на комптютер offline версию хелпа по jQuery, которая выполнена в виде AIR приложения.

А ты проверился на …

Февраль 19, 2009

Как писалось ранее, я завёл аккаунт на moneybookers и решил проверить свой адрес. А правильно я его ввёл или нет? Оказалось, что правильно. Вчера вечером меня ждало красивое аккуратоное письмецо с кодом, который я благополучно ввёл на сайте. После этого сайт увеличил мною квоту на единовременный вывод в два раза. Кроме того, в письме была вторая бумажка, в которой меня попросили на сайте received-it.com ввести еще один котрольный код. Таким образом уже сервис по отправке писем проверяет свою эффективность.

Кстати, только что Юра сообщил (у него есть знающий знакомый), что при выводе из moneybookers придётся заплатить 12% подоходного налога. Поэтому мне посоветовали на n-change.net поменять moneybooker’сы на webmoney.

А время всё тикает

Февраль 17, 2009

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

Одна из них это The Space Game. Арт не такой уж и крутой, всё просто и лаконично, но зато как интересно играть.

Суть проста (я играл только пару первых миссий, на большее нет времени) : строим генераторы электричесва, каналы передачи электроэнергии, добывающие установки, защитные сооружения… Но само построения графа электрозависимости (во как загнул) и передача этой самой «электричности» выполнена на высоте.