Ещё раз с наступившим выживших после вчерашнего :3
Ах да, забыл. Схема требует 1+N(количество тэгов) выборок, т.е. достаточно ресурсоёмка, как я и говорил. В принципе это не так страшно, но я бы лучше засунул в крон на малозагруженное время, а не вычислял при загрузке страницы.
Подбирать множитель придётся долго, но это задача для математиков, опять таки. Либо методом проб. Но для жанров он должен быть вдвое-втрое больше тематики и в десяток раз больше остального.
Ты сам этим будешь пользоваться?
Если на страничке игры будет выводиться блок «Похожие игры»? Буду. И не я один. И поиск по тэгу на том же ВНДБ используется очень и очень регулярно.
Дамеон, попридержи производство желчи, а то цирроз заработаешь.
Подробный план, говоришь? Окей, сейчас будет тебе план подробней некуда.
Три SQL-таблицы.
1) Тэги. Tags
int ID [key] | text NAME | int ClassID | int count
2) Классы тэгов TagClass
int ID [key] | text Classname | int priority | float multiplier
3) кросс-связка игр и тэгов TagCross
int ID [key] | int GameID | int TagID | text voters | int votercount | int votesum | float voterate
Поехали по порядку.
1) count в таблице тэгов - просто для статистики.
2) priority и multiplier в таблице классов - как раз те приоритеты, о которых я говорил Хроносу, о множителе подробнее позже.
3) voters - список голосовавших за конкретный тэг. Номера или имена пользователей через запятую, вида ",N1,N2,N3". Определение, голосовал ли человек за игру, производится простым LIKE "%,N,%". Предполагается, что изменение голоса невозможно. Если хочется изменяемую - пожалуйста, плюс одна таблица:
ID | gameID | tagID | userID | vote
4) Votercount - кол-во голосовавших, votesum - сумма голосов, voterate - значение "votesum/votercount". Отдельно сохраняются для соблюдения точности рейтинга при добавлении.
5) Процесс формирования похожих игр:
a) SELECT TagCross.GameID, TagCross.TagID, TagCross.Voterate, TagClass.Multiplier FROM TagCross, Tags, TagClass WHERE TagCross.GameId=id AND TagCross.TagID=Tags.ID AND Tags.ClassID = TagClass.ID ORDER BY TagClass.Priority DESC, TagCross.Votecount DESC
Получаем список тэгов игры id, первично упорядоченный по приоритету и вторично по значению релевантности.
b) Для каждого из полученных тэгов проводим выборку SELECT TagCross.GameID, TagCross.Voterate FROM WHERE TagCross.GameId=tagid
Получаем список игр с тем же тэгом.
Для каждого элемента из этого списка:
arr[gameid]+=(selected_voterate^prime_voterate)*tag_multiplier
т.е. составляется список игр, имеющих схожие тэги, и для каждой считается сумма значений по формуле выше. selected_voterate - релевантность выбранной игры, prime_voterate - исходной, tag_multiplier - множитель, о котором я раньше говорил. Степенная зависимость a^b - не идеал для нашего случая, конечно, лучше формулу от a и b, которая выдаёт максимум при a=b и падает при разнице, но при этом имеет прямую зависимость от b. Ты математик, в конце концов, это твоя стихия а не моя - занимайся.
c) Когда пройдут все тэги, у нас будет на руках список игр, каждой из которых будет поставлено в соответствие некое число. Упорядочиваем по убыванию, берём первые пять - вуаля, список рекоммендаций.
Вот тебе план. Подробный - подробнее некуда. Хоть сейчас бери и пиши. Не понимаешь, что написано - покажи Слейду.
С такой реализацией доступны куча плюшек типа привязки статей по тэгу, поиску схожих по конкретному классу, схожих по тэгу, да ещё до хрена всего, у тебя фантазии хватит, надеюсь.
20 человек для реализации я найду тебе сразу как только ты мне найдёшь десяток переводчиков и десяток эдиторов для АМТ. А заниматься тэгированием, ЕСЛИ ТЫ ВДРУГ НЕ ЗАМЕТИЛ, я предлагал хранителям (которые как бы должны знать, о чём игра), и прошедшим игру.
Чье "ваше", сударь? Еще один, НЕ пользователь SF? Кто плакался-то? Как обычно... Ну предлагать-то несложно, а кто пойдет базу в 2500 игр прочесывать?ВАШЕ, господа администраторы. Меня не так давно даже из модеров разжаловали, так что я сейчас как раз-таки пользователь СФ. Обычный пользователь, а не админ, бл...ин, и кроме как предложить я сделать ничего не могу. И уже не хочу, раз вы такие умные. Плакался ты сам две страницы назад. А если предлагать несложно, на кой хрен вам вообще фидбэк? Сами ж до всего додумаетесь, чо, это же всё просто как два пальца. А если хочешь, чтоб больше юзеров вам помогали, сделайте нормальную систему поощрений. От заунывного "вы все говно, один я работаю" мотивации ни у кого не появится.
Выбирать игры исходя из тэгов - нонсенс. Тут главное - более-менее подробное описание и жанр. Ценителей, которым важно, кто в главной роли, мужик или девка, цундере или кудере - единицы, если вообще такие есть.
Достаточно сделать классы тэгов разными в приоритете при поиске. т.е. в первую очередь ищется сходство по жанрам и поджанрам, потом по тематике, и уже после по персонажам/сюжету/всему остальному.
Ну, не будет так не будет. Вы плакались, что не знаете, как подбирать похожие игры - я предложил проверенный способ. Моё дело предложить, ваше отказаться, как обычно.
Вот этого уж точно не нужно.
Вот как раз без этого система бесполезна, поскольку нормально подбирать похожие игры не позволит.
@Chronos писал:
Если у человека этого желания нет, то за +2 циферки в статусе его не появится.Ты сейчас разом отрицаешь существование всех онлайн-игр и половины обычных :3 Награда, даже формальная, если и не создаст мотивацию, то вполне способна усилить имеющуюся.
Дубликаты можно приблизительно искать, ресайзя картинки до 200(300, 400) пикселей и сверяя попиксельно цвет - можно не в точности, а учитывая оттенки. С нуля писать муторно, но наверняка уже что-то готовое есть.
Касательно похожести игр и рекомендаций - есть у меня одно предложение. (Человеко)ресурсоёмкое, но должно получиться круто.
Если уж игровые сайты не придумали ничего нормального - что ж поделать, "заимствуйте" идеи с mangaupdates и vndb. Суть в чём: существует здоровенный список тэгов. Тэги разделены по классам (в нашем случае, например, это будут поджанры игр, особенности геймплея, тематика игры, некоторые особенности сюжета, характеры персонажей и что-нибудь ещё, вариантов достаточно). К каждой игре можно привязать неограниченное количество тэгов, но у каждого из этих тэгов будет показатель релевантности к данной конкретной игре. Если ранжировать их от 0 до 5, то, допустим, тэг "Меха" у MechWarrior в идеале должен иметь значение 5, у Xenogears - 3,5 или 4, у какого-нибудь Соника, где мехи периодически возникают в качестве босса - 0,5, если уж кто-то решится его поставить.
Как я вижу тэгирование: Хранитель проставляет изначальные тэги и их значения релевантности. Любой пользователь, прошедший игру, может добавить свои тэги и проставить значения релевантности, какими он их видит. Общий показатель, допустим, считается как админское значение*10+пользовательские значения/(кол-во пользователей+10) - т.е. то, что поставил админ, учитывается как 10 пользователей. Можно ещё вес голоса определять по уровню юзера, но это если захочется усложнить.
Ежу понятно, что просто так тэгировать пользователи не будут. А вот если за тэгирование мгры выдавать пару монет, то будут с большим удовольствием.
По тэгам и их релевантности организовать поиск похожей игры, думаю, не составит большого труда. Как отдельный плюс - можно быстро просмотреть основные составляющие игры, мне это всегда нравилось.
Нихрена. Досматривай 100 часов нян кэта.
Мне 1 часа "Myonmyonmyon" хватило, чтобы захотеть
повеситьсяобнять первого встречного, а ты сто нянкота предлагаешь :3
Классика.
Вайомингский инцидент (история в описании видео):
http://www.youtube.com/watch?v=q1b7KQTyIUk
Наш ответ Чемберлену, тоже неплохо:
Хз насчет них, но тот который я пробовал, убирает прозрачность у .png и вместо нее добавляет черный цвет или еще какие-то фрагменты картинки.
http://www.php.net/manual/en/function.imagecopymerge.php
Просмотри комментарии. Говорят, функция альфа-канал изначально не поддержиает, но там есть обходные пути.
Скриптом объединить все в одну картинку на сервере у меня почему-то пока не получается (то есть получается, но ерунда какая-то).
А что так? Это же практический обычный watermark, Imagemagick/GD2 с этим должны без проблем справляться.
Хех. Ну, короче, если Hexadragon таки выберете (что уже вряд ли, по результатам голосования), то подождите недельку, пока я не вернусь. Завтра.
Ребята, остановитесь.Речь как раз о семье в частности и саморазвитии в целом идёт. Притча всего-то о том, что деньги не должны быть самоцелью, а вы уже срач развели, доказывая друг другу одно и тоже. 21 Так будет с каждым, кто копит богатство для себя, но не приобретает Божьего богатства.
Народ, а когда голосование кончается?
Я что-то настолько хочу спать, что понять не могу, тут был сарказм или нет? Я видел тут сообщение одного "смекалистого" человека, который довел присутствующих здесь форумчан до сведения, не без "сторонней помощи", что мышь была изобретена не Apple - я думал, что это было приведено как пример)
Блин, а я ведь только сейчас сообразил, что в среду пропаду на неделю, причём вообще без возможности выйти в интернет...
Не обязательно. Больше чем уверен, эту тему процентов 80 даже не заметили. Кстати, сделали бы отдельный раздел для новостей именно сайта, он бы пригодился.
Может, всё-таки стоит в виде исключения написать на главной насчёт того, что у нас тут выборы системы идут? Что-то мне не верится, что нас всего 6 человек на сайте, а остальные боты.
Я уже устал спорить, но хочу отметить, что статья на вики особой ценности не представляет. Мало того, что сама классификация выглядит странно, так ещё единственный источник - статейка на dff, автор которой старше меня на два года. Может, конечно, я плохо искал, но особых геймдевных достижений я за ним тоже не заметил. Вот ежели б статья про баланс была от близзов, тогда бы я почитал, да.
Для всех интересующихся биографией Билла и Стива снят очень познавательный, почти биографический фильм "Пираты силиконовой долины", где весьма достоверно рассказывается об основании Майкрософт и Эпл, и кто у кого что натырил).Мой шеф на старой работе, который провёл в этой области двадцать пять с фигом лет, говорил, что события фильма, как бы помягче сказать, несколько надуманы.
Кстати, ребят, я не пойму, откуда это "Джобс придумал мышь"? Мышь придумал некий Дуглас Энгельбарт аж в 1963, когда Джобс ещё девчонок за косички дёргал - вы бы хоть в википедию заглянули для приличия. Оконный интерфейс, по иронии, придумал он же. Больше того, мышу и GUI внедрили XeroXовцы, но никак не Apple.
Джобс был талантлив, но как бизнесмен, а не как изобретатель - он понимал, как сделать и подать товар таким образом, чтобы за ним толпами бросались люди, несмотря на технические недостатки и лютую разницу в цене, но не более того. После смерти журналисты часто приписывают известным людям чужие заслуги через туманные формулировки - учитесь уже не доверять тому, что вливают вам в головы.
Так, выкинул правила в блог, оформлять уже не могу - глаза закрываются.
Не успеваю я. Сразу с пьянки за сабы сел, а когда хотел запись оформить, сайт в 502 валился. Начинайте без меня, наверное. Успею - оформлю с утра, не успею - ну и чёрт с ним. Через 4 часа запускаю голосование - кто не спрятался, я не виноват. TimeKiller свой вариант не собирается представлять, что ли? Вроде хотел.
@Chronos писал:
Та же КОС-МОС - "неэлемент" (как механизм) или "свет" (как протагонист)?
Ну, у меня в гайдах "протагонист" не означает свет. Свет - это либо ангелоиды, либо клирики-целители, либо упоротые фанатики-паладины.
@dameon писал:
Начинайте постепенно все в блогах публиковать, чтобы не напоминать, кто когда и что расписывал. Я хоть посмотрю, а то все не соориентироваться, где что.Окей, к воскресенью будет.
@Odin писал:
Что за листок?"Земля". Взял рандомную картинку с элементами из гугла, их не надо использовать.
@Chronos писал:
Я имел ввиду воздействия всех групп на все группы, а не только определённых на определённые. почему это именно "воздух" может влиять на "неэлементов", а не, скажем, "огонь"?Ооо.
Так понятнее? Я ж и словами это всё расписывал.
@Chronos писал:
Кстати, в гексах ещё больше выражена проблема, так не понравившаяся Дамеону - авторитетность сильных фишек.
Почитай внимательнее моё сообщение с системой. У максимального ранга сумма цифр не превосходит 20 - т.е. фишка будет либо вида "7-7-6", уязвимая для карт 7 ранга и старше, либо, по градации, до "А-9-1", которой может достаться от фишки первого левела.
но тогда для этих персонажей не будут работать условия взаимодействия "элементов"Чем ты читаешь посты? Я ж уже дважды постил эту картинку:
@Chronos писал:
Ты не знаешь значение выражения "на шару"? О_о
Представь себе, нет.
Смысл гайда, если чёткого принципа быть не может? И, кстати, гайда-то как раз и нет.
Окай, а что я в своём посте расписывал тогда? Методику призыва багамута в домашних условиях?
Я тоже умею на шару распределять вещи.
Давай без сленга, я тебя не понимаю.
Нет корректного принципа, по которому одним персам приписывать элемент, а другим - нет.
Чёткого принципа быть и не может, зато есть гайдлайны. Какая проблема давать/не давать элемент по ним?
@Chronos писал:
Ты не читаешь, что я писал. Во-первых, если выдавать элементы некоторым персонажам, сама система элементов бессмысленна.Обоснуй. Взаимодействие элементных и неэлементных карт я у себя расписал.
В том-то и оно. Если ты не знаешь, к чему применять свою систему, то как ты может предлагать какую-то систему in the first place?
Я тебе из любой финалки набор элементных карт наберу, и не один. К прочим jrpg это тоже прекрасно относится в большинстве случаев.
Алсо, я не зря у себя карты на ранги поделил по сумме и максимальной цифре. Карте задаётся персонаж, элемент и ранг, а расположение цифр и сами цифры выбирает рандом по поставленным условиям. А возможность создавать карты более высокого ранга я бы предложил связать с наличием SFP у игры.