2020-01-01 00:00
Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.
Еще до выпуска "OGS Mahjong" мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения. Может показаться, что сейчас у нас меньше готового, чем перед выходом "OGS Mahjong". Это правда, но не совсем.
Когда вышел "OGS Mahjong", у нас была приятно выглядящая (на тот момент) игра с открытым исходным кодом, которая работала под Windows и Linux. С некоторой удачей и усилием в нее можно поиграть и сегодня, но уже не "из коробки". С некоторыми использованными нами библиотеками время обошлось не очень хорошо. И решение этих проблем сегодня потребует от нас больше времени, чем мы можем себе позволить на них выделить. Даже настройка среды сборки для игры сейчас оказывается долгим занятием, потому что у игры были очень специфические зависимости.
Итак, как ранее писал Михаил, мы пытаемся найти набор технологий, которые позволят решить две проблемы одновременно:
В течение этого года Михаил, имеющий некоторый опыт обучения детей программированию, добавил еще одну цель - сделать простую игру должно быть достаточно легко, чтобы ребенок мог в этом разобраться.
Для простоты, мы разделили все свои хотелки, на две части.
Первая часть - создание легкого в освоении инструмента, который ребенок может использовать для создания простой игры, а профессионал или любитель может быстро проверить с его помощью новые идеи. Этот инструмент не должен требовать времени для настройки рабочей среды, но все же должен быть сильно настраиваемым. После многочасовых споров, мы решили, что этот инструмент должен работать в браузере (self-hosted, по-возможности даже локально). Этот инструмент - MUROM (названный в честь одного известного русского города). Сейчас это очень настраиваемый и работающий в браузере редактор, не требующий установки. MUROM уже можно использовать для создания простых игр, но он далек от готовности. И третья цель пока впереди. Как показала практика - дети не очень хорошо понимают JavaScript.
Над второй частью мы начнем работать после завершения первой. Она будет включать в себя части движка, относящиеся к нативному коду. Мы попытаемся позволить веб-движку и нативному движку использовать один и тот же код для игровой логики, но мы не решили, как именно мы достигнем этого. Возможно, мы воспользуемся метаязыком, который можно будет перевести как на JavaScript, так и в C++. Разумеется, для чего-то, что невозможно в веб-версии (например, с использование определенного оборудования или доступа к локальной файловой системе) потребуется писать отдельные локальные плагины.
С учетом регулярной смены технологий, мы вообще когда-нибудь начнем работать над второй частью? Мы надеемся на это. Мы планируем использовать MUROM чтобы воссоздать "OGS Mahjong", поэтому некоторые вещи нам придется сделать только для того, чтобы это стало возможным. И даже если мы закончим только первую часть, и MUROM останется просто инструментом быстрого прототипирования, это будет инструмент, который мы сами используем, и мы постараемся сделать его полезным.
Когда вы выбрасываете весь код, остается одна вещь. Это опыт. Каждый перезапуск позволяет лучше понять куда вы двигаетесь. Но важно что-то доделывать время от времени. В противном случае вы можете оказаться в бесконечном цикле начинания с начала.
И нашей главной целью на 2020 год будет выйти из этого цикла и что-то завершить.
Всех с Новым годом! Следите за новостями!