Nebula Cards is under new administration.
The project is going to remain focused on the same development model, but the focus for the time being will be on the GUI (plus new GUI developments), particularly the Spades game.
The web site will be overhauled and the source code refactored and further cleaned up a bit. The future CVS versions will be a fork off of the current one.
Expect graphical cards (for the passing and table view views), a more elaborate start-up applet (with optional command-line parameters and possibly a settings file), and a graphical bidding display for Spades.
I have made a new checkpoint release, called v0.8pre4. It is accessible from CVS with the tag nc0-8pre4. This release features a host of bug fixes and design improvements, and it goes without saying that it is incompatible with previous releases.
The most notable new feature is the final solution to the concurrency problems that occur when a new player connects to a game. When a client is added to a game, its Communicator is not instantly made public, as it was before. Instead, the thread that adds the client gets a chance to use the Communicator exclusively, and must then publicize() it. Thus, the new client can be properly briefed before being asked to play a card!... read more
This release has fairly major bugfixes, and some relocation of code. If you're using cvs, make sure to do "cvs update -d".
UIs must be adjusted to use the setPostion(int) method instead of the integer constructor.
I have included support for graphical cards, but I have not tested it.
Also, this release is a checkpoint before some major reorganization of the ruleset code, but more on that later.
This latest pre-release allows local players such as computers to connect to the server without using sockets. This reduces communication overhead for local games and significantly improves the performance of computer "play-throughs."
It was necessary to change the way that NebulaUI's are informed of their position at the table. Instead of using a constructor parameter, the setPosition(int) method is called. This is a significant design improvement because it allows an interface to be constructed before it is assigned a seat. This should improve compatibilty with generic game frameworks such as Ataraxia.... read more
v0.6 is a stepping-stone release. It includes some of the design modifications discussed in the public forums. Hopefully, v0.7 will contain most of them.
This release contains new features for rulesets, and some improvements to the design of the server. In particular, the game logic has been extracted from the serv class into GameRunner. This should facilitate future enhancements to the server, such as supporting multiple games on one port.
The newest release (v0.4) is considered a beta version. Please upgrade and try out the new features.
You may be interested in checking out
CVS tag nc0-4pre2. It contains some
interesting changes that should improve
performance, especially in computer
play-throughs. I would like your
comments and bug reports before I release
the changes as 0.4.
Thanks,
James.
Please upgrade. This release is not backward compatible. Developers, please read the docs in Tableau.java.
OK, forget what I said about no major design changes. I have been receiving lots of good ideas and corrections, and some of them require API changes to implement. It really is to early to lock things in, so be prepared to alter your code if you program for any version 0 release. But you probably knew that already ;-)
You should upgrade, especially if you had problems with the client locking up. New features are provided for rulesets.
Finally, the first release of Nebula Cards.
I have decided to release now because the design has
finally stabilized. Developers may now begin writing
interfaces and rules without worrying about major
architectural changes in the short-term.
Enjoy!
Over the past few days, I have been working on the leave/join functionality of the server, with some success. Beta version coming soon.