Формат uid что это такое
UID — что это в устройствах и компьютерах?
UID — это уникальный идентификатор (расшифровка от английского «Unique Identifier») или, реже, пользовательский идентификатор (расшифровка от английского «User Identifier»). В русскоязычном софте применяется аббревиатура УИД (происходит от английского «UID»), например, в программных ERP-средствах (тот же всем известный комплекс «1C»).
Встречается не только пользовательский идентификатор. Есть UID устройства (например, модель и серийный номер электронного гаджета), UID компьютера или UID маршрутизатора (обычно в обоих случаях понимается сетевой MAC-адрес) и так далее. Этот набор символов избавляет нас от необходимости просеивать большое количество похожих элементов в поисках нужного. Значения генерируются случайным или закономерным (с помощью алгоритма или вручную) образом.
Что означает UID?
Простыми словами, в обоих случаях UID значит набор цифр и/или символов для неповторяющейся, то есть уникальной, идентификации пользователя (как, например, при покупке билетов на поезд или самолёт), устройства (компьютера, звена сети). Не относится к персональным данным и потому не может являться единственным средством доступа к какой-либо ценной информации без верификации.
Примеры UID в устройствах и компьютерах
Самый распространённый пример использования UID в реальной жизни — ваш браузер и cookies. Когда открывается веб-сайт по определённому адресу, создаётся уникальный идентификатор пользователя на основе хешированной анонимной информации.
Она может использоваться, как для некорыстных целей (безопасность и программные особенности сайта), так и для коммерческих мотивов (рекламные метрики, персонализация предложения в зависимости от поведенческих факторов). Но это не единственное применение технологии UID в устройствах вроде компьютеров или смартфонов.
Унифицированный идентификатор ресурса (URI, Uniform Resource Identifier)
Это уникальный идентификатор, который делает контент доступным в Интернете за счёт выборочного нацеливания на такие элементы, как текст, видео, изображения и приложения.
Унифицированный указатель ресурсов (URL, Uniform Resource Locator)
Это особый тип URI, нацеленный на веб-страницы, так чтобы когда браузер запрашивает их, они могли бы быть найдены и предоставлены пользователям.
Универсальный уникальный идентификатор (UUID, Universal Unique Identifier)
Это 128-битное число, используемое для уникальной идентификации некоторого объекта/ресурса/сущности в Интернете.
Глобальный уникальный идентификатор (GUID, Global Unique Identifier)
Это номер, который программа Microsoft создаёт для определения уникального идентификатора внутрисистемного объекта — например, документа Word.
Уникальный идентификатор устройства (UDID, Unique Device Identifier)
Это строка из символов, присваиваемая определённым устройствам. Например, у Apple iPhone, iPad и iPod Touch присваивается 40 символов UDID.
Идентификатор набора услуг (SSID, Service Set Identifier)
Это последовательность символов, которая однозначно называет конкретную беспроводную локальную сеть (WLAN).
Уникальные идентификаторы (UID) могут быть присвоены всему, что нужно отличать от других объектов. Простыми словами, отдельным пользователям, компаниям, машинам или веб-сайтам для быстрого нахождения в различных системах нужен UID в виде отличительных значений, которые зависят от потребностей приложения, устройства, компьютера.
Обратитесь в компанию ИТ-аутсорсинга для дальнейшей экспертной поддержки и консультации по этой теме и любым другим техническим вопросам.
Расширение файла UID
IBM Voice Type Users
Что такое файл UID?
Программы, которые поддерживают UID расширение файла
Ниже приведена таблица со списком программ, которые поддерживают UID файлы. Файлы с расширением UID, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Программы, обслуживающие файл UID
Как открыть файл UID?
Причин, по которым у вас возникают проблемы с открытием файлов UID в данной системе, может быть несколько. Что важно, все распространенные проблемы, связанные с файлами с расширением UID, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.
Шаг 1. Установите IBM Voice Type программное обеспечение
Основная и наиболее частая причина, препятствующая открытию пользователями файлов UID, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы UID. Решение этой проблемы очень простое. Загрузите IBM Voice Type и установите его на свое устройство. В верхней части страницы находится список всех программ, сгруппированных по поддерживаемым операционным системам. Если вы хотите загрузить установщик IBM Voice Type наиболее безопасным способом, мы рекомендуем вам посетить сайт IBM и загрузить его из официальных репозиториев.
Шаг 2. Обновите IBM Voice Type до последней версии
Если у вас уже установлен IBM Voice Type в ваших системах и файлы UID по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Это может быть одной из причин, по которой UID файлы не совместимы с IBM Voice Type. Последняя версия IBM Voice Type должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Назначьте IBM Voice Type для UID файлов
После установки IBM Voice Type (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия UID файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Изменить приложение по умолчанию в Windows
Изменить приложение по умолчанию в Mac OS
Шаг 4. Убедитесь, что UID не неисправен
Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным UID файлом. Отсутствие доступа к файлу может быть связано с различными проблемами.
1. Проверьте UID файл на наличие вирусов или вредоносных программ.
Если файл заражен, вредоносная программа, находящаяся в файле UID, препятствует попыткам открыть его. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. UID файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.
2. Проверьте, не поврежден ли файл
Вы получили UID файл от другого человека? Попросите его / ее отправить еще раз. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Это может произойти, если процесс загрузки файла с расширением UID был прерван и данные файла повреждены. Загрузите файл снова из того же источника.
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.
Иногда для доступа к файлам пользователю необходимы права администратора. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл IBM Voice Type Users.
4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия IBM Voice Type
Если в системе недостаточно ресурсов для открытия файлов UID, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.
5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами IBM Voice Type Users. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов UID.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла UID мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле UID.
Что такое UID. И с чем его едят.
Для новичков
В Symbian OS UID-ы используются повсеместно для разнообразных идентификаций типов
файлов и увязки файлов с теми или иными приложениями. Конечно, пользователю более понятны обычные
имена файлов и Symbian OS гибко поддерживает имена файлов различной длинны. Но с точки зрения системы,
32-битные номера обеспечивают большую однозначность, систематичность и более легкую идентификацию.
Поэтому UID-ы являются фундаметальной характеристикой ОС.
По определению, UID-тип объекта состоит из трех отдельных UID-ов используемых
в комбинациях. Составные компоненты UID-ов называются UID1, UID2 и UID3 имеют следующие основные
характеристики:
— UID1- может быть рассмотрен как идентификатор на уровне системы; например, исполняемые файлы,
DLL, файловые хранилища все различаются по UID1.
— UID2-различия между объектами имеющими один и тот же UID1 и могут быть рассмотрены как идентификатор
интерфейса; например, статический интерфейс (разделяемая библиотека) и полиморфический интерфейс
(приложение или встраеваемая программная оболочка) DLL-ки отличаются по UID2.
— UID3-идентифицирует объекты, имеющие конкретный UID2 и может рассматриваться как идентификатор
проекта; например, UID3 может быть разделен между всеми объектами, принадлежащими данной программе,
включая библиотеки, если имеются, DLL-ки каркасов,и все документы.
UID-тип это объект типа TUidType, которой можно создать из комбинаций всех
или некоторых из трех возможных UID-ов. Если переменная имеет прелставляет собой UID, то можно выяснить
и значения составляющих её компонентов UID1, UID2 и UID3.
Объект в Symbian OS и, особенно, многие файлы в Symbian OS могут иметь все, несколько,
или вообще не иметь не одного из трех возможных UID-ов.
Вариант с отсутсвием UID-ов необходим для того, чтобы можно было взаимодействовать
с другими системами, позволяя легко и свободно использовать по назначению в Symbian OS не родные
файлы данных. Symbian OS позволяет создавать настраиваемые файловые ассоциации и идентификации даже
когда UID-ы отсутсвуют. Это делается по расширениям имен файлов.
Каждый «родной» документ должен иметь соотвествующий UID1. его значение задается
приложением, создавщим этот документ.
Необходимым является только UID1, но в большинстве случаев разработчики захотят
определить второй и третий UID-ы для документов, которые создает и использует их приложение. Значения
этих UID используются каркасом архитектуры приложения, чтобы управлять связями между приложениями
и их документами. Например, это позволяет при открытии файла определить и запустить связанное с ним
приложение, а также правильно отображать иконку этого приложения, возле файла документа. И наоборот
это позволяет приложению, отсортировывать свои файлы среди прочих.
UID задается из диапазона 0х01000000 до 0x0fffffff.
UID можно в любое время посмотреть, зайдя например в программу SmartFileMan, и нажав клавишу «5» на нужном файле.На экране появятся все три UID-a.
Как генерируются UUID
Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений.
Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Теория
UUID (universally unique IDentifier) — это 128-битное число, которое в разработке ПО используется в качестве уникального идентификатора элементов. Его классическое текстовое представление является серией из 32 шестнадцатеричных символов, разделённых дефисами на пять групп по схеме 8-4-4-4-12.
Информация о реализации UUID встроена в эту, казалось бы, случайную последовательность символов:
Значения на позициях M и N определяют соответственно версию и вариант UUID.
Версия
Номер версии определяется четырьмя старшими битами на позиции М. На сегодняшний день существуют такие версии:
Вариант
Это поле определяет шаблон информации, встроенной в UUID. Интерпретация всех остальных битов в UUID зависит от значения варианта.
Мы определяем его по первым 1-3 старшим битам на позиции N.
1 0 0 0 = 8
1 0 0 1 = 9
1 0 1 0 = A
1 0 1 1 = B
Так что если вы видите UUID с такими значениями на позиции N, то это идентификатор в варианте 1.
Версия 1 (время + уникальный или случайный идентификатор хоста)
В этом случае UUID генерируется так: к текущему времени добавляется какое-то идентифицирующее свойство устройства, которое генерирует UUID, чаще всего это MAC-адрес (также известный как ID узла).
Идентификатор получают с помощью конкатенации 48-битного МАС-адреса, 60-битной временной метки, 14-битной «уникализированной» тактовой последовательности, а также 6 битов, зарезервированных под версию и вариант UUID.
Тактовая последовательность — это просто значение, инкрементируемое при каждом изменении часов.
Временная метка, которая используется в этой версии, представляет собой количество 100-наносекундных интервалов с 15 октября 1582 года — даты возникновения григорианского календаря.
Возможно, вы знакомы с принятым в Unix-системах исчислением времени с начала эпохи. Это просто другая разновидность Нулевого дня. В сети есть сервисы, которые помогут вам преобразовать одно временное представление в другое, так что не будем на этом останавливаться.
Хотя эта реализация выглядит достаточно простой и надёжной, однако использование MAC-адреса машины, на которой генерируется идентификатор, не позволяет считать этот метод универсальным. Особенно, когда главным критерием является безопасность. Поэтому в некоторых реализациях вместо идентификатора узла используется 6 случайных байтов, взятых из криптографически защищённого генератора случайных чисел.
Сборка UUID версии 1 происходит так:
Поскольку эта реализация зависит от часов, нам нужно обрабатывать пограничные ситуации. Во-первых, для минимизации коррелирования между системами по умолчанию тактовая последовательность берётся как случайное число — так делается лишь один раз за весь жизненный цикл системы. Это даёт нам дополнительное преимущество: поддержку идентификаторов узлов, которые можно переносить между системами, поскольку начальное значение тактовой последовательности совершенно не зависит от идентификатора узла.
Помните, что главная цель использования тактовой последовательности — внести долю случайности в наше уравнение. Биты тактовой последовательности помогают расширить временную метку и учитывать ситуации, когда несколько UUID генерируются ещё до того, как изменяются процессорные часы. Так мы избегаем создания одинаковых идентификаторов, когда часы переводятся назад (устройство выключено) или меняется идентификатор узла. Если часы переведены назад, или могли быть переведены назад (например, пока система была отключена), и UUID-генератор не может убедиться, что идентификаторы сгенерированы с более поздними временными метками по сравнению с заданным значением часов, тогда нужно изменить тактовую последовательность. Если нам известно её предыдущее значение, его можно просто увеличить; в противном случае его нужно задать случайным образом или с помощью высококачественного ГПСЧ.
Версия 2 (безопасность распределённой вычислительной среды)
Главное отличие этой версии от предыдущей в том, что вместо «случайности» в виде младших битов тактовой последовательности здесь используется идентификатор, характерный для системы. Часто это просто идентификатор текущего пользователя. Версия 2 используется реже, она очень мало отличается от версии 1, так что идём дальше.
Версия 3 (имя + MD5-хэш)
Если нужны уникальные идентификаторы для информации, связанной с именами или наименованием, то для этого обычно используют UUID версии 3 или версии 5.
Они кодируют любые «именуемые» сущности (сайты, DNS, простой текст и т.д.) в UUID-значение. Самое важное — для одного и того же namespace или текста будет сгенерирован такой же UUID.
Обратите внимание, что namespace сам по себе является UUID.
В этой реализации UUID namespace преобразуется в строку байтов, конкатенированных с входным именем, затем хэшируется с помощью MD5, и получается 128 битов для UUID. Затем мы переписываем некоторые биты, чтобы точно воспроизвести информацию о версии и варианте, а остальное оставляем нетронутым.
Важно понимать, что ни namespace, ни входное имя не могут быть вычислены на основе UUID. Это необратимая операция. Единственное исключение — брутфорс, когда одно из значений (namespace или текст) уже известно атакующему.
При одних и тех же входных данных генерируемые UUID версий 3 и 5 будут детерминированными.
Версия 4 (ГПСЧ)
Самая простая реализация.
6 битов зарезервированы под версию и вариант, остаётся ещё 122 бита. В этой версии просто генерируется 128 случайных битов, а потом 6 из них заменяется данными о версии и варианте.
Такие UUID полностью зависят от качества ГПСЧ (генератора псевдослучайных чисел). Если его алгоритм слишком прост, или ему не хватает начальных значений, то вероятность повторения идентификаторов возрастает.
В современных языках чаще всего используются UUID версии 4.
Её реализация достаточно простая:
Версия 5 (имя + SHA-1-хэш)
Единственное отличие от версии 3 в том, что мы используем алгоритм хэширования SHA-1 вместо MD5. Эта версия предпочтительнее третьей (SHA-1 > MD5).
Практика
Одним из важных достоинств UUID является то, что их уникальность не зависит от центрального авторизующего органа или от координации между разными системами. Кто угодно может создать UUID с определённой уверенностью в том, что в обозримом будущем это значение больше никем не будет сгенерировано.
Это позволяет комбинировать в одной БД идентификаторы, созданные разными участниками, или перемещать идентификаторы между базами с ничтожной вероятностью коллизии.
UUID можно использовать в качестве первичных ключей в базах данных, в качестве уникальных имён загружаемых файлов, уникальных имён любых веб-источников. Для их генерирования вам не нужен центральный авторизующий орган. Но это обоюдоострое решение. Из-за отсутствия контролёра невозможно отслеживать сгенерированные UUID.
Есть и ещё несколько недостатков, которые нужно устранить. Неотъемлемая случайность повышает защищённость, однако она усложняет отладку. Кроме того, UUID может быть избыточным в некоторых ситуациях. Скажем, не имеет смысла использовать 128 битов для уникальной идентификации данных, общий размер которых меньше 128 битов.
Уникальность
Может показаться, что если у вас будет достаточно времени, то вы сможете повторить какое-то значение. Особенно в случае с версией 4. Но в реальности это не так. Если бы вы генерировали один миллиард UUID в секунду в течение 100 лет, то вероятность повторения одного из значений была бы около 50 %. Это с учётом того, что ГПСЧ обеспечивает достаточное количество энтропии (истинная случайность), иначе вероятность появления дубля будет выше. Более наглядный пример: если бы вы сгенерировали 10 триллионов UUID, то вероятность появления двух одинаковых значений равна 0,00000006 %.
А в случае с версией 1 часы обнулятся только в 3603 году. Так что если вы не планируете поддерживать работу своего сервиса ещё 1583 года, то вы в безопасности.
Впрочем, вероятность появления дубля остаётся, и в некоторых системах стараются это учитывать. Но в подавляющем большинстве случаев UUID можно считать полностью уникальными. Если вам нужно больше доказательств, вот простая визуализация вероятности коллизии на практике.
Можно ли сделать унифицированный UID во всех играх
Меня зовут Дарья Сталь, и я отвечаю за работу с пользователями новой соцсети для игроков Gameram. Сегодня торжественно открываю цикл статей, которые мы готовим с нашей командой, потому что нам интересно делиться находками и болями про разработку соцсети и, конечно, получать фидбек.
User ID (а иногда Player ID или Gamer ID) — штука, без которой не обходится почти ни одна игра с социальным взаимодействием между пользователями. Мы в Gameram решили посмотреть с точки зрения комьюнити-менеджмента (и самую чуточку со стороны разработки), как эта фича реализована в разных проектах, и можно ли сделать её удобнее для всех сторон.
Содержание статьи:
Почему мы заинтересовались вопросом UID
Зачем в играх нужен UID
Почему UID так неудобен для пользователя
Можно ли сделать использование UID удобнее
Как мы работаем с фичой Gamer ID
Опрос: какие темы про разработку социальной сети вам интересны?
Почему мы заинтересовались вопросом UID
Мы — команда Gameram — делаем социальную сеть для игроков. Сама команда почти вся из геймдева, но разработка соцсети ставит много необычных задач и вызовов (сейчас думаем, о чем рассказывать на Хабре, см. опрос в конце статьи и помогите нам выбрать тему!).
Пользователи нашего приложения часто восклицают: «Да это же инстаграм для геймеров!» — именно так. Но это только пока мы так похожи 😉 Мы много думаем над УТП, а пока мы сделали первую уникальную фичу с кодовым названием «Gamer ID». И натолкнули на эту идею нас сами игроки.
Пост от 30 мая, где грустный игрок ищет товарищей для игры в Brawl Stars
Наша сеть создана для того, чтобы игроки могли поделиться эмоциями от любой игры и, конечно, найти товарищей для обмена впечатлениями и совместного прохождения. Но мы все-таки удивились, когда вдруг юзеры начали выкладывать много скриншотов со своими ID из игры. И мы задумались, что возможность быстро и удобно поделиться своим идентификатором внутри ЛЮБОЙ игры — это важно. Что если приложить усилия и сделать этот обмен максимально удобным? Из изучения темы и размышлений родилась эта статья.
Зачем в играх нужен UID
Для большинства онлайн-игр социализация — это один из способов удержать игроков. Чем больше у человека друзей внутри игры, чем чаще они вместе проводят время, тем дольше он останется с проектом и тем больше денег принесет (если речь про free-to-play). И даже если он не платящий игрок, он даст нам стабильные показатели во всяких DAU/WAU/MAU, что тоже хорошо. Поэтому развивать в игре комьюнити — это гуд. И обеспечить легкий поиск своих друзей — или новых — в игре кажется логичной задачей. Но, увы, посильной далеко не для всех.
Зачем User ID может понадобиться игроку:
найти своих знакомых в конкретном приложении;
познакомиться с новыми людьми (например, увидел ссылку или сам ID в соцсетях, ввел у себя код и подружился);
дружба в игре или приложении для обмена бонусами и подарками;
поиск тиммейтов или иной взаимопомощи в прохождении игры;
участие в конкурсах (где для идентификации часто просят как раз указать такой ID);
обращение в службу поддержки при возникновении каких-то вопросов или проблем по аккаунту.
Какие задачи решает User ID для компании:
логгирование и аналитика поведения пользователей в приложении;
решение проблем с аккаунтом пользователя через службу поддержки (потеря/кража аккаунта, непрошедшие платежи, фрод и прочее);
идентификатор пользователя может понадобиться и для решения каких-то задач разработки.
Уже понятно, что User ID решает кучу задач, используется практически во всех приложениях с регистрацией, и явно стоит присмотреться к его реализации поближе.
Разновидности UID
Мы начали с ресерча среди топовых мобильных российских и зарубежных игр на тему, как выглядят их Player ID. Конечно, посмотрели не всех, у кого-то UID и вовсе нет, но покажем несколько для наглядности:
Из таблицы видно, что большинство уникальных игровых идентификаторов пользователей представляют из себя нечитаемый и незапоминаемый набор цифр или цифр и знаков.
Цифровые обычно содержат от 5 до 20 знаков, ниже пример «маленького айдишника». Такой хотя бы реально запомнить с одного раза!
Пример User ID из игры Hustle Custle
А вот с запоминанием и переписыванием следующего уже возникнут небольшие проблемы 🙂
Поди найди эти «айди» в Call of Duty Mobile!
Причем, в серии Call of Duty есть даже два идентификатора: UID и Player ID. Второй равен Activition ID, который, в свою очередь, нужен для регистрации на сайте разработчика и для обращения в службу поддержки. Удобство использования? Не, не слышали…
Игровые ID из букв и цифр могут быть такие:
Пример ID из игры Dragonscapes
И могут быть сильно длиннее, да еще и с дефисами. Такой вид, кстати, часто имеют промокоды для всяких игровых бонусов. Ниже мы разберемся, почему у них похожий вид.
Плюс в некоторых играх делают дополнительные коды для приглашения друзей:
Пример кода для приглашения друзей из игры Royal Farm
Пример кода для приглашения в гильдию из игры Royal Farm
В общем, когда видишь эти наборы цифр по 20 штук или незапоминающихся букв и цифр, сначала хочется сказать: блин, ребят, а можно просто использовать никнейм? Или всегда делать кастомный «айдишник»? Да хотя бы просто сделать его коротким, легким и запоминающимся… Кстати, в некоторых играх есть уникальный никнейм, такой вот уникальный «аудишник», а еще может быть какой-нибудь уникальный код для приглашения друзей, код гильдии и прочие штуки, что еще больше запутывает неопытных игроков.
Но на практике сделать «удобный айди» оказывается не так просто. Попробуем разобраться.
Почему UID так неудобен для пользователя
Этому есть причина. Когда пользователь регистрируется в игре, нам важно отличать его от других игроков, не разглашая его персональные данные. Иными словами, даже если он регистрируется с использованием электронной почты и мобильного телефона (уникальных для человека зачастую), мы не можем показывать их в игре другим людям. Даже своим сотрудникам мы будем показывать их с осторожностью и не всем.
Поэтому при регистрации аккаунта разработчики параллельно выдают игроку некий уникальный идентификатор, по которому мы можем понять — это именно вот этот Вася, а не какой-то другой.
Есть 4 варианта, как закодировать User ID.
Целочисленный и монотонно возрастающий тип идентификатора — это, как можно понять по названию, целое число, которое присваивается по порядку каждому следующему юзеру. Имеет вид, к примеру, от 00001 до 99999 (количество цифр может быть любое).Такой код проще всего обрабатывать в базе данных, именно поэтому подобные «айдишники» имеют разные сущности внутри проекта — от стикерпаков во внутреннем магазине до монстров в игре. Различные автоматизированные тесты и другие системы легко распознают его, потому что цифра «весит» меньше, чем буква или иной символ, соответственно, с таким ID проще всего работать команде разработки. Особенно при больших выборках на масштабных проектах, когда число пользователей и других штук у вас измеряется сотнями тысяч, а то и миллионами.
UUID (universally unique identifier) — сертифицированный формат идентификатора в 16-ричной системе, который содержит цифры и буквы от A до F. Он всегда выглядит как стандартный код из 36 символов: 4a27ab2e-ae70-419f-9a26-42a67805d87e. Два одинаковых кода сгенерировать практически невозможно.Часто подобный вид также имеют промокоды, потому что систему генерации «айдишников» легко взять и использовать, все уже придумали за вас. Утилита для генерации таких кодов есть в большистве ОС и библиотеках популярных языков программирования (например, попробуйте сгенерировать код в Terminal на MacOS через команду uuidgen).
Хешированный идентификатор — это код, который «под капотом» имеет какой угодно набор символов, но для пользователя преобразуется таким образом, что его нельзя расшифровать обратно. В итоге в базе данных мы можем иметь User ID из 20 цифр, а на выходе пользователь видит 6 букв и цифр, которые легче запомнить. Кроме того, такой код более защищенный с точки зрения хранения данных.
Гибридный тип идентификатора — вариант, когда ник игрока используется как ID, при этом он хешируется внутри базы каким-либо алгоритмом для удобства обработки и хранения данных. Это неудобный и ненадежный вариант, который использовали в старых играх, например, в Lineage. Для разработки это создает неудобства: в случае, если игрок хочет сменить никнейм, то нужно городить огород и вводить некие дополнительные сущности в проект.
Копнули мы глубже, в общем, и расстроились, что сделать классные UID просто так невозможно. Какие же есть варианты?
Можно ли сделать использование UID удобнее
Понятно, что чем крупнее проект, тем большая вариативность в кодах нужна разработчику, чтобы не попасть в ситуацию «у нас закончились идентификаторы». Но проблема в том, что длинные и нечитаемые ID усложняют поиск друзей. А если в игре вдобавок нет функции быстрого копирования этой штуки? Перепечатывать с экрана? Запоминать 12 знаков? Скорее уж игрок забьет и просто не станет этого делать… Потому что всё, что сложно и долго, в наше время просто не работает или работает в разы хуже, чем могло бы.
Вдобавок встречаются и косяки типа нажал Tap to copy в игре, и в буфер обмена тебе падает следующее:
[Ver: 2.4.1 ; 2.4.1][Uid: 188938419736652096][Device ID: A625C266-47B4-4473-8E7E-ED98DB243105]
Офигеть как интересно и всё понятно пользователю! :))
Отвечая на вопрос в заголовке: кажется, что создать унифицированный UID в играх, чтобы вот везде 6 знаков и не более — невозможно. Но вроде бы можно постараться сделать эту штуку просто удобнее. Позволим себе дать разработчикам несколько советов.
Для начала подумайте о том, чтобы сделать UID удобным для пользователя, а не только для разработчика. Если, конечно, пользователю зачем-то вообще нужно его знать. Если не нужно — скройте эту информацию.
Облегчите поиск ID в вашем приложении. Покажите стрелочкой при первом обращении в саппорт, напишите про это в FAQ, периодически напоминайте сообществу о том, как и зачем его искать.
Сделайте его видимым: выделите на экране, подсветите и т. п.
Добавьте рядом иконку копирования, а при нажатии выводите уведомление, что ID скопирован в буфер обмена.
И ещё: при обращении в саппорт из приложения подтягивайте автоматически всю информацию о пользователе, включая ID и технические данные. Поверьте, это облегчит жизнь и вашим сотрудникам, и пользователю при решении каких-то проблем с проектом или аккаунтом.
Некоторые проекты, например, Homescapes, просто скрывают User ID и позволяют добавлять друзей только через подключение к социальным сетям, Facebook, Instagram или Twitter. Это тоже удобный вариант, мы надеемся, что Gameram тоже однажды войдет в этот список соцсетей 🙂
Как мы работаем с фичой Gamer ID
Мы увидели, что игроки внутри сети ищут других игроков, и взяли их идею.
Пока мы разрабатывали фичу, ввели тестовый хештег, чтобы посмотреть, как игроки будут им пользоваться.
Страница постов по хештегу в приложении Gameram
Понятно, что когда это один из тысяч хештегов внутри сети, видят и используют его мало, фича должна быть нативной. В результате мы добавили галочку для ввода UID/Никнейма прямо при публикации.
Сейчас постинг с UID выглядит так:
Окно создания поста в приложении Gameram
А в ленте пользователь видит цветной пост с UID и кнопкой «Копировать» (обычный непокрашенный скриншот автоматически добавляется в галерею второй картинкой):
Пост с UID в ленте приложения Gameram
С момента релиза фичи в июне 2021 г. игроки сделали 3756 постов, чтобы поделиться своим UID, и 37021 кликнули на кнопку Copy, чтобы скопировать чей-то UID и, надеемся, добавили себе нового друга в игре.
Возможно, сейчас это выглядит не идеально, но уже точно более юзабельно, чем пост с хештегом, где UID изображен на скриншоте. Хочется развивать эту фичу, дальше в планах сделать также версию для ID кланов, а совсем в идеале — интеграции с мобильными проектами. Если у вас есть идеи, как эту фичу можно улучшить, будем рады услышать предложения и критику в комментариях.