Pull to refresh
21
0
Егор Коновалов @agegorin

User

Send message
Я люблю платформеры и считаю Cave Story одной из самых любимых своих игр, но ваша игра меня никак не зацепила.
Я тоже не ваша ЦА?)

Если уж делаете клон Cave Story, то делайте это хорошо.
Когда оружие после прокачки становится хуже, когда внезапно сверху на меня сваливаются мобы, когда дверь открывается только по кнопочке сбоку, когда персонаж двигается со скоростью черепахи — это все что угодно, но не платформер сделанный под впечатлением от Cave Story.
Вот, кстати, идея. Дать нечестному игроку ощущение что игра уже взломана и ничего делать больше не нужно. :)
Я думаю стоит исходить из того, что сложный бот имеет некую «цену» создания. Чем больше проверок, тем «дороже» будет бот. Если «цена» написания бота будет заметно «дороже» возможного выигрыша, то смысла в таком боте, кроме академического, не будет.

Можно провести аналогию с фальшивоменотчеством. Деньги можно подделать, но средства защиты стремятся сделать стоимость подделки неретабельной.
Мы предоставляли заказчику список нескольких первых десятков пользователей с пометками о наших подозрениях.
Исключенные из рейтинга пользователи обычно не обращались, а тем кто писал, давали ответы поподробнее, но без конкретных цифр.
Тоже решали аналогичную задачу, только игра была в жанре Tower Defense, что накладывало свои особенности.
Тоже пришли к сбору данных о действиях игроков.
В итоге ловили нечестных игроков на одинаковых во многих сессия координатах кликов, на слишком быстрых действиях (разнца между действиями 3мс), на одинаковых отсылаемых значениях.
Правда анализировали действия самостоятельно — на автоматическую систему проверки никто времени не закладывал.
Ну я так понимаю при стриминге будут нарушаться правила использования API Вконтакте.
Но да, идея интересная и было бы круто.)
В моем случае было необходимость проигрывать в разных кабинетах, поэтому задержки можно было игнорировать, до определенного значения. :)
ВКонтакте отдает для каждого пользователя свои ссылки на mp3, поэтому для каждого производился поиск по id композий, и на клиент приходила уже готовая ссылка, которая в итоге подставлялась в тег audio.
Удивительно. Где-то месяц назад с той же целью (общий плейлист на работе) начинал в свободное время писать такой же сервис. Так же NodeJS + VKontakte API + websockets. Правда вывод музыки делал обратно в браузер и все кто подключен, мог включить проигрывание у себя (в офисе два отдельных кабинета).
В Игре Престолов действительно достаточно сложные правила. Разобрались в них до конца лишь на третий-четвертый раз. Выучили полностью разу к 10. Сейчас партию успеваем сыграть за час — два, при 6 игроках.
Почти каждую пятницу с друзьями сидим в кафе часов с 7 до 2. Занимаем самые большие столы :)
На работе в шкафчике лежат Эволюция и Зельеварение. Регулярно играем в Риичи Маджонг. Недавно притаскивал Ужас Аркхема. Каждая из игр затягивает по своему :). Из личных предпочтений — Игра Престолов (которая стратегическая, а не карточная).
Указывать то можно что угодно, потом оно просто приводится к строке.
Скрытый текст
foo = {};
bar = "0[object Object]1[object Object]2";
bar.split(foo); // => ["0", "1", "2"]

А куда pull request-ы то делать?
А то ссылка на гоночку неправильная :)
Вы не поверите, в песочнице уже есть.
habrahabr.ru/sandbox/74624/
Сделали, как сделали и правильно сделали. :) Просто мне сначала показалось странным поведение.
Но тогда он не должен же отталкиваться вниз, пока летит вверх. :)
У меня не всегда успевает переключиться в другое состояние, поэтому ниндзя иногда проскакиват платформы.
У меня первое желание было вот это
if( blocks[i][1] > height - 60 && blocks[i][1] < height - 10 && Math.abs( pos - blocks[i][0]) < 10 ){
разнести на несколько строк.
Ну здесь по коду все же нужен постфиксный оператор
blocks.splice( i--, 1);

но да, верно. Привычка разделять действия в данном случае неуместна :)
1

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity