In article <76...@umd5.umd.edu> I wrote:
>
> About 6 months ago I saw a version of the arcade game battlezone
>running on a DECstation 3100. Does anyone know where I can find the
>source for this game?
>
> Mail replies to s...@umd5.umd.edu
xtank != battlezone
I have xtank and enjoy it! But alas it is not battlezone.
The version of battlezone I saw had very few options. All tanks
were the same, and the views were 3D with the only obstacles being
pyramids and robot tanks. However it was still quite enjoyable to play.
So if any one out there knows were the code for this game
exists, let me know.
>> xtank != battlezone
There is a more current version of XTANK out now days. It uses a top
down view currently and has a number of different tank bodies,
engines, etc. It is possible to design your own tanks and mazes, and
there are a number of different "games" you can play.
The sources can be FTPed from
Lance
--
------------------------------------------------------------------------------
Lance A. Brown br...@cs.utk.edu
3500 Sutherland Avenue, Apt. L-303 Graduate Student in Computer Science
Knoxville, TN 37919 Sun SparcStations are Neat!
------------------------------------------------------------------------------
XBZONE is a version of the arcade classic Battlezone, and was
written by Justin Revenaugh at MIT (dated May 1986).
dan
The GPR library is emulated in a compatibility library on top
of X11. The comments at the top of the library ...
/*
* emulate gpr/ftn on top of X11.
*
* this is a gross crock, and I make no apologies for it..
*/
pretty accurately sum it up, but the resulting game is Very Nice. As
far as I can tell, it is bugless - at least we haven't found any in
about a year of playing. Since it grabs the X server, there are some
ways to coax annoying behavior out of it (occasionally twm doesn't
release the cursor - very rare), but overall ...
I'm willing to mail it out to interested people. Someone
willing to put it up for anonymous ftp would be welcome :-). It should
be run through f2c for the best results (many UNIX F77 compilers do
... poor ... things).
dan
big...@inside.happy.meal
Mike McDonald
Has anyone been able to compile this and get it working on a Sun? Thanks.
Peace,
dNb
I got it to run on a Sun 4. The file "f2c.h" didn't seem to come in the
tarfile, I had to get that elsewhere.
I have the forward/back problem too. The workaround is to hit the middle mouse
button, which restores the joystick to the center. As far as I can tell the
bug is that when you move the joystick outside it's "normal range", the
horizontal offset is set to zero. Moving back into range usually fixes the
problem.
BTW, is there any way to quit the game, short of dieing enough times?
Seems like zero amplitude to me. No challenge at all.
> - There are no destructible obstacles.
Did the original BattleZone have these? I don't remember that.
Also:
- No "short" obstacles that you can shoot over.
- Player shots are too slow.
- You can't hide from missiles behind obstacles.
- There are helicopters.
- Enemy tanks seem much stupider, they tend to ignore you entirely.
- You can't see as far.
- I don't think the perspective calculations are correct, distant
objects are not small enough.
Pretty fun game anyway.
I haven't tried to compile it on a Sun, but I compiled it on a VAX and
some friends now regularly run it on Sony News workstations. It was
fairly easy to port: mainly changes in the makefile.
Some comments on the game:
* It looks a lot like BattleZone
* It isn't really BattleZone:
- The player tank is quite a bit slower than in real BattleZone
- Player missiles fly longer than they should.
- Hit testing of shots is not accurate enough.
- The gunsight reacts even if the gun is not loaded. Annoying.
- Missile zig-zags have a smaller amplitude than they should.
- If a supertank is behind you, there's very little you can do.
- You can't use the technique of moving past a tank, backing up
and killing it while it is still turning. If a tank is behind
you, it seems to be able to run really fast. Usually you get
killed even before you get past the enemy and even if you back
out to confront it, its gunsight is pointing right at you.
- There are no destructible obstacles.
- When a tank hits an obstacle, it backs up (as it should) and
and moves only a short distance forward. Also, I think that
the tanks shoot while doing this. In real battlezone, they can
not shoot while trying to avoid obstacles.
* Well done anyway, who wants to improve it?
* Suggested improvements:
- Make it feel more like real battlezone.
- Add a keyboard mode with controls for left and right treads.
- Show highscore list after every game and make it graphical.
Of course, I don't have time to do any of this and I'd hate to touch anything
written in Fortran. I was pleased to see this game, but slightly disappointed
when you couldn't use the same skills as in real BattleZone.
____________________________________________________________________________
/ Juri Munkki / Helsinki University of Technology / Wind / Project /
/ jmu...@hut.fi / Computing Center Macintosh Support / Surf / STORM /
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
Paul Scowen
Department of Space Physics
Rice University
(u...@spacsun.rice.edu)
tom
They zig-zag somewhat, but are awfully easy to kill...
>> - There are no destructible obstacles.
>
>Did the original BattleZone have these? I don't remember that.
>
I believe some could be destroyed. The source code indicates that
this CAN happen, but I have yet to see it.
>Also:
> - No "short" obstacles that you can shoot over.
> - Player shots are too slow.
> - You can't hide from missiles behind obstacles.
> - There are helicopters.
> - Enemy tanks seem much stupider, they tend to ignore you entirely.
> - You can't see as far.
> - I don't think the perspective calculations are correct, distant
> objects are not small enough.
>
>Pretty fun game anyway.
I believe the US Army authorized version had helicopters...
Nice addition in any event...
For those of you having trouble getting it to run. I compiled the
fortran code straight and combined it with gpr.c. this required
me to comment out three lines referencing the variable moon in
gpr.c, but otherwise it works just fine on a multiflow computer.
The problem with shot accuracy is that the thing determines whether
you have hit something or have been hit by using the distance
between objects. In other words, consider yourself and everything
else to be disks. This routine needs to be modified such that
when it detects a hit it should use a more accurate routine to
determine if the hit is for real.
Overall, a neat game though. A multi-user version would be a lot
of fun...
Scott Le Grand aka sml...@psuvm.psu.edu
Yes - Sun 3/60s running SunOS 3.5. In addition ...
As I noted in the README, you will need to retrieve f2c, the
Fortran to C translator, from some nearby archive site. One particular
one (I should have noted this in the README ... *bonk*) is
research.att.com. Send mail to
with
send help
send index for f2c
in the body of the message. This will send you all of the gritty details
on how to retrieve it. f2c contains the two Fortran emulation libraries
in c (libi77.a and libf77.a) as well as the translator. You will need
all of it for xbzone.
dan
Alternatively, you can compile the Fortran source files directly with
f77, provided you have that on your system. Specifically, on a
Sun4 with Sun Fortran1.2, I compiled everything in the f/ subdirectory
with f77, gpr.c with cc (after commenting out a reference to the "moon"
external variable), and linked everyhting with f77 -lX11.
Seems to work just fine.
--
Andreas Stolcke
International Computer Science Institute sto...@icsi.Berkeley.EDU
1957 Center St., Suite 600, Berkeley, CA 94704 (415) 642-4274 ext. 126
> I haven't tried to compile it on a Sun, but I compiled it on a VAX and
---
Is this VAX/VMS or VAX/ULTRIX? I am in the process of porting it to
VAX/VMS/DECWidows and have had some success, every thing works except
the high score stuff and I'm having a few font problems. Anyhow if a
polished VAX/VMS/DECWindows already exists I would like to get a copy,
and save myself some time. If anyone knows if such a beast exists I would
appreciate know where. Thanks in advance...
BTW, I am using the FORTRAN source and not the C translation. Most of the
changes I have made for VMS have been in the GPR.C code.
* Roger Grywalski - Software Developer GRYW...@IDICL1.IDI.BATTELLE.ORG
* Information Dimensions Inc.
* 655 Metro Place South
* Dublin, Ohio 43017
The high-scores table has been circumvented in the source: the code is
still there but the relevent function returns before it gets executed.
I commented out the return and got a high scores table.
Unfortunately, it seems to generate the table in the working
directory. I suspect this would be trivial to solve by putting in a
pathname instead of just a filename.
Here's what you do (note I don't recall my FORTRAN from 8 yrs. ago, so
I just modified the C output from f2c):
In file bzone_scores.c, search for "dl2n" (the user who modified the
code). You will find a code segment like:
/* but, why bother with the scorefile ... (dl2n) */
/* terminate gpr after 7.5 seconds wait (this is repeated below) */
timewait_(&timerelative, clock, &status);
gprterminate_(&c__1, &status);
return 0;
/* print out player's score */
I just put `#ifdef 0' / `#endif' around the whole thing and I got a
scorefile.
Also note the scores are printed, etc. after the game ends, so they're
just put out to the Xterm or wherever you started the game from;
they're not drawn on the screen. Bummer. :-)
Hope this helps ...
--
paul
-----
------------------------------------------------------------------
| Paul D. Smith | p...@lemming.webo.dg.com |
| Data General Corp. | |
| Network Services Development Division | "Pretty Damn S..." |
| Open Network Systems Development | |
------------------------------------------------------------------
In the copy of the source I have, someone changed the program to
terminate before the high score keeping is done. excerpt follows...
c but, why bother with the scorefile ... (dl2n)
c
c terminate gpr after 7.5 seconds wait (this is repeated below)
c
call timewait (timerelative, clock, status)
call gprterminate (.true., status)
return
If you comment out the above three lines from bzone_scores.f the
high score stuff will begin working.
--
If you reenable the score file business, you might also want to fix the
caldecodelocaltime_() function which is only a dummy in the original gpr.c,
like this:
#include <time.h>
void caldecodelocaltime_ (array)
long *array;
{
time_t clock;
struct tm *lt;
(void) time(&clock);
lt = localtime(&clock);
array[0] = lt->tm_year + 1900;
array[1] = lt->tm_mon;
array[2] = lt->tm_mday;