ТЕХНИЧЕСКАЯ ИМПЕРИЯ
Разработка вещей
Everforest выглядит потрясающе с черным фоном.
Около года я не могу отвязаться от мысли освоить vim. Эта навязчивая идея приходит ко мне каждый раз когда я пишу код в привычных редакторах и наступают моменты, где в vim можно было бы сделать нажатием пары кнопок, например удалить все от курсора и до конца строки или удалить аргументы между скобок. Очень привлекает концепция редактора прямо в терминале, без лишних библиотек (особенно Electron, ненавижу его)
Сейчас я изучаю вебсокеты, воистину интересная вещь: постоянная связь двух устройств. Технология используется повсеместно, например для игровых серверов. Этим я и занялась первым делом после понимания вебсокетов: написала простой сервер для игры на Godot, в которой, пока что, просто перемещаются два квадратика. Если дать подключиться особенному для тебя человеку, можно почувствовать себя немного ближе к нему. Такие невербальные связи в играх очень интересны.
Читаю про то как реализованы сигналы от коллизии в Godot, типа OnBodyEntered, они происходят в конце обновления физического сервера, по сути отдельная корутина которая обновляется с частотой, обычно, 60 раз в секунду. Вызовы происходят синхронно с физическим движоком.
Вчера переписала контроллер персонажа на импровизированную стейт машину: У CharacterBody есть дочерняя нода StateMachine, которая хранит активное состояние State. В рантайме StateMachine создает экземпляр с предзагруженным скриптом (используется именно Node, а не Node2D\Node3D, потому что не нужны трансформации и прочие фишки), скрипт состояния определяет поведение CharacterBody (ссылка хранится в StateMachine и передается в момент смены состояния). Теперь нужно переписать логику камеры, чтобы унифицировать все пободные вещи. Сейчас у камеры есть два поведения: орбитальное движение и камера от первого лица. Поведения меняются по похожему принципу, у камеры есть дочерняя нода Behavior, которая хранит скрипт поведения. Поведение меняется через саму камеру, так что это не совсем правильно. Нужно привести все к общему виду и написать бенчмарки.
Когда приду домой сделаю платоново тело и заставлю персонажа ходить по нему, поворачиваясь в зависимости от нормали, будто по маленько планетей и настрою гравитацию в зависимости от удаленности центра
Переписывание камеры вчера оказалось менее болезненным, чем я могла бы предположить, значит все же мне удалось сделать какую-то минимально устойчивую архитектуру, что очень радует.