>>41321> что делать с повторяющимися персонажами?
Думал об этом. Но, потом вспомнил про MtG (сам не играл, но много читал и в общем-то именно эта игра меня и натолкнула на идею сделать покемонов в виде карточек), а там ведь карты не уникальны. Ты вполне можешь на свою сильную и редкую карту получить от оппонента точно такую же, верно?
Конечно, плодить одного и того же персонажа толпами не прикольно - но так и не получится, ибо у меня имя покемона должно быть уникальным. Я собираюсь ограничить возможные имена для покемонов - Только русские и английские буквы, пробел и тире. При этом исключить подмену русских букв на похожие английские (и наоборот).
Возьмём к примеру Суисейсеки. Если заморочиться, то можно будет создать несколько покемонов с именами типа:
- Суисейсейки
- Суисей Сейки
- Суи Сейсеки
- Суи Сей Секи
- Суи-Сейски
- Суисейсеки-десу
- Десу-Десу
- Суисейсеки десу же
- и так далее со всё более невразумительной мешаниной левых слов
Согласись, глядя на такой набор карточек, ты сразу поймешь, что вариант "Суисейсеки" - единственный нормальный, а всё остальное - беспонтовые клоны. С персонажами у которых имя более сложное (например Аска Лэнгли Сорью), свободы для создания адекватных клонов больше, но всё равно самым понотовым получается каноничное имя, а вариант "Лэнгли Сорью Аска" смотрится уже как-то не очень. Надеюсь теперь моя идея понятна. не кажется всё вполне адекватно получается и главное тысяч Суйисейсеки в такой игре не будет.
> Возможное решение - периодическое добавление новых покемонов только ОПом, или кем-то ещё с определенным трипкодом.
Думал об этом и такую идею буду реализовывать. Вообще, я надеюсь что игрушка получит интерес от Анонов увлекающихся ролеплеем. И по этому хочу создать возможность ГеймМастеру (топик стартеру) во-первых: немного менять какие-то параметры игры; во-вторых: при необходимости включать премодерацию новых покемонов и новых игроков.
Другими словами, два режима игры будут доступны: free4all и с ГеймМастером
> если пвп будет полностью рандомным, все статы покемонов станут совершенно бессмысленными, так что нужно их учитывать. Это ставит еще одну проблему - нужно сбалансировать начальные статы покемонов, чтобы избежать анального рейпа всех и вся каким-нибудь особо удачливым Черным Властелином.
ПвП не будет полностью рандомным. Статы покемонов будут влиять на исход битвы (пока что это нереализованная часть, толковую систему я ещё не придумал.)
В начале покемоны будут все одинаковые, их статы будут повышаться с опытом, который они получают в битвах. Хочу добавить некую систему скиллов и/или перков. Перки - нечто получаемое за определённые события (пять побед подряд, победа в одиночку против толпы, три победы над монстрами сильнее). Скиллы - как в диабле, только, наверное дерево скиллов будет более ветвистым и выучить всё не получится - только треть или четверть. И если ты пролошил и вкачал не то, считай покемон просран, можешь хранить его просто как красивую картинку или отпустить на свободу.
> нужно избежать читерства, для чего придется писать "сервер", обрабатывающий поимку покемонов, исходы поединков, обмен, прокачку etc.
Во-первых: не хочу делать сервер. Во-вторых: не вижу в этом смысла.
Моя идея заключается в том, что вся игровая информация - это посты в игровом треде. Случайные величины для определения "поймал/не поймал", "победил/не победил" и так далее будут браться от номера сообщения.
Пример - сообщение с поимкой покемона:
Ногебатор!Vfj463gn 15 July 2013 (Mon) 01:35 No.41321
!Поймать Суисейсеки
Игрок обновляет тред. Движок парсит новое сообщение - ага, Ногебатор пытался поймать Суисейсеки. В 1:35 и с номером сообщения 41321. Инициализируем генератор случайных чисел на основе этих двух параметров (я использую
ruwiki://Вихрь_Мерсенна реализованным на JS, чтобы гарантировать одинаковый результат на всех клиентах), так получилось 0.12 - не поймал. Так и запишем.
То есть никаких результатов в сообщениях нет. Это просто объявления о том, что игрок сделал определённый "ход". Успешность хода определяется методом, который я только что описал. Соответственно, если у всех игроков одна и та же версия скрипта, они видят одинаковую картину на игровом поле. Если же один из игроков похачит свою версию скрипта так, чтоб все евенты заканчивались в его пользу, то да, он лично будет играть по своим правилам, а вот все остальные его просто не будут видеть, потому что я собираюсь отбрасывать невалидные сообщения - нельзя поймать покемона, которого уже поймали, нельзя обменять покемона, если ты им не владеешь, нельзя прокачать своего покемона, если он только что проиграл.
Или они будут видеть этого
читака, но играть он всё равно будет по их правилам, так что никакой хурмы.
Есть несколько варианта читерства, которые реально возможны:
1) Можно заранее просчитать, в какое время и с каким номером надо запостить сообщение, чтобы покемон поймался
Ну, ты красава, чё! Взял гет, молодец. На такой подход я смотрю как на хорошую разведку и подготовку к бою. Но и тут ведь есть шанс, что кто-то гет возьмёт первее тебя.
2) Можно запостить несколько сообщений подряд с одной и той же командой, а потом удалить те, где результат отрицательный
и
3) Можно устроить диверсию - взять и удалить свои сообщения с командами и/или новыми покемонами, которые ты постил давно, ещё в начале треда - это полностью изменит валидность всех последующих команд других игроков (покемона больше не существует - его не поймать. У тебя получился другой состав покемонов - и ты уже проиграл битву, а не выиграл, и так далее)
Оба два этих варианта обходятся следующим образом: во время игры тред не парсится целиком каждый раз, парсятся только те сообщения, которых ты ещё не видел (почти. подробнее далее). Соответственно, если удалить что-то старое - ты об этом не узнаешь.
Особый случай - сообщения которые постятся/удаляются прямо сейчас. Ты может успел такое заметить, а все остальные игроки не успели - тут я хочу сделать так: сообщения за последние, скажем, десять минут перепарсиваются каждый раз. И в случае, если что-то было удалено, об этом репортится в тред. Типа "Игрок Вассисуалий читерит!".
Так же для таких ситуаций (а так же для переноса актуального состояния игры в новый тред и продолжения ей там), я собираюсь запилить утилиту, которая может дампать состояние игры в виде зипфайла со всеми сообщениями и картинками монстров в тред, а так же использовать этот файл как стартовую точку в новом треде или как промежуточный чек-поинт в текущем (то есть не перепарсивать весь тред, а взять состояние из этого файла и продолжать уже от него). Но, это больше утилита для игр с ГеймМастером.
>>41323> Анон, можно было бы замутить какой-нибудь репозиторий
Позже будет репозиторий на github-е и там же сайтик. Вообще, собираюсь сделать возможным дописывать к скрипту драйвер имиджборд. Чтоб можно было портировать игру на другие борды, на форчан например.
>>41328> Можно через теги какой-нибудь буры проверять
Интересное предложение. Запомнил, подумаю об этом, спасибо.