Все никак не могу решить проблему с клонами в своих онлайн проектах. Ведь всегда находятся люди, которые создают вторых персонажей, и начинают прокачиваться. Вот есть у меня шутер, два человека создали бой, один стоит ничего не делает, второй мочит первого, получает за это денежки и опыт. Пытался вычислять по айпи. Сейчас люди продвинутые - сидят иногда через мобильный интернет, где айпи меняется все время.
Была еще мысль. Сделать у каждого игрока определенный уровень - играешь с игроками своего уровня. Поэтому если в одном из боев побеждаешь, то ты переходишь на следующий уровень, а твой клон - нет. И теперь нужно клона прокачать через другого клона, что уже сложнее. Ну и с каждым уровнем все больше клонов надо. Казалось бы решение проблемы, но игрокам тяжело играть. Вася с Петей хорошие друзья, но один из них завис на 30м уровне, ему не с кем играть, а другой на 18м, оба пинают игру и разработчика чем только могут.
AntonV
Привязывать к лицензии?
Единственный реальный способ - это сделать так, чтобы было не интересно сражаться с самим собой.
но конечно можно прибегнуть и к агресивным методам типо банить по ip, ограничивать уровни, ограничивать количество раз, сколько ты можешь сражаться с одним человеком. и томуподобное.
По IP банить весьма нежелательно - к сожалению многие провайдеры работают по схеме NAT и не только вышеупомянутые сотовые. Сейчас вообще скоро IP-шников (ip4) на всех перестанет хватать, так что это являение будет только усиливаться.
AntonV
1. Сделай так, чтобы нельзя было потерять то, что ты не заработал до этого своим трудом. Смотри реализацию в K-Dice.
2. Сделай невозможным осознанный выбор противника. Смотри рандомные бои в Gunrox.
3. Сделай амортизацию опыта, получаемого с победы над одним игроком. Первая победа дает 10, вторая 5, все остальные - 1.
4. Сделай уровень игрока, рассчитываемый не по набитым головам, а по положению в турнирной таблице. Тогда постоянный выигрыш над одним и тем же неудачником не будет давать игроку продвижения в таблице (как, например, не дает продвижения в рейтинге УЕФА победа сборной Италии над сборной Северной Кореи, все и так знают, что она сильнее).
=A=L=X=
что за лицензия? К сожалению, не часто играю в онлайн игры, поэтому не знаю как там у других.
Нужно вводить ЭЛО статистику, грубо говоря у каждого есть свой рейтинг, и для того что-бы его поднять нужно играть с игроками у которых рейтинг выше ( потому что в этом случае ты получишь больше очков ), а за победу слабого противника насчитывать ничтожно мало.
dev
Ну вот допустим играю я со своим клоном, он выходит на пару уровней выше, и я его убиваю и получаю хороший рейтинг...
Можно сделать так, чтобы уровень ничего не значил.
Как в БНЕТЕ старкрафта на подольском сервере.
Ну набьёшь ты себе с помощью клона статс 100-0, и дальше что?
Тогда зачем он вообще, если ничего не значит?
Сделай рандомный сбор команды с максимальной загрузкой сервера, что бы не было возможности уединиться двум друзьям.
Сделай возможность игры друзьям за одну команду, что бы не было возможности качаться друг на друге.
Если они не встают в очередь вместе, то попадают в рандомные игры. Если вместе, то играют за одну команду.
Если хотят играть друг против друга, то рейтинг не получают (создают безрейтинговую игру и присоединяются хоть всей школой и делятся на команды как хотят, только опыта за "фан" не получают).
Есть возможность в моем сценарии качаться друг на дружке? Есть, только если у тебя всего десяток онлайна. Но тогда тебе ничего не поможет.
Zhbanito
К сожалению, не все проекты с тысячным онлайном. Лично у меня по ночам в онлайне 2 человека, которые по-любому захотят между собой сыграть.
Тогда боюсь тебе ничего не поможет. Пытаясь ограничить таких игроков, по ip и прочему, ты рискуешь задеть честных трудяг. Значит пытайся анализировать игру, выявлять нечестное поведение, но это все тоже элементарно обходится.
Zhbanito
Примерно такая же реализация сделана в League of Legends. Там конечно есть и возможность создавать кастомную игру, но опыта за неё будет в раза 4 меньше, что даже меньше чем проигрывая бой (проигрывая всё равно дают опыт, просто меньше).
Такие вещи давно никто не пытается решить на уровне сервера, это делается тупо геймплаем и логикой создания игровых сессий.
В онлайне два человека. как не дать им побить друг-друга?
Тема в архиве.