# See the file COPYING, distributed with empire, for restriction
# and warranty information.
-# Note: When the version changes, you also have to change
-# the RPM spec file and the LSM.
+# Note: When the version changes, you also have to change the RPM spec file.
VERS=1.3
# Change the line below for your system. If you are on a Sun or Vax,
clobber: clean
rm -f vms-empire vms-empire-*.tar*
-SOURCES = READ.ME vms-empire.6 COPYING Makefile BUGS $(FILES) $(HEADERS) MANIFEST vms-empire.lsm vms-empire.spec
+SOURCES = READ.ME vms-empire.6 COPYING Makefile BUGS AUTHORS $(FILES) $(HEADERS) MANIFEST vms-empire.spec
-vms-empire-$(VERS).tar.gz: $(SOURCES)
- @ls $(SOURCES) | sed s:^:vms-empire-$(VERS)/: >MANIFEST
+vms-empire-$(VERS).tar.gz: $(SOURCES) vms-empire.6
+ @ls $(SOURCES) vms-empire.6 | sed s:^:vms-empire-$(VERS)/: >MANIFEST
@(cd ..; ln -s vms-empire vms-empire-$(VERS))
(cd ..; tar -czvf vms-empire/vms-empire-$(VERS).tar.gz `cat vms-empire/MANIFEST`)
@(cd ..; rm vms-empire-$(VERS))
-vms-empire-$(VERS).shar:
- shar $(SOURCES) >vms-empire-$(VERS).shar
-
dist: vms-empire-$(VERS).tar.gz
RPMROOT=/usr/src/redhat
-/* (c) Copyright 1987, 1988 Chuck Simmons */
-
/*
* Copyright (C) 1987, 1988 Chuck Simmons
*
C Empire Sources (now called vms-empire).
-Here's my change-log.
-
-1.3: Fri Apr 19 05:13:33 EDT 2002
- Walt Stoneburner's clenup patch addressing all compiler errors and
- warnings, both in debug and in production mode; works with GCC v3.0.3.
-
-1.2: Fri Jul 28 01:10:00 EDT 2000
- The victory-odds table in previous versions was seriously buggy.
- I folded in corrections from Michael Self. I also took changes
- from James T. Jordan <kermyt@earthling.net>, who wrote some
- speedups, added ANSI prototypes, and cleaned up code.
-1.1:
- I colorized and speed-tuned this and added a
- save-interval option.
-
-The rest of this history is Chuck Simmons's original notes.
-
- -- Eric S. Raymond
-
-History
-
- Apparently, this game was originally written outside of Digital,
- probably at a university. The game was ported to DEC's VAX/VMS
- from the TOPS-10/20 FORTRAN sources available around fall 1979.
- Ed James got hold of the sources at Berkeley and converted
- portions of the code to C, mostly to use curses for the screen
- handling. He published his modified sources on the net in
- December 1986. Because this game ran on VMS machines for so
- long, a previous version is known as VMS Empire.
-
- In early 1987 I reverse engineered the program and wrote a
- version completely written in C. In doing this, I used lots
- of structures and defined constants, and I attempted to make
- the code flexible and easy to modify. The algorithms used
- in this C version are completely new, the names of the commands
- have been changed to be more mnemonic, and new commands have
- been implemented. Only the format of the display is the same.
- I suspect that many of my changes are slower and less
- intelligently implemented than the originals. Also, I have
- not implemented some of the original functionality.
- However, my hope is that the commented C sources I have written
- will prove far easier to modify and enhance than the original
- FORTRAN sources. If you make changes for the better, by
- all means send Ed James and I a copy.
-
- The basic game has been heavily modified. I've changed the
- types of objects built, modified the parameters on others,
- and added lots of new kinds of movement functions. Read
- the man page for a complete description.
-
- The file 'bugs' contains lots of ideas for enhancements,
- and describes the bugs I haven't been able to find.
-
-Organization
-
- I have attempted to organize the sources into relatively few
- coherent pieces. The pieces are:
+VMS-Empire is a simulation of a full-scale war between two
+emperors, the computer and you. Naturally, there is only
+room for one, so the object of the game is to destroy
+the other. The computer plays by the same rules that you
+do. This game is the ancestor of all the multiplayer Empire
+simulations out there.
+
+Organization:
empire.h -- definitions of data structures
extern.h -- definitions of global variables
map.c -- find paths for moving pieces
util.c -- miscellaneous routines, especially I/O.
-Debugging notes
+Debugging notes:
From command mode, there are two special commands that
can be used to turn debugging mode on or off. "++" turns
that consistency checking causes the program to run half
as fast.
-Final Notes
-
- Unfortunately, I have a rather powerful mainframe at my
- disposal which is somewhere between 10 and 40 times as
- fast as a 68020 based computer. This means I can afford
- to use extremely inefficient algorithms. I suspect that
- running this program on a smaller machine, such as a Sun
- workstation or Vax will not be overly rewarding. In particular,
- the computer will take a very long time to move its pieces,
- and it may not be desirable to save the game after every move.
- (You mean your system doesn't write out 1/2 megabyte files in a
- few milliseconds?) This second problem is easily fixed, but
- I don't yet have any good ideas for fixing the first problem.
-
- The size of a saved file can be easily tuned by reducing the
- LIST_SIZE constant in empire.h. The only current simple tweak
- for making the computer move faster is to reduce the size
- of a map.
-
-Chuck Simmons
-amdahl!chuck
-
-Ed James
-edjames@ic.berkeley.edu
-ucbvax!edjames
-
- My changes enable color on machines with terminfo color support, for
- a dramatic improvement in appearance and readability of the display.
- Color support, if present, will be auto-detected at compilation time.
-
- They also implement and document a `save-interval' option, addressing
- one of the misfeatures noted in the bugs file.
-
- I've also tweaked the sources so they compile clean under GCC -- they
- assumed the older K&R model of forward reference, causing many warning
- references.
-
- Finally, I've sped up expand_perimeter by cutting down on the
- number of array references it has to compute. This eliminates several
- multiplies from the inner loop, and is a technique that should be
- applied much more widely in the code.
-
-Eric S. Raymond
-esr@snark.thyrsus.com
-(home page: //www.tuxedo.org/~esr/)