C/C++: Сделай свою моду для Кваки
Дубовцев Алексей
Xakep, номер #057, стр. 057-088-1
(mrorbit@mail.ru)
Делаем своими руками моду для Quake3
Мой дорогой друг, я знаю, что в твоей гениальной голове давно витает идея создать свою уникальную игру. Но, к сожалению, процесс написания игр слишком тяжел. Чтобы сотворить что-то более или менее приличное, необходимо быть хорошим дизайнером, программистом, сценаристом и еще Бог знает кем. А совместить все эти качества в одном человеке - крайне трудно. Поэтому я хочу предложить тебе кое-что другое. Прочитав эту статью, ты сможешь создать свою уникальную игру при помощи моды под Quake3. Итак, вперед, посмотрим, как это сделать легко и безболезненно.
Что же такое моды?
Давным-давно, много лет тому назад, началась эпоха компьютерных игр. Игры создавались монолитными и нерасширяемыми. Игроку по умолчанию предоставлялся ограниченный набор уровней и возможностей, которые быстро исчерпывали себя и становились неинтересными. А чтобы внести в игру кардинальные изменения, приходилось переписывать ее заново. Но тут в один прекрасный день какому-то создателю пришла гениальная мысль: а почему бы не разделить игровую программу на две части: движок и игровой уровень. Таким образом разработчики достигли необычайной гибкости в изменении и усовершенствовании своих игр.
Но был и другой смысл. На самом деле, создатели игр - люди жадные и меркантильные. Каждый день в их секретных лабораториях разрабатывались новые методы получения денег с выпускаемых ими игрушек. Разделение игры на два уровня (движок и игровой уровень) дало возможность еще больше наживаться с продаж, загоняя не только сами игры, но и созданные ими движки компаниям, которым было не под силу написать их собственными силами.
Quake, точно так же как и все современные программы, является игрой с двухуровневой архитектурой: движок и мода. Что такое мода, ты, наверное, и сам хорошо понимаешь. Скорее всего, у тебя стоит весьма популярный Osp, а может и экзотический Defrag. Теперь же твоя жизнь изменится - нам предстоит создать свою хакерскую моду, в которой ты, конечно же, будешь самым большим и сильным.
Немного рутины
Для начала тебе предстоит получить исходники базовой моды Quake3. Бесплатно их можно скачать с сайта idsoftware.com. Правда сервер ID часто бывает перегружен, поэтому проще поискать в инете файл Q3A_TA_GameSource_129h1.exe. Установив исходные коды моды на свой комп, первым делом обязательно загляни в папку, куда ты их поместил. Там должны находиться следующие три подпапки: bin_nt, code, ui (плюс файл с лицензией, который нас не интересует). В первой папке ты найдешь набор специальных утилит, начиная от собственного Quake-C компилятора (lcc.exe) и заканчивая утилитой для создания уровней (q3radiant_200f.exe). Правда, использовать данные утилиты мы с тобой не будем, по крайней мере, сегодня. В последнем каталоге лежит набор скриптов, отвечающий за создание пользовательского интерфейса Quake: менюшки, окошки и прочая лабуда. Куда более интересный каталог code. Это и есть священное место, где хранится святая святых - исходные коды базовой моды Quake3. Походи по этому каталогу, там ты обнаружишь кучу файлов с расширением "с". Это и есть программный код, отвечающий за каждый игровой шаг.