Перезагрузка unDE 2012

Николай (unDEFER) Кривченков

2012-01-14


Итак, проект unDE забуксовал на целых полтора года. Как и из-за чего это произошло расскажу чуть ниже. Но прежде всего объявлю о том, что с сегодняшнего дня проект перегружается для дальнейшего движения.

Просто сегодня мой День рождения и в этот день я решил себе сделать этот подарок, то что уже давно хотел сделать.

А в апреле 2010 года, я начал разбирать Blender 2.49, довольно не плохо разобрался в его игровом движке и обнаружил неприятный баг: сортировка полупрозрачных и непрозрачных объектов в игровом движке почему-то зависит от координаты Y объекта даже, если камера направлена вдоль оси Z. Хотя я даже нашёл как исправить его для себя, но раздел багзиллы Blender-проекта об игровом движке оказался не слишком активным. Я предположил, что активно разрабатываемой версией является Blender 2.5, и даже переписал все свои Python скрипты для совсестимости с новой версией, как вдруг оказалось, что анимация в Blender 2.5 не работает. Я проверял это ещё через полгода, после релиза Blender 2.5, но там так ничего и не изменилось в этой сфере. И судя по всему не изменится пока не будут они делать ещё один крупный игровой проект как "YoFrankie!".

Таким образом основываться на проекте, который развивается очень быстро но ни туда куда нам нужно, не очень практично. А очередная попытка реализации давно задуманного мною нового приключения Dizzy в очередной раз оказалась проваленной.

Потом была страшная нехватка времени. И лишь к осени 2011-го мне удалось как-то систематизировать свою работу и я начал вновь уделять время мыслям и не только для unDE. В том числе я более или менее ознакомился с OpenGL и теперь представляю себе что такое шейдеры, каким образом реализуются эффекты теней в OpenGL, взаимодействие с пользователем и многое другое.

Итак, что нас ждёт после перезагрузки? Во-первых, знакомство с языком программирования D. Затем, с библиотекой Ogre, новой концепцией морей и гор и много всего прочего.

На данный момент уже начата работа по портированию BerkeleyDB на язык D причём не абы как, а скриптами awk, чтобы в любой момент легко было обновить интерфейс для новейших и BerkleyDB, и D.

А недавно я начал переход из графических утилит полностью в консоль. С результатами можно частично ознакомится в следующем обсуждении на LOR. И благодаря этому я познакомился с такими замечательными проектами как:

  1. asciidoc – легко читаемый язык разметки документов в ASCII формате,
  2. teapot – табличный калькулятор (аналог Excel), в котором можно легко обрабатывать в том числе трёхмерные данные.
  3. antiword – отличный преобразователь Word-документов в форматированный текст (в том числе таблицы легко просмотреть в ASCII)
  4. unoconv – конвертор позволяет преобразовывать любые форматы, которые поддерживаются OpenOffice.org (нынче в дистрибутивах используется LibreOffice) друг в друга

Что же замечательного в этих проектах скажете вы? А замечательно то, что они простые. Мне было достаточно лишь немного осмотреть папку проекта teapot, чтобы понять откуда исходят баги его консольной версии и быстро их поправить (патч отправлен сегодня же разработчику). Сейчас мне хочется пропатчить эти утилиты следующим образом:

  1. Добавить в antiword поддержку вывода в asciidoc.
  2. Добавить в teapot поддержку формата таблиц asciidoc с поддержкой формул
  3. Добавить в asciidoc возможность не обращать внимание на формулы teapot
  4. Сделать bind’ы для vim для:
    • Изменения стилей текста в формате asciidoc
    • Перехода по ячейкам таблиц asciidoc
    • Перехода к редактированию таблицы через teapot

Если всё это удасться, то я буду иметь опыт полной замены привычного окружения на другое. И если я смогу полностью изменить его таким образом значит смогу повторить это ещё раз, но уже создав полностью свои утилиты.

Кроме того как я уже говорил программы – эти весьма просты. И если раньше меня несколько коробило от мысли, что мне в одиночку каким-то образом надо полностью переделать таких монстров как Firefox или OpenOffice.org, то теперь я имею в своём распоряжении код, который я в действительности смогу без проблем полностью переделать под нужды проекта unDE.

Конечно, какой-нибудь links – не сравнить по функциональности с Firefox, а teapot даже не имеет опций для подготовки таблицы к печати. Но с другой стороны, лучше иметь все средства для подготовки печати в одном месте и если их будет хватать в таком средстве как asciidoc, то этого будет полностью достаточно.

Кстати, asciidoc не имеет например, таких опций как выравнивание параграфа влево или вправо вне таблицы. Но вспоминая собственно документы в которых это нужно также вспоминается, что лучше всего нужное выравнивание там в любом случае реализуется таблицами без границ. А значит ограничения функций asciidoc идёт только на пользу хорошему форматированию.

На этом я заканчиваю с представлением планов на перезагрузку и постараюсь сделать всё возможное, чтобы следующая статья вышла не более, чем через месяц.

SourceForge.net Logo