Game Documentation
- Author:
- Jeff Jackowski (jeffj@ro.com)
- To make a simple to play and fun multiplayer networked game.
- Require minimal configuration by the user. Since I haven't completed the menus, the only configuration is team choice. Server discovery works and makes LAN games easy to start.
- Support a number of platforms and not require a new or even mid-range PC. The game seems to run efficently, but needs to be tested again on a PPC Mac.
- Attempt software design and development in C to better understand how to work with languages that are not object oriented/based. In an attempt to maintain simplicity, I did not use an object system. In retrospect, this would have added some more development and difficulty upfront, but would have eased development later by helping to separate the networking and game play code and to make special cases easier to handle.
- To develop a network message system that can supports reliable delivery over UDP. Seems to work, but needs more testing over unreliable networks (ie: not LANs). I originally wanted to resend the most recent information rather than the same data after a timeout, but the design needs to be reworked to support it.
- To support multiple languages on the user interface. The code uses GNU gettext. A Korean translation of all the strings presented on the GUI has been made; it lacks strings that only appear on the console.
- Resizable window
- Must be playable with a minimum window size of 640 x 480
- Avoid I/O blocks that make the program unresponsive
- Terminate the program whenever a quit event is received or the escape key or equivalent is pressed
- Prevent buffer overflows
- Maintain multiplatform support
Several libraries are used by this project. They are available on a number of platforms.
- SDL version 1.2.8 up to but not including 1.3
- SDL_ttf version >= 2.0.7
- SDL_mixer version >= 1.2.7 (optional)
- gettext version >= 0.14.4 (optional). For Windows, see the GnuWin32 page for gettext (needed for development), or the page for libintl (enough to run the program).
- SDL_image version >= 1.2.4 (optional, not used for much, no reason to bother)
- libjpeg (unixes)
- jpeg (Windows)
- libpng
- zlib
The written language used in the source code and the documentation is English. The game will optionally support additional languages for players who don't know or aren't comfortable with English. However, the documentation will only mention the English version of the program's messages for the player. This is all largely because I am not qualified to translate from English to any other language, and I'm the one making this program.
To provide output in other languages, I have decided to use the GNU gettext library. Unfortunately, I cannot get the latest versions to compile on Windows; it seems version 0.15 has been changed in ways that are not meant to work with Windows. Older versions still work, however, and I will try to avoid using recently added features of gettext.
The program will compile with or without gettext and internationalization support. Without support, the English only version will use regular byte-sized characters. With support, all strings will be stored using the platform's wide character (wchar_t). In all cases, all strings sent over the network will be encoded in UTF-16; the English only version will replace characters it cannot properly represent with a question mark.
The program is written entirely in C. SCons is used to build the program on all platforms. Doxygen is used to generate the documentation from Javadoc styled comments. The dot tool from Graphvis is used to generate flowcharts from in-code documentation in addition to the graphs Doxygen creates with dot.
This program is made available under the terms of the GPL. The text of the GPL is in the file gpl.txt and is available from the Free Software Foundation at http://www.gnu.org/copyleft/gpl.html.
Copyright (C) 2007 Jeff Jackowski
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Or visit their website at: http://www.gnu.org/
Included with the data files is the Bitstream Vera Sans Serif font. Information about it and the license agreement is located at http://www.gnome.org/fonts/
Generated on Mon May 28 04:41:38 2007 for Retro Tank Super Attack by
1.5.2