• This repository has been archived on 13/Oct/2018
  • Stars
    star
    343
  • Rank 123,371 (Top 3 %)
  • Language
    C
  • Created about 12 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Descent (1995) by Parallax Software Corp.
Legal Stuff:


THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.

We make no warranties as to the usability or correctness of this code.

About the Source Code:

Included is almost all the source code to Descent 1, ver. 1.5.  We removed
all code to which we did not own the copyright.  This mainly involved low-
level sound and modem code.

Kevin Bentley, maintainer of the Descent Developer Resources and author of
Kahn, has agreed to support this code base through his website at
www.ladder.org/ddr.  If you have questions or comments about the code, please
go there.  Please do not contact Parallax Software, its employees or its
affiliates.

The following tools were used in the development of Descent:
Watcom C/C++, version 9.5
Microsoft Macro Assembler, version 6.1x
Opus Make, version 6.01

Have fun with the code!
Parallax Software Corporation
Jan. 12, 1998

Kevin Bentley's notes:

As included in this zip file, the source should compile and run with the 
following:

Watcom 10.6
Miscrosoft Macro Assembler 6.11
GNU (or compatible, such as Microsoft, or Borland) Make utility

To build the executable, you should be able to just run maked1.bat. 
Descentr.exe should be built in the main subdirectory.

When you unzip the archive, make sure you use the -d option to expand subdirectories, or it will not 
compile.

The compiled code will run fine with no sound, and no serial port functionality 
(This means no VR equipment that uses serial interfaces, and no modem or serial 
play games.)

