Программирование игр для Windows. Советы профессионала

         

Net Tank: танковый имитатор для двух игроков


Net-Tank — игра для одного или двух игроков. Я написал ее, чтобы показать как создаются игры для нескольких участников и осветить некоторые проблемы которые могут при этом возникнуть. Это самая примитивная игра (для её написания мне понадобилось всего три дня), имеющая один-единственный уровень. Более того, это двухмерная игра, в которой игрок смотрит на поле боя сверху вниз. Мы напишем полноценную трехмерную игру типа Wolfenstetn в девятнадцатой главе, а сейчас я хочу оставить программу достаточно простой чтобы акцентировать внимание не на алгоритмах игровой логики, а на коммуникационной части.

Перед тем как мы начнем разбирать игру, я предлагаю вам сыграть в нее с кем-нибудь или, по крайней мере, в одиночку, чтобы вы понимали, о чем сейчас пойдет речь. Как я упоминал ранее, все профессионалы в области разработки игр стараются писать уникальные программы и не повторять уже существующие игры. Я модифицировал некоторые модули наших старых программ и создал на их основе новые модули. Чтобы избавиться от массивных включений исходных файлов, не имеющих непосредственного отношения к игре, я разработал несколько библиотек:

SNDLIB.C          библиотека звуковых эффектов;

GRAPH1.С         низкоуровневый двухмерный спрайт и графическая библиотека;

KEYLIB.C          библиотека ввода с клавиатуры;

SERLIB.C          коммуникационная библиотека.

Все файлы заголовков для этих библиотек имеют те же самые имена:

SNDLIB.H GRAPH1.H KEYLIB.H SERLIB.H

Все эти модули объединяются в одну обширную библиотеку с помощью менеджера LIB.EXE. Для создания этой библиотеки вам надо:

1. Скомпилировать каждый Си-модуль с помощью файла СО.ВАТ:

cl -AM  -Zi  -с  -Fc -Gs -G2 %1.с

2. После компиляции создается одна большая библиотека с именем MYLIB.LIB. Чтобы сделать это, вызовите библиотечный менеджер путем ввода команды

lib mylib.lib



3. Программа скажет, что библиотека с таким именем отсутствует, и спросит вашего согласия на ее создание. Ответьте утвердительно;

4. Дрбавьте в командную строку все модули, входящие в библиотеку, как это укаэано:                                            




operations: +SNDLIB +GRAPH1 +KEYLIB +SERLIB              

5. Затем появятся еще два запроса. Ответьте на них нажатием клавиши Enter.

После этого у вас появится библиотека MYLIB.LIB, которую вы можете присоединять так же, как и любую другую библиотеку.

Для создания игры, вам необходимо создать два исполняемых модуля:

§

Один для игрока 1;

§          Другой для игрока 2.

Чтобы это сделать, вам надо:

1. Откомпилировать NET1.C и NET2.C (2 версии игры) следующим с помощью командного файла СС.ВАТ:

cl -AM -Zi -с -Fc -Gs -G2 %1.С

if errorlevel 1 goto с fail

link  /ST:16384 /CO %1/,,,graphics.lib+myiib.iib,,

:c_fail

Этот командный файл компилирует игру и объединяет ее с библиотекой, чтобы создать исполняемый модуль. Сделайте это, чтобы создать два файла:

NET1.EXE и NET2.EXE;

2. Поместите NET1.EXE ,на ПК1 и NET2.EXE на ПК2. Соедините обе машины нуль-модемным кабелем через СОМ1;

3. Теперь можно начинать игру. Наберите NET1.EXE на ПК1 и NET2.EXE на ПК2. Машины соединятся и вы можете сразиться со своим приятелем на танковой дуэли.

Используйте следующие управляющие клавиши:

Стрелка вправо     Повернуть направо

Стрелка влево       Повернуть налев

Стрелка вверх      Двигаться вперед

Стрелка вниз        Двигаться назад

Esc                         Выход из игры

Пробел                   Стрельба

Т                              Подразнить партнера

Поиграйте в Net-Tank и попутно обратите внимание на следующие вещи:

§          Возникает ли эффект запаздывания при перемещениях?

§          Теряет ли игра синхронизацию?                     

§          Если да, то в какие моменты? 

Также обратите внимание на звуковые эффекты. Для их создания я использовал собственный голос и условно-бесплатную программу Blaster Master Наконец, игру можно проводить при установленной программе-ускорителе клавиатуры.Если при нажатии клавиши танк слишком резво устремляется вперед, попробуйте уменьшить скорость реагирования клавиатуры, установив программу TURBOKEY.COM, которая имеется на дискете.


Содержание раздела