Todas las publicaciones

Archivo del proyecto

Что успелось за неделю. Долго бился над вроде простой, но в рамках сетевой архитектуры сложной…

Что успелось за неделю. Долго бился над вроде простой, но в рамках сетевой архитектуры сложной задачей. Заставить игрока видеть свои кораблики, но не видеть чужие. Нюанс в том, что у каждого игрока свой список таких корабликов, который к тому же ещё и динамически может менятся в ходе игры. Но самая сложность заключалась в том,что данные о корабликах генерятся в одной части кода, потом связываются с другой и переносятся туда, потом переносятся в третью, отуда взаимодействуют с элементами в первой, после чего конкретно на каждом клиенте создают свою индивидуальную картину, причем не рассогласовываясь с сервером и другими клиентами. Для чего это нужно? Для того что-бы была возможность эмулировать обнаружение и получение точных данных о противнике. Приведу антипример из ИВЫонлайн. Вы видите корабли противника. ВИДИТЕ. Но ваша система должна их захватить, дабы открыть стрельбу. А если захвата нет - то увы. И слабые оправдания этому разбиваются о реализм. Если вы чётко видите цель по оптическому каналу, лазером померяли дистанцию, то можно стрелять. Мало того, видя тип корабля противника и зная его размеры, вы по угловому размеру уже можете достаточно точно определить дистанцию безо всяких дальномеров. Все данные для точной стрельбы есть. Мало того, вы видите цель и можете понимать её манёвры, местоположение, предпологать развитие ситуации. Короче это очень большая игоровая условность, как сведение в картошке (WoT). Вот что-бы избежать этой лажи, вы полностью увидите модельку корабля противника ровно в том месте, где она действительно есть только в случае безоговорочного обнаружения сенсорами вашего корабля. Если они есть или исправны. И это уже даёт для большинства систем вооружений достаточно данных для получения расчета для стрельбы.

А вот до этого момента, вы сможете только предполагать местонахождение противника, особенно если он старается ничего не излучать. А в дальнейшем, на больших и средних дистанциях, в зависимости от работы ваших сенсоров знать предположительное место вашей цели, что например иногда достаточно для пуска некоторых ракет, достаточно для запуска дронов, но совершенно недостаточно для артилерийской стрельбы и стрельбы большинством ракет. При этом вы ещё не знаете, что это за цель. И кстати, в целом то не знаете свои это или чужие.....

По итогу - поборол и наладил. Все и везде отображается теперь корректно. Поскольку алгоритм расчета радиолокации готов 2 года уже как, буду его перетаскивать с ноута и уже имплементировать по полной в систему. И важный момент. Победив архитектуру - дальше значительно легче, поскольку все инфопотоки и взаимосвязи уже есть.

Perfil del proyecto en Facebook