Автору респект и спасибо за статью!
А насчет «переоформить и продавать», кстати, на AppStore она примерно в таком оформлении и продается. Разве что сделать некое подобие уровней, чтобы герой игры как в оригинале подымался до самого космоса. Но самое важное уже сделано, и сделано очень даже хорошо.
А почему бы не продавать? Конечно в данном виде она для этого не готова, но если доработать очень даже можно продавать. Я считаю, что качественная работа программера должна оплачиваться, а на всякой рекламе и донейтах сильно не поднимешься…
Спасибо, поигрался :)
Только как по мне, было бы интереснее, если бы сложность менялась немного быстрее, а то после нескольких минут игры становится скучновато :)
Здорово! Очень качественно сделано. Правда с балансом проблема: слишком просто получается:) Во-первых, с клавиатуры значтельно проще управлять, во-вторых, у вас тут с высотой плотность платформ почти не уменьшается и монстры попадаются крайне редко. В общем, играть надоело раньше чем проиграл, будет интереснее если поднять сложность.
А зачем вы делали точный клон, а не что-то свое? Свое-то приятнее иметь)
И почему решили не пользоваться jQuery? C ним бы меньше писанины было.
Бота, конечно, интересно, но тут уже целый ИИ нужен.
А так посмотрите таблицу рекордов. Проблема HTML5-игр в том, что изменением пары параметров в коде можно попасть в топ без особых усилий.
Это проблема практически любых игр. Обсфусцированный html5 ничем особо от остальных не отличается — клиенту доверять нельзя даже если он написан на Си.
Все же с клиентом на си придется еще повозиться в случае маленькх приложений мало кому это будет интересно. А в случае HTML подделать данные настолько просто, что с этим справится каждый школьник.
У игры из топика ужасная архитектура. Достаточно взять весь код в анонимную функцию и без дебагера уже не обойтись, потом обфусцировать и сделать одну строку — брейкпоинт уже так просто не поставить. Особые извращенцы могут заюзать p,a,c,k,e,r — тогда без декодирования вообще никак. Но всё это не имеет смысла, потому что любой код, который выполняется на клиенте может соврать.
деобфускаторы гуглятся так же просто как и обфускаторы:) И то, что получается после деобфускации читается намного проще чем нескриптовый код после дизассембляции. Половина школьников при этом отвалится, но половина останется. А там достаточно будет найти функцию, готовящую данные для отправки на сервер и подменить данные. Ну или просто можно посмотреть в консоли хрома или фаербага данные, отправляемые приложением и подменить их.
А идеи, как от этого защититься у вас есть? Кроме параллельного выполнения игры на сервере) Меня просто сейчас как раз тоже интересует данная тема.
На самом деле обфускация — это достаточный для клиента шаг. Что-то большее делать не имеет смысла. Лично я бы обламался именно в этом месте.
Объясняю. Сейчас достаточно написать что-то типа такого в адресной строке браузера:
javascript:(window.count=9001)
Такое бы распространялось по всяким вконтактикам с текстом: «стать самым крутым в этой игрушке — очень просто» и все секретутки почувствовали бы себя хакерами
Если бы автор не поленился взять весь код в анонимную функцию, то пришлось бы открывать отладчик, ставить брейкпоинт, заменять значение переменной во время выполнения. такую штуку блондинке уже не объяснишь, потому ломали бы только более-менее программисты. хотя ук программистов на это бы уходило секунды 23-24, потому это тоже не вариант.
Теперь — обфусцированный код. Мне надо скачать исходники на комп, найти деобфускатор, деобфусцировать их, разобраться в непонятных названиях переменных, запустить. В этом месте можно человеку кинуть пару подлянок — хедеры там всякие проверять, запускается ли код с нашего сервака или с локального.
Для того, чтобы труднее было подделать запрос можно добавить хеш из его json'a, скажем — без деобфусцирования опять не разобраться.
К сожалению, кроме выполнения игры на сервере мыслей у меня никаких. Но сейчас, в век мультиплеерных игр код на клиенте должен только рендерить, а вся логика должна быть на сервере. Иначе, как вы сделаете игрушку из топика на двоих?
И тогда отпадает проблема с тем, что доступны исходники)
Статья отличная, но слишком много магических чисел в коде :) Можете поподробнее рассказать про то, как и по какому принципу рассчитываются координаты в той же setObstacle?
Можно относиться к этому как угодно, но факт есть факт — прочтя подобное многим думается примерно следующее:
«Я мненью вашему вращенье придавал, и осью был ...» =)
Вы только не подумайте, ничего личного, это не о Вашем мнении, а о копирастах и иже с ними.
Компания Lima Sky выпустила игру Doodle Jump. Эта игра очень популярна.
Какое право иметт какойто Вася Пупкин брать ИХ графику, ИХ звуки, 1в1 копировать полностью все??? Не дав даже никакой ссылки на авторов. Даже те, кто делают кросовки Абибас хоть одну букву в названии меняют, тут нет даже этого.
Ну, оригинал настолько известен, что и без ссылок все понятно. Не то чтобы я защищаю автора, я и сам не понимаю, зачем было делать точную копию — свое-то всяко интереснее делать, к тому же из-за правовых соображений у игры нет будущего. Но мне кажется, что вы придираетесь)
Создание Doodle jump на HTML5