Можно ли в игре создать объект со случайными и зашифрованными координатами?
Можно ли в 2D или 3D игре создать объект заведомо известной формы и цвета, но со случайными координатами, да так, чтобы сама игра не знала где этот объект находится? То-есть чтобы координаты этого объекта были зашифрованы, и их нельзя было (очень долго и сложно) вычислить программным путем? Но этот объект может увидеть и идентифицировать (по его 2D или 3D воплощению) человек играющий в эту игру, и неким взаимодействием с этим объектом передать игре координаты этого объекта.
Если возможно, в общих тезисах можете описать способы как это сделать?)
Daria Motorina, Да потому, что человек тоже не должен знать координаты объекта. Но он может его найти исследуя игровой мир. При этом никто, включая саму память игры, заведомо не знает координаты созданного объекта.
И что за привычка, рассуждать о вопросе человека а не давать ответ на него? Вы либо можете дать ответ, и даете его, либо не даете, если не имеете идей для ответа. А так получается, вы не помогаете, а просто разглагольствуете)
max_shane, комментарии тут и созданы для того, чтобы не засорять основные ответы, если не понятна постановка вопроса. Зачастую задача может решаться совсем иначе и даже проще. Есть кнопка "пожаловаться", если Вам так некомфортно от комментариев))
max_shane, Ну почему бы не использовать просто рандом? Если этот объект должен иметь всегда одни и те же координаты, то использовать одно и тоже семя для рандома.
P.S. Ну в любом случае эти координаты появятся в памяти, не важно рандомом их получили, с сервера они пришли или откуда. В момент работы приложения, вам то нужно будет инстансиировать этот объект, даже если это будет происходит в непосредственной близости, то нужно проверять эти координаты.
Топик напомнил софистический спор на тему - Может ли Бог создать такой камень котороый сам поднять не сможет.
Очевидно что в вопросе есть взаимное противоречие. И пока его не устранить - никуда нельзя двигаться.
Ради инженерного дискурса - предлагаю автору почитать про Фильтр Блума. Эта структура данных наподобие HashMap и позволяет хранить объекты с произвольными ключами и boolean value. Но она обладает таким свойством что у нее принципиально нет итератора. Тоесть ты можешь взять объект явно по ключу. Но не имеешь возможности проитерировать все объекты. (Кстати их - бесконечность).
но со случайными координатами, да так, чтобы сама игра не знала где этот объект находится
и
и неким взаимодействием с этим объектом передать игре координаты этого объекта.
=пустое множество.
Решений много:
1. Давать в нужный момент координаты с сервера.
2. При каждом перемещении решать систему уравнений на основе различных факторов и при совпадении всех коэфициентов "оживлять" искомый объект.
Про удалённый сервер уже написали. Для локальной работы придётся испоьзовать какую-нибудь систему защиты, типа любимого игроками StarForce :)
Т.е. данных либо не будет на ПК игрока, либо данные находятся внутри шифрованной виртуальной машины, куда мамкины хакеры не полезут.
Можно после сразу генерации координат захешировать их и забыть про них. После, при прорисовке в каких-либо координатах хешируете их также и сравниваете с имеющимеся значениями. Если совпало, рисуете.
Но тут есть проблемы - работает только в ограниченных случаях типа 2d сетки, где можно на каждый кадр перебирать все клетки и смотреть, если там объект. Во вторых, хакер все еще может перехватить генерацию координат или вообще отреверсить алгоритм хеширования, вытащить хеши и брутфорсом подобрать координаты с такими хешами.