FreeGAG project is an attempt to rewrite engine of old Russian quest game “GAG: The Impotent Mystery”. I was thinking about that idea around 2-3 years ago. Year ago I started reverse-engineering of Windows version of game. Later I had some delays, and in the end of 2012 I contacted Auric Vision, company which published game (http://www.auricvision.ru, seems ceased to exist, as last update on site dated by 2008), and asked whether is there an possibility to open original game sources. Fortunately for me, I got an answer, that my proposal interesting, and they need to think about this. I was waiting long enough for that simple answer (2 months), but looks like they forgot / weren’t willing, and I wasn’t contacted since. Anyway, I am happy, that they haven’t answered, because it was an additional impulse for me to continue my development.
So, here’s what I have now:
- CDI archive extractor
- FLC animation decoder with support of custom sound stream and special picture frame encoding (*.MOV, *.MVZ files, which aren’t standard FLC animations and were developed specifically for gag)
- loading of game backgrounds
- support of game audio
- structure of all game formats is 100% known
Remaining to do:
- script parsing
- i18n support
- rewrite XTETRIS (embedded minigame)
- connect everything together
Game is script-driven, which is work-in-progress, thus I am unable to show some meaningful game as of now. Entire game engine is implemented using SDL 1.2, C++. I am developing everything in Linux, but it should work on any OS which support SDL and C++11 compilation. Code is under GPLv3. In future I am planning to consider moving game support to ScummVM.
In this blog I’ll be reporting on development progress.
Проект FreeGAG это попытка переписать движок популярного, в своё время, российского квеста “ГЭГ: Отвязное Приключение”. Идея вынашивалась ещё 2-3 года назад. Где то год назад, был начат реверс-инжениринг Windows-версии. Позже была некоторая задержка, и в конце 2012-го я обратился к издателям игры, компании Auric Vision (http://www.auricvision.ru, полагаю ныне мёртвая, так как последний апдейт на сайте 2008-го года) с вопросом, не смогли ли бы они открыть исходники. На это я получил ответ, что предложение интересное – надо подумать. Я ждал достаточно долго, но ответа так и не получил, видимо забыли. Тем не менее я рад такому стечению обстоятельств, так как это было своеобразным толчком возобновить работы.
Итак, вот что имеется на сегодняшний день:
- экстрактор CDI-архива
- декодер FLC анимаций с поддержкой аудиопотока и специально кодированных фреймов (*.MOV, *.MVZ файлы, которые нестандартны и полагаю были разработаны специально для гэга)
- подгрузка игровых бэкграундов
- поддержка игрового аудио
- структура всех игровых форматов полностью известна
Что осталось сделать:
- парсинг скрипта
- поддержка локализации
- переписать XTETRIS (встроенная игра)
- связать всё воедино
Сама игра это по сути скрипт, так как работы над парсингом скрипта только начинается, то показать что-то вменяемое на данный момент не представляется возможным. Все части движка реализовано на SDL 1.2, C++. Код под GPLv3. В будущем, если всё будет хорошо, планирую включить поддержку игры в ScummVM.
В этом блоге будет описыватся процесс разработки.