![]() |
||||
|
One of the first tasks I performed for this project was writing the Requirements Document, in which I describe end-user program features as well as features of the engine available to game developers. There are a few changes that I have made in the final version, compared to this initial feature list, which I will explain here. An important aspect of Solitaire Pack is the game menu, which allows you to choose which game you want to play. The original document specified:
I ended up not liking the way the menu was being displayed, so I decided to make several changes. First, the game menu always keeps track of what is the "active game." Initially, the active game is the first game of the first registered game library. When the user single-clicks on a game link, that game becomes the active game. Double-clicking on a game link hides the menu and starts the game. The list of games is displayed on the left side of the window, with details about the active game displayed on the right. The following information is displayed:
I'm not very satisfied with this UI for the game menu either, but it gets the job done. Future versions of the program would hopefully use a better menu interface. A feature that originally I had planned to leave out of this version was that of sound events. Since I had already developed a component (bmws_cpsounds) which handled all the grunt work of tracking sound events and presenting a user interface for changing them, I decided to add this feature. The game is much more enjoyable when a fanfare plays when you win. An aspect of the developer feature specifications that I changed significantly is that of dealing with the fragment. The original spec stated that fragments are "based upon an existing pile"; you would create a fragment based on a pile, add cards from that pile to the fragment, and then move them to wherever they are supposed to go. After designing my animation algorithm, I decided that I would eliminate the restriction that the fragment can only contain cards from the pile upon which it was based; there is now simply one fragment, to which you can add anything from any pile. Although this ended up complicating other aspects of the program, it is a feature which I found to be useful when implementing the game La Belle Lucie. Besides these things listed here, I haven't deviated much at all from the original requirements document. For more information on what features future versions of Solitaire Pack would support, see Future Enhancements. |
May 9, 2002 | jmhoersc@mtu.edu |