Как и зачем портировать 3D Movie Maker на Linux: ностальгия с багами
Энтузиаст перенёс легендарный 3D Movie Maker на Linux — теперь можно вспомнить детство и заодно починить баги, которые Microsoft забросила 20 лет назад.

Помните 3D Movie Maker? Тот самый редактор из 90-х, где можно было собрать мультик про МакЗи и его друзей, а потом с гордостью показать одноклассникам на Windows 95? Так вот, один разработчик решил, что ностальгия — это хорошо, но ещё лучше, когда она работает под современным Linux. И портировал.
Проект называется "3D Movie Maker Port for Linux" и представляет собой форк оригинального кода, адаптированный под современные библиотеки. Разработчик утверждает, что удалось сохранить 95% оригинального функционала, включая знаменитую озвучку и анимации. Оставшиеся 5% — это, видимо, те самые краши при попытке сохранить проект в папку с кириллицей, которые Microsoft так и не исправила.
Конечно, портировать приложение, написанное на Visual Basic 6 и DirectX 7, на Linux — это как собрать IKEA-стеллаж без инструкции, да ещё и с деталями из другого набора. Но энтузиаст справился: он переписал рендеринг на OpenGL, прикрутил SDL2 для звука и ввода, а также заменил проприетарные форматы на открытые. В итоге получился рабочий билд, который можно запустить на Ubuntu, Fedora и даже на Raspberry Pi (правда, с частотой кадров, напоминающей слайд-шоу).
Разработчикам будет особенно интересно заглянуть в код: это отличный пример того, как можно оживить legacy-проект без полного переписывания. Плюс, вы наконец-то сможете объяснить коллегам, что такое "ретро-геймдев", и заодно потроллить их фразой "а у меня 3D Movie Maker на Linux работает, а твой React-проект — нет".
Комментарий студии METABYTE: Портировать 20-летний софт на Linux — это, конечно, подвиг, но мы бы на вашем месте сначала проверили, не проще ли сделать веб-версию на WebGL. Хотя, если очень хочется покопаться в legacy-коде, мы можем помочь с рефакторингом — у нас даже слёзы клиентов не текут, когда видим Visual Basic.
СЛЕДУЮЩИЙ ШАГ
Понравилось как мыслим?
Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.