Это невозможно. Кластеры, строго отделенные друг от друга в N-мерном пространстве могут проецироваться в непрерывный отрезок по одному из измерений.
Для наглядности: Представим тут 2 исходных признака - это наши измерения на плоскости. Например, эти концентрические круги по каждому отдельному признаку (измерению) непрерывно плотны, тем не менее они представляют собой отдельные кластеры на плоскости.
Не существует никаких универсальных методов, подходящих для всех случаев. Такой вопрос можно задавать только по отношению к конкретной игре. В целом тут не обойтись без реверс-инжиниринга (если только игра не open source).
Из числа самых общих подходов к этой проблеме можно упомянуть следующее (от простого к сложному):
Анализ формата save-файла и извлечение необходимых данных из него. Часто это оказывается единственно возможный путь, не смотря на кажущееся неудобство такого подхода.
Вычисление статических адресов в адресном пространстве процесса, по которым находятся переменные, в которых хранятся какие-то важные игровые параметры. Для этого давно существуют такие автоматизированные инструменты как ArtMoney. Но против современных игр все это практически бесполезно, так как все структуры данных хранятся в динамической памяти.
Гонять игру под отладчиком, выявлять функции (точки входов в них) которые вызываются на определенные игровые события, анализировать параметры этих функций, искать среди них переменные, отвечающие за какие-то значимые игровые параметры. Потом писать патч к игре, в котором перехватывать эти функции и сохранять передаваемые параметру куда-нибудь, откуда их можно легко получить снаружи.