Tron was my first graphics game in high school finished in ’90. It was written in Turbo Pascal with CGA graphics using a 286. I had to write my own editors – graphics, map, item. All of it was self taught since nobody I knew could program. I basically had to “reinvent” things like sprites. I also wrote two text adventure games for the Apple IIe in Basic before attempting my first graphics game. The game is loosely modeled after Ultima ][ on Apple IIe but using the Tron universe. The player can ride vehicles (LightCycle, Intercepter), battle monsters, ride across the grid, explore IO towers (towns). The goal is to defeat the MCP by finding keycards to reprogram and destroy it.
procedure use;
var i:byte;
begin
println('Use: 1.probe 2.nullifier 3.bar 4.cloak 5.flask');
print('number: ');
ans:=readkey;
case ans of
'1':begin
if (hero.power[1]>0) and (hero.items[1]) then
begin
println('a key apears.');
dec(hero.power[1]);
inc(hero.keys);
end
else
println('out of blue power or no probe.');
end;
'2':begin
if not hero.items[3] then begin
println('no nullifier.');
exit;
end;
print('Dir: ');
i:=getdir;
case i of
1:if (hero.items[3]) and (map[hero.x,hero.y-1,1]=2) and (hero.power[4]>0) then
begin
dec(hero.power[4]);
hitsound;
map[hero.x,hero.y-1,1]:=5;
map[hero.x,hero.y-1,2]:=52;
map[hero.x,hero.y-1,3]:=0;
println('');
end
else
begin
println('');
println('out of power,no nullifier, or no wall.');
end;
2:if (hero.items[3]) and (map[hero.x+1,hero.y,1]=2) and (hero.power[4]>0) then
begin
dec(hero.power[4]);
hitsound;
map[hero.x+1,hero.y,1]:=5;
map[hero.x+1,hero.y,2]:=52;
map[hero.x+1,hero.y,3]:=0;
println('');
end
else
begin
println('');
println('Out of power,no nullifier,or no wall.');
end;
3:if (hero.items[3]) and (map[hero.x,hero.y+1,1]=2) and (hero.power[4]>0) then
begin
dec(hero.power[4]);
hitsound;
map[hero.x,hero.y+1,1]:=5;
map[hero.x,hero.y+1,2]:=52;
map[hero.x,hero.y+1,3]:=0;
println('');
end
else
begin
println('');
println('Out of power,no nullifier,or no wall.');
end;
4:if (hero.items[3]) and (map[hero.x-1,hero.y,1]=2) and (hero.power[4]>0) then
begin
dec(hero.power[4]);
hitsound;
map[hero.x-1,hero.y,1]:=5;
map[hero.x-1,hero.y,2]:=52;
map[hero.x-1,hero.y,3]:=0;
println('');
end
else
begin
println('');
println('Out of power,no nullifier,or no wall.');
end;
end;
end;
'3':if (hero.items[4]) and (map[hero.x,hero.y,2]=0) then
begin
map[hero.x,hero.y,2]:=46;
println('a light cycle appears around you.');
board;
end
else if (map[hero.x,hero.y,2]<>0) and (hero.items[4]) then
begin
println('obstructed.');
exit;
end
else
begin
println('no steering bar.');
exit;
end;
'4':if (hero.items[7]) and (hero.power[2]>0) then
begin
println('You don the camoflage cloak.');
hero.camoon:=true;
hero.camotime:=100;
dec(hero.power[2]);
end
else println('Out of red power or no cloak.');
'5':if hero.flasks>0 then begin
dec(hero.flasks);
hero.hits:=hero.hitmax;
println('you feel much better.');
end
else println('no more flasks.');
else begin println('what?'); exit; end;
end;
statusscreen;
end;