← Все истории
1999

Space War: как два кораблика научили меня тригонометрии

В 1990-х была очень популярна игра про два летающих кораблика, которые стреляют друг в друга. Нельзя было выпустить вторую пулю, пока первая летит по экрану, а для победы в раунде хватало одного попадания.

Ещё в 1998 году мне в руки попали исходники этой программы — gong.pas, — и их разбор дал мне очень многое. Самой большой загадкой для меня была векторная графика: как кораблик может поворачиваться вокруг своей оси на произвольный угол? Тогда я сам разобрался с синусами и косинусами и вывел золотое правило:

x = cos(angle) * R
y = sin(angle) * R

Ещё я познакомился с прямым опросом клавиатуры через порты.

В итоге я сделал свою версию игры — Space War. В ней было:

  • изменение формы корабля при таране, как машин в Carmageddon;
  • искры при столкновениях, дымовой след, звуки;
  • векторный редактор кораблей;
  • много оружия — пули разной силы, ракеты, самонаводящиеся ракеты, бомбы, салют и лазер, который стоит очков;
  • падающие с неба парашютисты, которых можно сбивать ради очков, и звёздочки с боеприпасами или починкой;
  • миссии или свободный бой любым кораблём против любого противника;
  • свои загрузчики BMP и WAV, графика через драйвер SVGA256 BGI.

Долгое время я думал, что исходники потеряны безвозвратно. Потом нашёл последние версии, вплоть до декабря 1999 года, — видимо, допиливал игру к конкурсу. Той осенью я пошёл в 10-й класс, и Space War уже тогда нравился всем вокруг.

1999 год был годом многих попыток сделать «большую игру»; несколько провалились. Space War стал первой хорошей.