Next
Previous
Contents
Overview
From version 2.0g (see
NEWS section) the major overhaul
of xBill code was done. Last changes by Psychosoft were done in version 2.0.
During 2.0g and 2.1 the most noticable changes list:
Added network support
Note: Implemented by subpackage found in ggn
directory, network still
considered *alpha*.
Quick enable: ./configure --with-ggn
Support for network play has been added, although this library was never tested
too much. Moreover real run were done only on Linux systems and so even
when coding was done with compatibility in mind, there will be sure serious
problems when using this library on other systems. These glitches will have to
been sorted out during the future development, if you make any changes, send
them to maintainer (noted as
authors.
Due to this expected incompatibilities and alpha quality of the code, it is
currently disabled by default. If you are brave soul and you want to try it,
please specify --with-ggn
during configuration (“./configure
--with-ggn
”). Any success or failure stories are welcomed, although
depending on the amount of time required, I make no promises about quick fixes
of it. This doesn't apply to working patches which are ALWAYS welcomed and
credited in the accompanying documentation/notes. The chance for the fame is
lying before you! :-)
Added GTK+ widget set support
Since Xaw and Motif were dropped, GTK+ library is required now.
GTK+ is the famous GIMP ToolKit, you can download it from:
http://www.gtk.org/
xBill should be happy with any reasonable versions starting with 0.99.7
,
although latest 1.2
releases are best to use, of course. If you make any
source-level changes and want them to be incorporated into the mainstream,
please try to keep this compatibility, some framework to achieve it can be
found in configure.in
or src/gtk10.[ch]
.
Use of modern configuration tools
Currently this package has integrated usage of the following tools to be as
much cross-platform compatible as possible: gnome, automake,
autoconf, libtool, getopt, gettext (i18n). All the tools
should be transparent to the casual user. If Gnome isn't installed,
non-Gnome aware version is compiled as a fallback. Internationalized
catalogs should really be enhaned with more languages, please send some to the
maintainer. There are very few messages in the whole code so it doesn't take
too long to translate it.
C++ kickoff, converted to plain ANSI C
To maintain wider systems compatibility, C++ was dropped in favor of
ANSI C. Not much more to say about it -- probably only that you should
keep the current coding style when enhancing the code.
Image compression in the main binary
Original xBill 2.0 required a lot of xpm
/xbm
images to be installed
separately along it. With 2.0g and up these images are compiled into the main
program binary. This policy should be made optional at configure time,
volunteers for such change are welcomed. I don't know whether some
compatibility problems may arise in the phase of inclusion during the image
include. To improve the behaviour even more, if zlib
library is found on
your system, it is used to reduce the overall size of the binary (by around
120KB
). zlib
can be downloaded from:
http://www.cdrom.com/pub/infozip/zlib/
Targetting cross for multiplayer games
To support multiplayer gaming, targetting cross was developed
(src/pixmaps/bang.xpm
). This targetting cross remains visible even
during single player games as I found it useful. Possibility of disabling
should be probably made in future versions.
Here's the status of the various ports:
- Mac
Josh Adams <jadams@hyperimage.com>
mostly finished this, based on a beta of 2.0, but never released it for some reason.
- Java
Greg Seidman <anthro@cs.umd.edu>
and
Brian Wellington <bwelling@tis.com>
were working on this, but it's been stalled for a while. We'll finish it at some point.
- XFree86 for OS/2
Darwin O'Connor <doconno@cc.UManitoba.CA>
ported it, and you can get it from
http://home.cc.umanitoba.ca/~doconno/xprogs.html.
- Linux SVGA
Brian Wellington <bwelling@tis.com>
got this mostly working on a beta of 2.0, but it had a couple problems
(mouse support wasn't very good, no menus or windows), and is now hopelessly
outdated. It does have an XPM
and XBM
reader. So, if anyone wants to
finish this (write the missing parts and the new parts), let me know.
- 2.1.2 (6/21/2000)
- RPM packaged
- Bits of text unified as SGML documentation
- 2.1.1 (10/10/1999)
- networking disabled by default
- GTK+ versions compatibility improved
- README.21 written
- 2.1.0 (9/22/1999)
- Automake/autoconf/libtool/getopt-ized
- Gnomized
- databall made Solaris compatible (ballgen implemented)
- internationalized (currently only cs-Czech catalog exists)
- catched various bugs and glitches of 2.0g pre-release
- 2.0g (1/11/1999)
- added GTK+ widget set support,
interface should be compatible with both 1.0 & 1.1,
tested on 1.0.6 and 1.1.12 (1.1 strongly preferred),
xBill no longer relies on X in any way
- dropped support for Athena and Motif in favor of GTK+
- C++ kickoff, converted to plain ANSI C
- added network support (ggn/*), network considered *alpha*
- all images now live in the main executable binary
- image (both XPMs & XBMs) compression support through zlib
- created pixmaps/bang.xpm and its handling as targetting cross
very useful during netgames
- XBILL_HOME replaced by XBILL_SCOREFILE
as external pixmaps/bitmaps no longer exist
- pixmaps/{about,logo}.xpm are now transparent
needed to by GTK+ to look nice
- 2.0 ()
- changed around some timer code.
- removed Athena DrawingArea widget since CoreWidget works too.
- massive code reorganization to improve portability to other
GUIs, languages, etc.
- Some computers are connected by network cables
- When a computer with a network cable becomes infected, it will
release a spark down the cable which will infect the
computer on the other end. Pouring the bucket of water
on the spark will extinguish it.
- Made cursors and various other images look better.
- Removed references to defenestration.dorm.umd.edu, which no
longer exists.
- Added Red Hat logo (fixed broken Red Hat patch).
- Added GNU Hurd logo
- Added Linux penguin logo
- The BSD, Red Hat, Linux, OS/2, and Hurd operating systems are
interchangable on the 2 PC computers.
- The score is now displayed in the playing field.
- Made Athena version far better looking.
- Motif version almost completely works with Lesstif.
- 1.1a (9/22/1995)
- fixed bug where getopt() returned a char instead of an int.
- fixed bug where hitting Enter when entering a high score
corrupted the high score file.
- don't fclose() nonexistant files any more.
- added BSD as another operating system (patches by Joerg Wunsch,
joerg_wunsch@uriah.heep.sax.de)
- it was really easy to play forever by guarding one computer. Now
you lose when there's only one computer left running its
normal OS.
- added man page, written by Pekka Marjola (marjola@trshp.ntc.nokia.com)
- 1.1 (4/16/1995)
- modularized widget code, and added Athena widget support (rewritten
from scratch). The game looks better with Motif, but that's
not too important.
- made pause button only active during game play
- warping to a level starts a game if one isn't being played
- fixed a potentially nasty bug that could cause bills to get lost
- works in TrueColor now (I think - it works in 16 bit mode at least)
- 1.0 (4/5/1995-4/9/1995)
- remembered that the game's not done yet :)
- replaced usleep() calls with XtAppAddTimeout(). should make
the game more responsive
- changed all popup windows to modal dialogs. cleans up code
a lot
- removed Athena support, since it would take too long to finish.
- made a couple pixmaps a bit smaller
- changed colors to gray. why not?
- finally got everything to work with full colormaps
- got rid of app-defaults file. Not really used anyway
- Only uses one button now (any button). Easier to play.
- Some Imakefile fixes
- 0.9 (11/28/1994 - a bit busier during school)
- warp to arbitrary level works
- game pauses when cursor leaves window
- cursor warps to near upper left corner of opened dialog boxes
- redefined both reset and drag to right button (button 3),
added -1 option for people with a one button mouse.
- 1 may slow the game down a bit.
- added -l, -L to specify starting level
- added -v for version info
- improved pictures a lot
- added confirmations for actions
- game now pauses well
- fixed level difficulty stuff
- bill walks at two speeds
- minimizes to an icon (a cool one too...)
- scoring improved
- window cannot be resized now, no matter how hard you try :)
- much cooler animations for bill replacing os
- added high score list
- fixed lots of silly bugs
- made program not die from colormap error (i hope)
- 0.32 (9/18/1994)
- about box works. help almost works also.
- a bunch of bugs fixed
- have an Imakefile now (thanks to Greg Seidman - anthro@cs.umd.edu)
- 0.31 (8/24/1994)
- a few things depend on the level (freq. and number of appearing
bills, number of computers, step size)
- bug where a computer is ignored if off is removed
- menu code written.
- athena code started. this works more or less, but not too well.
i'd recommend using motif and/or a statically linked binary.
- 0.3 (8/23/1994)
- improved responsiveness a lot :)
- menubar does something (new game, pause and quit buttons) if
motif is used.
- levels now exist (barely)
- yet more code cleanup
- 0.22 (8/16/1994)
- when bill leaves the field, he drops the os he's carrying
- status bar widget now does something
- 0.21 (8/15/1994)
- attempt to port code to athena widgets. it compiles and
runs w/o motif now (i hate C macros) a bit
- improved the makefile. an imakefile one day maybe...
- 0.2 (8/14/1994)
- programmers woke up after being asleep since 7/26.
- code structures were fixed very much (again)
- bill faces in the direction he's walking
- bill explodes in a gory shower of blood when clicked on (yeah!)
- bill drops os when killed
- the os stays on the ground when bill is killed if it had been stolen
- the os bounces up and down while bill carries it
- changed default cursor (matias will have to draw a better one later)
- cursor changes during drag and drop operation
- drag and drop works! there's a little hack involved, but not
too bad...
- bill now smart enough to notice that a computer is already
corrupted and find a new one
- game ends if all computers are lost
- 0.1 (7/26/1994):
- masking really works now
- fixed computer pixmap so it looks nice(r)
- randomized computer layout now leaves room for bill to stand on right
- support for bills walking in, standing at computers and walking out
- bills walk towards a specific computer to plunder (primitive ai)
- bill turns off computer, 'steals' native os and installs wingdows
- count of bills remaining is kept: decreased when bill enters screen
- increased if bill leaves
- bill is killable in all states
- computer reset to native os on right button
- cleaned up code and internal structures
- event handling/speed really improved (optimized for the new code)
- server lag problems identified
- linked list unit fixed so that function to move between lists works
- window resizing is still very wrong
- 0.04 (7/25/1994):
- got masking to work (well, maybe not...)
- bill now carries the wingdows box around
- event handling/speed improved
- 0.03 (7/24/1994):
- forgot to initialize a variable. either the stupid aix compiler
initialized it anyway or we were really lucky testing it.
- removed annoying flicker
- has multiple computers on the screen with random OSes
- has multiple bills moving on the screen in random directions
- used sxpm to create smaller .xpm files, minor savings in memoy
and executable size, easier to edit pixmaps
- left button (button 1) removes bills from screen
- right button (button 3) now resets computers to wingdows.
- 0.02 (7/22/1994):
- program no longer guaranteed to run predictably for
longer than nine years (sorry)
- ridiculously improved code style (no really a lot!)
- added linked list unit and support for multiple monsters
- added support for computers
- bill says "POW!!!!!!" on button 2
- improved Makefile
- remembered to include app-defaults file in tar
- 0.01 (7/21/1994):
- Bill moves, and he's in color too. You can even click on
him and he excaims "OUCH!" or "SPLAT!"
- window resizing is very wrong
Next
Previous
Contents