Jetpack is a small arcade game originally written by Mark Bradley.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a small game called Jetpack originally written by Mark Bradley. A much prettier
Macintosh version of this game also exists. This is an earlier version of that game that
Mark wrote for X11, and for which he released source code on Usenet.

The license is fairly strict; see copyright.h. You'll notice I'm going a bit against it.
The version available here contains no functional changes, however. The aim is only to
increase compatibility with modern systems.

And besides, Mark himself seems to be impossible to find online. If you do know where to
find him, please let me know, so I can get his written consent.

-- Stéphan Kochen

Original README follows:

All the files in this distribution have tab stops = 4

There are a couple things you may have to play with to get jetpack

1) Fonts:	Jetpack uses two fonts, a small one and a large one. In
			initx.c, the font names are defined using the X Logical Font
			Description (XLFD). The definitions are near the top of the
			file, and there is a large block of comments above them giving
			the full names of the fonts and how you might go about
			selecting alternates. The font names are partial names that
			work on my system, but may not on yours (say, if you have
			thousands of fonts.) If jetpack complains about being unable
			to load a font, you may have to paste a more specific or
			different fontname in the variables fontname and bigfontname.

2) Blitting:	I originally wrote and tested jetpack on some color X
				terminals. The game is designed so that all the drawing in
				each frame is drawn into a window-sized off-screen pixmap,
				which is then blitted to the window. This way there is no
				flicker. However, the X terminals use hardware for
				blitting, and can therefore keep up with the program,
				while some sparcstations I know do all the blitting in
				software, causing horrible delays. So I changed the code
				to allow the user to compile it "non-blitting". This way
				there is flicker, since objects have to be erased and
				redrawn in the window, but a machine doing all of it's X
				in software can handle it better. It uses an algorithm
				that figures out which objects intersect each other, so it
				can erase a group, then draw the group, then go to the
				next group, thus minimizing the time between erase and
				draw for each object. The worst flicker tends to be on the
				maze walls, since at any particular time most of the maze
				walls on screen will be touching each other. If it bothers
				you too much, you can tone down the white by putting a
				different color name in the ctable structure in initx.c
				rather than "white". Ok, now in the Imakefile there is a
				line for DEFINES, and on this line is a flag -DBLIT. If
				you leave this flag in, the program will compile the
				flicker-free blitting version, and if you delete it, it
				will compile the flickering less X-intensive version. If
				this sounds confusing, I apologise. Just compile the game
				as-is, and if it seems to be really slow (it's supposed to
				be pretty quick) remove the -DBLIT flag from the Imakefile
				and recompile.

Standard things:

xmkmf : set up a Makefile tailored to your system. Check Imakefile first
to make sure everything is how you want it.

make depend : check dependencies

make jetpack : compile the program

make install : install jetpack and all its files

I tried to write the Imakefile so it would be easy to understand and
modify. The important bits are the DESTDIR variable, which you can set to
wherever you want jetpack to reside, the DEFINES variable which has to
have the -DSCOREPATH  and -DLEVELPATH flags as-is, and the SCOREFILE and
LEVELFILE variables, which you can set to just about any filename prefixes
you like. A word of caution -- the line:


Copies the file in levels/ called 000, to the file you named in LEVELFILE
as the prefix, and 000 as the end. so if you set LEVELFILE = j.lev ,
then the installed level file will be named j.lev000 . Currently level 0
is the only predifined level supplied, being the demo level. If I feel
like it, or if anyone wants to, a level editor would be a "good thing".
However, I'm not too sure I like the idea since jetpack is supposed to be
an arcade action game, and not a "solve each level puzzle" game. But I was
the fool who allowed levels to be read in from files, so I guess I'll have
to live with the consequences. If you want me to write one (or want to do
it yourself) let me know.

There is also a sample Makefile that was created from the Imakefile for
those of you who don't have Imake, and a very simple bare-bones Makefile
for people who get confused by the huge amount of garbage in an
Imake-created Makefile.

There is a man page -- "make" will install it in the specified
man directory. Don't forget to run catman after installing it.