Графы
Раз сегодня вспоминали графовые редакторы, то стоит написать и в общем про графы. На этом канале хотя и немного сложновато, но объясняется база теории https://youtu.be/LFKZLXVO-Dg
Зачем нужны графы?
Вообще для почти всего. Все программисты и программы по сути занимаются тем, что приводят один формат данных к другому формату данных. Массивы байт в картинке на экране, аналоговые сигналы от кнопок в команды на отрисовку и так далее. Основная работа программиста — жонглирование данных, знание о том какие формы данные умеют принимать, и как Х превратить в Y. На мой взгляд, это самое простое и самое общее описание работы программиста. Дальше уже идут оптимизации и прочее :)
В математике есть две великолепные огромные теории связанных с этим. Теория множеств и теория графов. Фундаментальные теории знать для работы не обязательно, но очень полезно. Так как вы знаете ответы на вопросы исходя из них. Но в чём преимущество графов?
Это ещё одна форма данных, которая позволяет вам делать больше крутых штук. Occlusion Culling базируется на принципах BSP и графах, меш по своей сути — это граф, игровой AI будь то Behavior Tree или FSM так же можно представить в виде графа, навигационный меш и многое другое. Даже связи в коде и весь код можно представить в виде графа. И очень полезно в своём арсенале иметь такой мощный инструмент и понимать его законы. Поэтому очень рекомендую изучить эту тему)
Это я ещё не говорю, какую откровенную магию можно делать из идей топологии пространств и характеристического числа плоскости, и в каких случаях применять в той же деформации и укладке графов :) Но про это надо придумать, что полезного рассказать, чтобы вы не уснули читая XD