If you port this to another platform, please drop me a note 
[email protected] , I would be happy to post a copy of your port on 
the web site. *PLEASE* make an attempt to keep the existing code compilable (ie. 
use #IFDEFS)), so other people can benefit from your work.

To build the editor, change the CCFLAGS variable in all the makefiles to 
"CCFLAGS = /dNETWORK /dEDITOR" and rebuild all files. You will need the files 
in editdata.zip (included in this archive) to run the editor. Also, I was only 
able to get the editor to run using the -nobm command line arguement.


---

Interview with Matt Toschlog and Mike Kulas regarding the release of the
Descent source code:

Q: Why are you releasing the source code?

Mike: The main reason is we figured a lot of people aspiring to work in the
game industry would like to see production "quality" code.  There are two
reasons for this.  One, you can learn a lot by looking at working code.
Two, people will see that you can write a decent game without writing
beautiful code.

Matt: That's a good thing?

Mike: Not really, except that it might make people think writing production
quality code isn't that hard.

Matt: That's a good thing?

Mike: Well, not really, unless they learn that they have to focus on
designing a brilliant game, rather than writing brilliant code.

Matt: Ah, that's a good thing.

Mike: Yeah, I don't think I understood that until we started working on
Descent.  At first all I cared about was writing technically good code.

Matt: Then we ran out of money and all we cared about was finishing our game.

Mike: Right.  Our code got ugly, but our game got done.

Matt: Writing code is easy.  Finishing is hard.

Q: Is there any code you're particularly proud of?

Matt: No.

Mike: No.

Matt: I'm most ashamed of the vector intersection code.

Mike: Yeah, that's pretty bad.

Matt: Mike's AI code is the worst I've ever seen.

Mike: Only because you program with your eyes closed.

Matt: I'm proud we managed to finish without going bankrupt.

Mike: Yeah, finishing is all.  Who said that?

Q: Seriously, what should people look at?

Matt: I really don't know.  It's not like there's a lot of reusable code in
there.  Some low level stuff could probably be used.  The vector-matrix
library is probably fairly instructive.

Mike: The AI is an example of how not to write an AI system.

Matt: You're doing it the same way in FreeSpace, right?

Mike: Yeah.

Matt: The texture mapper is worth looking at, not that you'll be needing a
software texture mapper much longer.

Q: You're including the editor, right?

Mike: Yeah, people will be able to use our editor.  On the whole, I doubt
it's any better than DMB2.  And it doesn't run under Windows.

Q: What enhancements do you hope to see people make?

Matt: If an aftermarket sprouts for it, we'd be very happy.  People ask for
lots of little features that we just don't have the time to add.

Mike: People could probably roll in some of the D2 multiplayer features
without too much difficulty.

Matt: I don't think we can guess what people will do.  We had no idea how
much would be done with third party levels.

Q: The license states that people can't use the code for commercial gain.
What if some kid develops something and wants to recoup some of the cost
through shareware?

Mike: We're not opposed to that in principle.  They need to get written
permission from us, though.  And, it would have to be after the thing is
done so we know what we're permitting to be commercialized, if you want to
call it that.

Q: Any plans to release the D2 source code?

Matt: No definite plans.  Though, I guess I don't see why all our source
code wouldn't eventually get released.

Mike: Me, too.  It loses commercial value in just a few years.  And,
releasing it brings us closer to our customers, which is a very good thing
to do.

Q: Any final comments?

Mike: Yeah, have fun with the code.

More Repositories

1

dukenukem3d

Duke Nukem 3D (1996) by 3D Realms Entertainment, Inc.
C++
203
star
2

rott

Rise of the Triad: Dark War (1994) by Apogee Software, Ltd.
C
80
star
3

descent2

Descent II (1996) by Parallax Software Corp.
72
star
4

abuse

Abuse (1995) by Crack dot Com
C
70
star
5

blood

The "Blood Alpha" source code for Blood (1997) by Monolith Productions.
C++
68
star
6

homeworld

Homeworld (1999) by Relic Entertainment
C
54
star
7

blood2

Blood II: The Chosen (1998) by Monolith Productions, Inc.
C++
45
star
8

hexen

Hexen: Beyond Heretic (1995) by Raven Software
C
43
star
9

micropolis

Micropolis AKA Sim City.
C
43
star
10

heretic

Heretic (1994) by Raven Software
C
41
star
11

hexen2

Hexen II (1997) by Raven Software Corporation
C
38
star
12

postal

Postal (1997) by Running With Scissors
C++
36
star
13

mechcommander2

MechCommander 2 (2001) by FASA Studio
C++
35
star
14

jaggedalliance2

Jagged Alliance 2 (1999) by Sirtech Canada Ltd.
C
35
star
15

jediacademypc

Star Wars: Jedi Knight - Jedi Academy (2003) by Raven Software Corporation
C++
33
star
16

galaga-7800

Galaga (1987) by Namco Limited for the Atari 7800
Assembly
33
star
17

zork-fortran

Original Fortran source code for Zork
Fortran
32
star
18

marathon2

Marathon 2: Durandal (1995) by Bungie Software Products Corporation
C
30
star
19

avp

Aliens versus Predator (1999) by Rebellion Developments Ltd.
C
29
star
20

freespace2

FreeSpace 2 (199) by Volition, Inc.
C++
29
star
21

colossalcaveadventure

Colossal Cave Adventure. Written in PDP-10 FORTRAN. Badass.
Fortran
27
star
22

jjffe

John Jordan's reverse engineering of Frontier: First Encounters.
Assembly
27
star
23

spacetrader

Space Trader (2002) by Pieter Spronck
C
27
star
24

txtelite

Text Elite is a C implementation of the classic Elite trading system in a text adventure style shell.
C
25
star
25

starcontrol2

Star Control II (1992) by Toys for Bob Inc.
C
24
star
26

asteroids-7800

Asteroids (1987) by Atari, Inc. for the Atari 7800
Assembly
23
star
27

bass

Beneath a Steel Sky (1994) by Revolution Software.
Assembly
23
star
28

mspacman-7800

Ms. Pac-Man (1987) by General Computer Corporation for the Atari 7800
Assembly
22
star
29

arxfatalis

Arx Fatalis (2002) by Arkane Studios SA
C++
22
star
30

swars

Syndicate Wars Port is a port of the 1996 DOS game Syndicate Wars to modern operating systems.
Assembly
22
star
31

theoperative

The Operative: No One Lives Forever (2000) by Monolith Productions, Inc.
C++
19
star
32

softporn

Softporn Adventure (1981) by Charles Benton
Pascal
19
star
33

qc

Quadrilateral Cowboy (2016) by Blendo Games.
C++
19
star
34

carnivores2

Carnivores 2 (1999) by Action Forms
C++
18
star
35

joust-7800

Joust (1987) by Williams Electronics Inc. for the Atari 7800
Assembly
18
star
36

carnivoresiceage

Carnivores Ice Age (2000) by Action Forms
C++
18
star
37

jediacademyxbox

Star Wars: Jedi Knight - Jedi Academy (2003) by Raven Software Corporation
C++
17
star
38

digdug-7800

Dig Dug (1987) by Namco Limited for the Atari 7800
Assembly
17
star
39

alienbreed3dii

Alien Breed 3D II: The Killing Grounds (1996) by Team17 Software Limited
16
star
40

akalabeth

Akalabeth: World of Doom (1979) by Richard Garriott.
16
star
41

commando-7800

Commando (1989) by Capcom Co., Ltd. for the Atari 7800
Assembly
15
star
42

gish

Gish (2004) by Chronic Logic LLC
C
15
star
43

golgotha

Golgotha (1998) by Crack dot Com
C++
14
star
44

spelunky

Spelunky (2008) by Mossmouth, LLC.
13
star
45

oregontrail

The Oregon Trail (1975) by Don Rawitsch / MECC.
VBA
13
star
46

freesynd

FreeSynd is a cross-platform, GPLed reimplementation of engine for the classic Bullfrog game, Syndicate.
C++
13
star
47

centipede-7800

Centipede (1987) by Atari, Inc. for the Atari 7800
Assembly
13
star
48

robotron-7800

Robotron: 2084 (1986) by Vid Kidz for the Atari 7800
12
star
49

xevious-7800

Xevious (1988) by Namco Limited for the Atari 7800
Assembly
12
star
50

allegiance

Allegiance (2000) by Microsoft Corporation
Logos
11
star
51

revengeofthetitans

Revenge of the Titans (2011) by Puppygames
Java
11
star
52

sevenkingdoms

Seven Kingdoms: Ancient Adversaries (1998) by Enlight Software Ltd.
C++
9
star
53

7kaa

Seven Kingdoms: Ancient Adversaries by Enlight Software
C++
9
star
54

aof

Art of Fighting (1992) by SNK.
Assembly
9
star
55

hattrick-7800

Hat Trick for the Atari 7800
Forth
8
star
56

creatures3

Creatures 3 (1999) by Creature Labs
C++
8
star
57

actuasoccer96

Actua Soccer '96 (1996) by Gremlin Interactive.
C++
8
star
58

alienbashii

Alien Bash II (1996)
Assembly
7
star
59

sphinx-7800

Sphinx/Nile Flyer/Desert Falcon (1987) by Atari Corporation for the Atari 7800
Assembly
7
star
60

foodfight-7800

Food Fight (1987) by General Computer Corporation for the Atari 7800
Assembly
5
star
61

gravityforce2

Gravity Force 2 (1994) by Bits Productions
Assembly
5
star
62

crossbow-7800

Crossbow (1988) by Exidy, Inc. for the Atari 7800
Assembly
5
star
63

superstuntcycle-7800

Super Stunt Cycle/Motopsycho (1990) by BlueSky Software, Inc. for the Atari 7800
Assembly
5
star
64

xenon2000

Source code and most of the assets from the PC Format build xenon 2000 series
C++
2
star