Skip to content

Commit 4eb368a

Browse files
author
Travis Bradshaw
committed
The DOOM sources as originally released on December 23, 1997
0 parents  commit 4eb368a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+59219
-0
lines changed

README.TXT

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
Here it is, at long last. The DOOM source code is released for your
3+
non-profit use. You still need real DOOM data to work with this code.
4+
If you don't actually own a real copy of one of the DOOMs, you should
5+
still be able to find them at software stores.
6+
7+
Many thanks to Bernd Kreimeier for taking the time to clean up the
8+
project and make sure that it actually works. Projects tends to rot if
9+
you leave it alone for a few years, and it takes effort for someone to
10+
deal with it again.
11+
12+
The bad news: this code only compiles and runs on linux. We couldn't
13+
release the dos code because of a copyrighted sound library we used
14+
(wow, was that a mistake -- I write my own sound code now), and I
15+
honestly don't even know what happened to the port that microsoft did
16+
to windows.
17+
18+
Still, the code is quite portable, and it should be straightforward to
19+
bring it up on just about any platform.
20+
21+
I wrote this code a long, long time ago, and there are plenty of things
22+
that seem downright silly in retrospect (using polar coordinates for
23+
clipping comes to mind), but overall it should still be a usefull base
24+
to experiment and build on.
25+
26+
The basic rendering concept -- horizontal and vertical lines of constant
27+
Z with fixed light shading per band was dead-on, but the implementation
28+
could be improved dramatically from the original code if it were
29+
revisited. The way the rendering proceded from walls to floors to
30+
sprites could be collapsed into a single front-to-back walk of the bsp
31+
tree to collect information, then draw all the contents of a subsector
32+
on the way back up the tree. It requires treating floors and ceilings
33+
as polygons, rather than just the gaps between walls, and it requires
34+
clipping sprite billboards into subsector fragments, but it would be
35+
The Right Thing.
36+
37+
The movement and line of sight checking against the lines is one of the
38+
bigger misses that I look back on. It is messy code that had some
39+
failure cases, and there was a vastly simpler (and faster) solution
40+
sitting in front of my face. I used the BSP tree for rendering things,
41+
but I didn't realize at the time that it could also be used for
42+
environment testing. Replacing the line of sight test with a bsp line
43+
clip would be pretty easy. Sweeping volumes for movement gets a bit
44+
tougher, and touches on many of the challenges faced in quake / quake2
45+
with edge bevels on polyhedrons.
46+
47+
Some project ideas:
48+
49+
Port it to your favorite operating system.
50+
51+
Add some rendering features -- transparency, look up / down, slopes,
52+
etc.
53+
54+
Add some game features -- weapons, jumping, ducking, flying, etc.
55+
56+
Create a packet server based internet game.
57+
58+
Create a client / server based internet game.
59+
60+
Do a 3D accelerated version. On modern hardware (fast pentium + 3DFX)
61+
you probably wouldn't even need to be clever -- you could just draw the
62+
entire level and get reasonable speed. With a touch of effort, it should
63+
easily lock at 60 fps (well, there are some issues with DOOM's 35 hz
64+
timebase...). The biggest issues would probably be the non-power of two
65+
texture sizes and the walls composed of multiple textures.
66+
67+
68+
I don't have a real good guess at how many people are going to be
69+
playing with this, but if significant projects are undertaken, it would
70+
be cool to see a level of community cooperation. I know that most early
71+
projects are going to be rough hacks done in isolation, but I would be
72+
very pleased to see a coordinated 'net release of an improved, backwards
73+
compatable version of DOOM on multiple platforms next year.
74+
75+
Have fun.
76+
77+
John Carmack
78+
12-23-97

linuxdoom-1.10/CVS/Entries

