У меня есть игра, в которой пользователи могут создавать собственные уровни. В настоящее время я генерирую некоторый JSON, который кодирует уровень, но я хочу, чтобы пользователи могли легко обмениваться уровнями (желательно с идентификатором до 10 символов). Нет подключения к интернету, поэтому вся информация об уровне должна быть закодирована в этот идентификатор, чтобы игра могла расшифровать его и сгенерировать уровень.
Я пробовал разные виды алгоритмов шифрования и сжатия, но, похоже, не могу получить его на разумной длительности. Хеширование не сработает, так как мне нужно его разбить на части и иметь очень низкие (0) коллизии, поскольку он должен кодировать этот определенный сгенерированный уровень.
Есть ли лучший способ сделать это? Я понимаю, что пытаюсь втиснуть данные в 10 символов, но если я использую совокупность из 91 символа, это даст мне 6 426 898 010 533 различных возможных идентификатора уровня.
Мои пользователи прокляты длинными идентификаторами или есть лучший способ сжать (предпочтительно данные JSON) в короткую строку? Данные JSON увеличиваются с ростом уровня. Меня не волнует безопасность. Если кто-то поймет, как его декодировать, он просто получит бесполезный JSON.