Как я вернулся к разработке игрового движка

Категория: Дневник разработки | Скилл: C++ , SkyXEngine | Дата: 05.05.2020
Шел 32 день разработки библиотеки работы со звуком на C++ для игрового движка SkyXEngine. Я доделал кодеки wav и ogg (декодирование и кодирование), и с трудом удерживаю себя от дальнейшей работы, но поговорить хочу совсем о другом - о том, как я вернулся к разработке своего проекта, которому более 10 лет.

Все началось в начале апреля (2020 год), когда я уже был изрядно уставший от затянувшейся разработки сервиса онлайн-бронирования (3 месяца вместо планируемой пары недель) и мне хотелось чего-то другого, более интересного, наполненного свежими эмоциями и новым подходом к программированию.

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

Это было не легко, но достаточно интересно и познавательно, а главное поучительно. После около года перерыва в программировании на C++ я вернулся и понял, что мои знания в этом языке слишком поверхностные, и спустя примерно неделю я столкнулся с первой серьезной проблемой - неумением потокобезопасно программировать. Пришлось лезть в теорию, читать статьи и форумы. Через несколько дней я уже был теоретически подготовлен, но знаний все также не хватало для дальнейшей полноценной работы (да чего уж там, не было даже представлений о новшествах стандарта C++11, не говоря уже о какой-то эфимерной концептуальной особенности программирования при помощи новых стандартов).

Не долго думая, но вспоминая предыдущие случаи, когда я встревал на ровном месте из-за своего невежества в определенном вопросе решения задач, было решено взяться за изучение всего того, что вызывает вопросы, с достаточно глубоким (в меру) изучением тонкостей. Так появился первый конспект по C++, а в черновиках наброски новых тем для изучения, которые постепенно стали наполняться. Тетрадка, лежавшая около 3-х лет без дела, вдруг стала заполняться синим, розовым и зелеными цветами - пошли конспекты по C++. А теперь весь код звука теперь еще и кроссплатформенный (компилируется MSVC и minGW, работает в Windows, компилируется GCC и работает на Ubuntu), что является для меня большим открытием, так как до сего момента работать кроме как в Windows для меня было проблематично, а теперь вдруг оказывается я могу писать кроссплатформенный код :)

Но это было далеко не самым сложным, по сравнению с тем, что я привык наводить вектор развития во многих вопросах касаемо разработки ПО, а теперь ситуация изменилась - мой партнер взял на себя эту роль (в связи с моим затянувшимся отдыхом), и именно из-за этого разработка движка до сих пор продолжается, а мне ... подчиняться в этом вопросе было крайне не удобно, а точнее не привычно. Это ломало все мое "представление о мире", просто я был не готов к такому решительному повороту (хотя чего я еще мог ожидать?) :/ Долгие споры, только тормозили процесс разработки. Ситуацию усугубляла спартанская манера общения (порой общение происходило на скалярном уровне) ...

Вспоминая свой предыдущий опыт, и то, что сейчас происходило в разработке, я постепенно пришел к выводу, что в данной ситуации вектор развития разработки движка, его концепция и архитектура, (заданные за время моего блуждания), являются наиболее подходящими. В этом я еще раз убедился позже, при первом коммите.

Время шло, и с каждый новым диалогом об архтектуре и устройстве кода я старался как можно лучше понять суть вложенную в текущее положение дел в движке (хоть и выражал явный протест), и с каждым разом мне удавалось все больше и больше понимать, а совсем недавно, на удивление себе, я потратил около трех часов на уточнение и изменение интерфейса обьекта под новые требования. Эта перестройка мышления позволила мне сбросить с себя груз тотальной ответственности за судьбу проекта (неявно делегировав ответсвенность за кодовую часть на своего партнера, у которого, к слову, хорошо получается), и сузить сферу вопросов своей компетенции, что привело к результатам, которые мне нравятся - работа идет, каждый решает тот круг вопросов, за который он взялся в текущий момент времени и нет необходимости охватывать каждый аспект в масштабе движка, придет время и будет интеграция :) При этом ничья роль не смещается и ни чей вклад не нивелирован, ибо цель - результат, основанный на предыдущих достижениях каждого.

Сейчас я продолжаю разработку API звука, параллельно отгоняю от себя левые мысли о разработке своего скриптового языка программирования и компилятора для него, понимая что все требует времени, и без чего-то сейчас можно обойтись, для того чтобы достичь намеченной (пусть и в минимальном вополощении) цели.

Шел 32 день разработки звукового API, я был рад завершить эту 30-ти минутную статью, в новой рубрике, о которой думал уже несколько лет. Безумно интерено, что будет завтра :)
Я Виталий, ник в сети Byurrer.
Увлекаюсь программированием, веду интересные проекты, пишу здесь об интересующих меня вещах: о работе, проектах, увлечениях и проффесиональном развитии.

Скилы
php, c++, javascript, sql, hlsl, html, css
Проекты
SkyXEngine, PHP-API, S4G
Категории
В разработке :)
Популярное
В разработке :)