Компания «МиСТ ленд – ЮГ» занимается разработкой компьютерных игр. Современная компьютерная игра – крупный и сложный программный комплекс, и затраты только на программную разработку измеряются сотнями человеко-месяцев. Одной из отличительных черт игры как компьютерного приложения является работа с огромным количеством ресурсов. Объемы графики, музыки, видео, скриптов исчисляются гигабайтами, ресурсы проектов насчитывают тысячи файлов. Имеет место проблема организации ресурсов, в частности, информации на диске. Применение СУБД в данном случае сопряжено с техническими и экономическими сложностями:
1. Требуется специальная обработка данных для помещения их в БД, впоследствии будет затруднено их редактирование.
2. СУБД – отдельное приложение, необходимо программно устанавливать связь между процессами.
3. Высокая стоимость быстродействующих СУБД. В случае с распространением игры как товара, как правило, требуется отдельное лицензирование.
Ранее проблема решалась построением иерархических структур на диске. В силу внешних причин отдельные части ресурсов могут быть заархивированы и/или зашифрованы. Часть ресурсов может быть оставлена на ключевом носителе (сейчас в этой роли выступает оптический диск), который тоже может быть защищен по какой-либо технологии (используется StarForce). Также ресурсы могут быть размещены на сетевом сервере, что накладывает свои требования к доступу, верификации и иногда к защите. Особенности проектов «МиСТ ленда» диктуют и такое требование: необходима возможность работы с несколькими параллельными версиями ресурсов – это нужно для корректной установки патчей (пакетов исправлений и дополнений) и пользовательских модификаций. В результате формируется распределенный комплекс весьма сложных по структуре хранилищ. Кроме того, необходимость знать о типах хранилищ и особенностях работы с ними, вызывает резкое усложнение остального кода проекта и затрудняет его повторное использование.
Студент группы МП-55 Ересов А.Е., направленный в «МиСТ ленд – ЮГ» на преддипломную практику, решая описанную проблему, в рамках разработанного им ТЗ разработал модуль VFS, внедренный в проект «Альфа Антитеррор».