Наибольшую сложность вызвала приемная часть, то есть воспроизведение у клиента передаваемого ему звука и видео прямо в мозге. Стандартные для этого мира магические технологии, с привязкой к ауре и воздействием на чувственную сферу через нее, не канали, так как намертво отрубали от моей задумки чародеев и магов — уж очень они пекутся о своей безопасности и любое воздействие на ауру или контролируют, или защищают ее от оного. Поэтому пришлось использовать только инфомагию и работу с информструктурами человека, что, впрочем, даже было удобнее, так как при этом использовалось однотипное техническое решение без нагромождения разных подходов.
Пришлось идти «на поклон» к моему биокомпу и разбираться, как он общается со мной. Сложность оказалась запредельной, но мне многого и не нужно было: всего лишь разобраться в подсистеме аудио-видео входа и выхода прямо в мозг и подсистеме мысленной передачи голоса. Если под первым понятно о чем идет речь, то под вторым я подразумевал возможность мысленно проговаривать текст, который собеседник услышит. У меня мелькнула мысль про съем неоформленных мыслей человека, но сложность реализации оказалась очень высокой, я даже не особо и разобрался, да и по сути необходимости в этом я не видел. Ведь то, о чем думает человек, без контекста в большинстве случаев не дает нужного понимания. Тем более, что эта мысленная и чувственная сфера наиболее четко проявляется в ментальной области, неразрывно связанной с аурой. А вот проговариваемые мысленно тексты отражаются в первую очередь в мозгу. Мне показалась довольно забавной такая распределенность функционирования человека, как сущности.
Чем больше я вникал в то, что надо сделать, тем больше из неизвестности возникало новых вопросов. Какое видео передавать? То, что видит человек или чтобы камера смотрела как бы на него? Показывать только его, пряча фон, или по-простому все то, что попадает в фокус «камеры»? Передавать ли звуки окружающего и, возможно, голос абонента или ограничиваться только упомянутым «мысленным проговариванием»? При этом надо учесть, что в общем-то и зачем-то я делаю эту систему не только для себя, но и, возможно, для других. Зачем? Не знаю. Вот просто хочется сделать что-то эдакое, интересное и полезное всем. С другой стороны, было бы глупостью при этом не дать себе расширенные возможности, в том числе админские. Та же прослушка, например. Не, если бы я делал такое у себя, разумеется не стал бы так портить свою карму. Но я ведь в другом мире, во враждебном окружении. Да и не собираюсь ведь постоянно слушать кого-то — только при крайней необходимости.
Наверно, я бы не справился, если бы не биокомп с его просто изумительными инструментальными средствами разработки, заточенными на подхватывание и анализ моих мыслей. Наверно, тут играет свою роль то, что он максимально навороченный. В общем, повезло мне с ним однозначно.
Долго ли, коротко ли, но дело было сделано. Что-то под конец мне уже надоело вылизывать функционал, поэтому я остановился на последнем, показавшемся мне более-менее приемлемым, варианте. Выглядел он так. Когда человек хочет с кем? нибудь пообщаться, сначала он должен вызвать интерфейс общения, то есть как бы запустить программу. Делается это несколькими способами, у меня — вплоть до мысленного желания, но общедоступный способ — про себя произнести «окей, Ник!». Не смог удержаться и не поиздеваться: —) Перед глазами (неважно — открытыми или закрытыми) появляется список абонентов, очень красиво оформленный (не люблю пользоваться некрасивыми программами). Каждый абонент показывается как обычно — иконкой, тут я ничего придумывать не стал — с его изображением. А вот вместо подписи-имени, что реализовать для разных языков и разумных было бы сложно, при взгляде на изображение у человека формируется мысль-название этого персонажа, данное ему, когда тот был внесен в список. То есть его можно мысленно назвать по-любому, на любом языке. Мне даже это легче было реализовать. Скачешь по списку глазами, а в голове «звучат» мысли-имена. Забавный эффект. Есть несколько сервисных «кнопочек», продублированных мысленными командами. Это поиск, группировка, добавление или удаление контакта, вызвать, отключиться, игнорировать, не беспокоить. Больше общедоступных функций для первого раза я посчитал излишним делать. Надо ли говорить, что у меня были дополнительные кнопочки?: —) А вот здесь без надписей не обошлось. Я просто не знал, как кратко и понятно всем выразить мысль о функционале. После некоторого обдумывания, язык по-умолчанию я выбрал демонский. По крайней мере, в той или иной степени он распространен на обоих континентах. Кроме того, это слабая попытка перевести стрелки от меня. Потом еще немного подумал, и сделал еще проще — при первой инициализации конструкта перед пользователем появится менюшка на всех языках, которые я знаю, с единственной фразой: «выберите язык». Моих знаний вполне хватило для того, чтобы реализовать обозначения нескольких кнопок с помощью и человеческого языка первого континента, и гномского, и демонского, и местного языка второго континента, и даже эльфийского. С последним, правда, возникли некоторые сложности, но я вроде бы справился.
Нет смысла особо расписывать функционал обычных для моего мира возможностей компьютерного общения. Остановлюсь лишь на некоторых технических деталях.
Для приема видео я использовал подсмотренный в защитном устройстве поместья вариант камеры — он мне понравился. Только улучшил его, чтобы качество картинки было максимальным. При общении перед пользователем разворачивается невидимое инфоплетение, которое в общем-то направлено на него и передает картинку не только абонента в полный рост, но и фон (есть еще пара таких плетений, мониторящих сферу вокруг пользователя, но об этом — тссссс! Это секретный админский функционал!). Мне показалось забавным, что пользователю, прежде чем ответить с видео — картинкой, надо будет серьезно постараться, чтобы при желании скрыть то, что находится за ним, и никаких настроек я не стал выводить (злобному разработчику лучше знать, что нужно обычному пользователю!). При этом плетение привязано к человеку, и даже в движении картинка будет достаточно стабильной. Ну и можно просто без видео общаться как мысленным проговариванием, так и звуком.
Второй сложный момент — внесение кого-то в список контактов. Понятно, что каждый «аппарат» автоматом генерирует свой внутренний уникальный номер на основе множественных параметров информструктуры абонента. Но вот как сделать так, чтобы два человека могли внести друг друга в свои списки абонентов? Просто по имени или изображению — сложно, долго, дополнительный функционал анализа писать на сервере, тем более, что разумные могут быть разными, с разными языками, близнецы, аура не показатель для крутых магов, просто номера вводить не интересно и прочая, прочая, прочая… В общем, самый простой вариант — оба должны у себя в списках вызвать функцию добавления и пожать друг другу руки. Тут происходит точная привязка через информструктуры и решается вопрос с картинкой абонента — просто у каждого делается стоп-кадр из его видео-подсистемы и отсылается противоположной стороне. А дальше при общении с кем-то другим можно перекидывать ему копию абонента из своего списка. Тому, кого копируют, идет вызов, и если он согласен, то происходит внесение в списки абонентов уже у третьих лиц без необходимости личной встречи. А с учетом того, что связь постоянная — выходит более-менее рабочая система.
На сервере я сделал постоянную круговую запись происходящего со всеми абонентами, указав серверу, что при исчерпании четверти памяти стирать старые записи, но почему-то мне кажется, что писать он будет долго и долго… Хотя надо будет все же предусмотреть на сервере фильтр, чтобы не писать ненужную фигню. Сделал на всякий случай, чтобы было. А вот абонентам совершенно необязательно знать, что пишутся не только их разговоры, но и происходящее вокруг них (не только то, что передается мессенджером в канал связи абонентов), ибо не хочется, чтобы возникали вопросы, а где собственно все это хранится? Умные и так зададутся этим вопросом… Ну не этим прямо, а сопутствующими, но вряд ли они решат, что где-то настолько велики мощности, что все пишется или подслушивается. Кстати, вполне вероятен вариант, что маги или чародеи поостерегутся пользоваться моим устройством. Хотя не факт: у меня на родине тоже все пишется — подслушивается, но почему-то никто не перестает пользоваться этими удобными штучками.