+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
/ChangeLog/1.14/Mon Feb 3 22:45:08 1997//
2+
/DOOMLIC.TXT/1.3/Sun Jan 26 07:44:56 1997//
3+
/FILES/1.1/Sun Jan 19 17:22:41 1997//
4+
/FILES2/1.1/Sun Jan 19 17:22:42 1997//
5+
/Makefile/1.6/Mon Feb 3 22:45:08 1997//
6+
/am_data.h/1.2/Tue Jan 21 18:59:56 1997//
7+
/am_map.c/1.4/Mon Feb 3 21:24:33 1997//
8+
/am_map.h/1.2/Tue Jan 21 18:59:56 1997//
9+
/d_englsh.h/1.1/Mon Feb 3 21:48:03 1997//
10+
/d_event.h/1.2/Mon Feb 3 22:01:47 1997//
11+
/d_french.h/1.3/Mon Feb 3 21:48:03 1997//
12+
/d_main.c/1.8/Mon Feb 3 22:45:09 1997//
13+
/d_net.c/1.3/Mon Feb 3 22:01:47 1997//
14+
/d_textur.h/1.1/Mon Feb 3 16:47:51 1997//
15+
/doomdata.h/1.5/Mon Feb 3 22:45:09 1997//
16+
/doomdef.h/1.9/Mon Feb 3 22:45:09 1997//
17+
/doomtype.h/1.2/Mon Feb 3 22:45:09 1997//
18+
/dstrings.h/1.4/Mon Feb 3 21:48:03 1997//
19+
/dutils.c/1.5/Mon Feb 3 17:11:23 1997//
20+
/dutils.h/1.4/Mon Feb 3 17:11:23 1997//
21+
/f_finale.c/1.5/Mon Feb 3 21:26:34 1997//
22+
/f_finale.h/1.1/Mon Feb 3 21:26:34 1997//
23+
/f_wipe.c/1.2/Mon Feb 3 22:45:09 1997//
24+
/f_wipe.h/1.1/Mon Feb 3 17:11:23 1997//
25+
/fpfunc.S/1.1/Sun Jan 19 17:22:43 1997//
26+
/g_game.c/1.8/Mon Feb 3 22:45:09 1997//
27+
/g_game.h/1.1/Mon Feb 3 21:34:47 1997//
28+
/hu_lib.c/1.3/Sun Jan 26 07:44:58 1997//
29+
/hu_lib.h/1.4/Mon Feb 3 16:47:52 1997//
30+
/hu_stuff.c/1.4/Mon Feb 3 16:47:52 1997//
31+
/hu_stuff.h/1.3/Sun Jan 26 07:44:58 1997//
32+
/i_dga.c/1.3/Sun Jan 26 07:44:58 1997//
33+
/i_ibm.c/1.3/Sun Jan 26 07:44:58 1997//
34+
/i_main.c/1.4/Mon Feb 3 22:45:10 1997//
35+
/i_pcnet.c/1.3/Sun Jan 26 07:44:59 1997//
36+
/i_sound.c/1.3/Sun Jan 26 07:44:59 1997//
37+
/i_sound.h/1.3/Sun Jan 26 07:44:59 1997//
38+
/i_svga.c/1.3/Sun Jan 26 07:44:59 1997//
39+
/i_unix.c/1.5/Mon Feb 3 22:45:10 1997//
40+
/i_x.c/1.6/Mon Feb 3 22:45:10 1997//
41+
/info.c/1.3/Sun Jan 26 07:45:00 1997//
42+
/info.h/1.3/Sun Jan 26 07:45:00 1997//
43+
/irix.c/1.3/Sun Jan 26 07:45:00 1997//
44+
/irix.h/1.3/Sun Jan 26 07:45:01 1997//
45+
/linux.c/1.3/Sun Jan 26 07:45:01 1997//
46+
/m_argv.c/1.1/Mon Feb 3 22:45:10 1997//
47+
/m_argv.h/1.1/Mon Feb 3 22:45:10 1997//
48+
/m_bbox.c/1.1/Mon Feb 3 22:45:10 1997//
49+
/m_bbox.h/1.1/Mon Feb 3 22:45:10 1997//
50+
/m_cheat.c/1.1/Mon Feb 3 21:24:34 1997//
51+
/m_cheat.h/1.1/Mon Feb 3 21:24:34 1997//
52+
/m_menu.c/1.7/Mon Feb 3 22:45:10 1997//
53+
/m_menu.h/1.1/Mon Feb 3 22:01:49 1997//
54+
/m_misc.c/1.6/Mon Feb 3 22:45:10 1997//
55+
/m_misc.h/1.1/Mon Feb 3 22:45:11 1997//
56+
/m_random.c/1.1/Mon Feb 3 22:45:11 1997//
57+
/m_random.h/1.1/Mon Feb 3 22:45:11 1997//
58+
/p_ceilng.c/1.4/Mon Feb 3 16:47:53 1997//
59+
/p_doors.c/1.4/Mon Feb 3 16:47:53 1997//
60+
/p_enemy.c/1.5/Mon Feb 3 22:45:11 1997//
61+
/p_floor.c/1.4/Mon Feb 3 16:47:54 1997//
62+
/p_inter.c/1.4/Mon Feb 3 22:45:11 1997//
63+
/p_lights.c/1.5/Mon Feb 3 22:45:11 1997//
64+
/p_local.h/1.3/Tue Jan 28 22:08:27 1997//
65+
/p_map.c/1.5/Mon Feb 3 22:45:11 1997//
66+
/p_maputl.c/1.5/Mon Feb 3 22:45:11 1997//
67+
/p_mobj.c/1.5/Mon Feb 3 22:45:12 1997//
68+
/p_plats.c/1.5/Mon Feb 3 22:45:12 1997//
69+
/p_pspr.c/1.5/Mon Feb 3 22:45:12 1997//
70+
/p_setup.c/1.5/Mon Feb 3 22:45:12 1997//
71+
/p_sight.c/1.3/Tue Jan 28 22:08:28 1997//
72+
/p_spec.c/1.6/Mon Feb 3 22:45:12 1997//
73+
/p_spec.h/1.3/Tue Jan 28 22:08:29 1997//
74+
/p_switch.c/1.3/Tue Jan 28 22:08:29 1997//
75+
/p_telept.c/1.3/Tue Jan 28 22:08:29 1997//
76+
/p_tick.c/1.4/Mon Feb 3 16:47:55 1997//
77+
/p_user.c/1.3/Tue Jan 28 22:08:29 1997//
78+
/r_bsp.c/1.4/Mon Feb 3 22:45:12 1997//
79+
/r_data.c/1.4/Mon Feb 3 16:47:55 1997//
80+
/r_draw.c/1.4/Mon Feb 3 16:47:55 1997//
81+
/r_local.h/1.4/Mon Feb 3 21:26:34 1997//
82+
/r_main.c/1.5/Mon Feb 3 22:45:12 1997//
83+
/r_plane.c/1.4/Mon Feb 3 16:47:55 1997//
84+
/r_segs.c/1.3/Wed Jan 29 20:10:19 1997//
85+
/r_things.c/1.5/Mon Feb 3 16:47:56 1997//
86+
/s_sound.c/1.6/Mon Feb 3 22:45:12 1997//
87+
/sounds.c/1.3/Wed Jan 29 22:40:44 1997//
88+
/sounds.h/1.3/Wed Jan 29 22:40:44 1997//
89+
/soundsrv.c/1.3/Wed Jan 29 22:40:44 1997//
90+
/soundsrv.h/1.3/Wed Jan 29 22:40:44 1997//
91+
/soundst.h/1.3/Wed Jan 29 22:40:45 1997//
92+
/st_lib.c/1.4/Mon Feb 3 16:47:56 1997//
93+
/st_lib.h/1.4/Mon Feb 3 16:47:56 1997//
94+
/st_stuff.c/1.6/Mon Feb 3 22:45:13 1997//
95+
/st_stuff.h/1.3/Thu Jan 30 19:54:22 1997//
96+
/sun.c/1.3/Thu Jan 30 19:54:22 1997//
97+
/tables.c/1.4/Mon Feb 3 16:47:57 1997//
98+
/tables.h/1.1/Mon Feb 3 16:47:57 1997//
99+
/tmap.S/1.1/Sun Jan 19 17:22:51 1997//
100+
/v_video.c/1.5/Mon Feb 3 22:45:13 1997//
101+
/v_video.h/1.2/Mon Feb 3 17:11:59 1997//
102+
/w_wad.c/1.5/Mon Feb 3 16:47:57 1997//
103+
/wadread.c/1.3/Thu Jan 30 19:54:23 1997//
104+
/wadread.h/1.3/Thu Jan 30 19:54:23 1997//
105+
/wi_data.h/1.3/Thu Jan 30 19:54:23 1997//
106+
/wi_stuff.c/1.7/Mon Feb 3 22:45:13 1997//
107+
/wi_stuff.h/1.4/Mon Feb 3 16:47:58 1997//
108+
/z_zone.c/1.4/Mon Feb 3 16:47:58 1997//
109+
/z_zone.h/1.1/Mon Feb 3 16:47:58 1997//

linuxdoom-1.10/CVS/Repository

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/info/cvsroot/id/id_doom

linuxdoom-1.10/CVS/Root

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/info/cvsroot/

0 commit comments

Comments
 (0)