Blog launch

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.

В этом блоге будет описыватся процесс разработки.