Игры DiVision
Игры поменьше, которые я делал между большими (Tank, Space War, Lamer-Killer, Doom RF), на Turbo Pascal, а потом на Free Pascal. Большинство написано для школьного конкурса программистов, и все до сих пор запускаются в DOSBox.
Программы
Gonki 1998
Гонки в текстовом режиме: извилистая дорога, нарисованная прямо в видеопамяти, соперники, а при касании стен теряешь скорость.
Tank 2 1998
Второй Tank, уже в графике 640×480: векторный танк, повёрнутый синусом и косинусом, инерция и отскоки от стен, случайные комнаты, где стен с каждым разом больше, и магазин улучшений — бампер, мотор, колёса, тормоза, руль. Сохранился только исходник.
Arkanoid 1999
Кирпичи до четырёх ударов, падающие бонусы (широкая, обычная или маленькая ракетка, мяч медленнее или быстрее) и угол отскока, который зависит от того, куда мяч попал на ракетке. Управление мышью.
Dzīvnieks 1999
«Угадай животное» по идее из журнала «Наука и жизнь»: программа задаёт вопросы «да/нет», а проиграв, спрашивает, кто это был и каким вопросом его отличить, и сохраняет новую ветку дерева. В видео она учит собаку и узнаёт её уже в следующем раунде. Если загадать животное, которое она уже знает, она говорит, что вы играете нечестно.
RTS 1999
Проба стратегии в реальном времени: по сотне юнитов с каждой стороны, выделение рамкой и Shift, клик по врагу — атака, автоматический огонь в радиусе, мини-карта и прокрутка у края экрана, плюс здания со стоимостью и энергией. Рядом — редактор карт.
Mine Explorer 1999
Моя последняя игра в текстовом режиме, сделанная быстро в июне 1999 года: лабиринт в тумане, где видно только соседние клетки, мины, стены и очки, миссии, собранные в цепочки, редактор уровней, а каждая победа сохраняется как запись прохождения. В видео — одна из таких записей.
Capture or Destroy 1999
RTS в 800×600 и 256 цветах, осень 1999 года: юниты собираются из платформы, корпуса и башни — каждая деталь отдельный спрайт 32×32, местность с водой, сушей и берегом, клетки, у которых есть владелец, и мини-карта.
Исходник того времени
PROGRAM TOHKI;
USES CRT,GRAPH;
VAR
c,A,B,x,y:INTEGER;
q:string;
i,j,p:word;
x1:array[1..96]of integer;
y1:array[1..96]of integer;
BEGIN
randomize;
A:=DETECT;
INITGRAPH(A,B,'A:\PASKAL\GRAFIKA');
x:=320;
y:=280;
for i:=1 to 48 do x1[i]:=0;
for i:=48 to 96 do x1[i]:=640;
for i:=1 to 48 do y1[i]:=i*10-5;
for i:=48 to 96 do y1[i]:=i*10-485;
setbkcolor(4);
repeat
SETCOLOR(15);
circle(600,100,10);
for i:=1 to 96 do line(x,y,x1[i],y1[i]);
q:=readkey;
if (q=#72) or(q=#77)or(q=#80)or(q=#75) then begin
SETCOLOR(0);
for i:=1 to 96 do line(x,y,x1[i],y1[i]);
if q=#72 then y:=y-10;
if q=#77 then x:=x+10;
if q=#80 then y:=y+10;
if q=#75 then x:=x-10;
end;
if q=#32 then begin
for i:=1 to round(x/2) do begin
p:=1;
setcolor(14);
sector(i*2,y,0,359,round((320-i)/10),round((320-i)/60));
setcolor(4);
sector(i*2,y,0,359,round((320-i)/10),round((320-i)/60));
end;
c:=random(5);
for j:=1 to c+1 do begin
setcolor(14);
a:=random(100);
b:=random(20);
for i:=1 to a do begin circle(x+b,y+b,i);
sound(i+10);
end;
nosound;
setcolor(4);
for i:=a downto 50 do begin
circle(x+b,y+b,i);
SOUND(I+100);
end;
end;
for i:=1 to a do begin circle(x+b,y+b,i);
sound(i+100);
end;
NOSOUND;
end;
if (x<610)and(x>590)and(p=1) then begin
settextstyle(0,0,9); setcolor(2); setusercharsize(2000,100,2000,100);
if (y>90)and(y<110)then begin
outtextxy(20,220,'You win');
delay(1000); halt(1);
end;
end;
p:=0;
until q=#27;
END. Январь 1998, Turbo Pascal: стрелялка в тоннеле, которую я принёс на свой первый школьный конкурс. 96 линий от твоей точки к краям экрана рисуют тоннель; стрелки двигают точку, пробел — выстрел и взрывы со звуком из PC-спикера, попал в белый кружок — победа.
Подробнее
Во второй половине 1999 года я делал RTS. За основу взял ресурсы из Героев. Но быстрая графика на Паскале так и осталась проблемой.
Требования: DOSBox