1 |
WHAT IS CROSSFIRE? |
2 |
|
3 |
This is a multiplayer graphical arcade and adventure game, that runs on |
4 |
a client/server model. There are clients for Microsoft(R) Windows(TM) |
5 |
and POSIX systems such as Linux and *BSD. To get the most joyful |
6 |
experience, the Crossfire+ client should be used. This client is written |
7 |
in Perl and utilises SDL with OpenGL to provide you with the most |
8 |
immersive gameplay. |
9 |
|
10 |
Crossfire has certain flavours from other games, especially Gauntlet (TM) |
11 |
and Nethack/Moria. |
12 |
|
13 |
Any number of players can move around in their own window on the |
14 |
world, finding and using items and battle monsters. They can choose to |
15 |
cooperate or compete in the same "world". |
16 |
|
17 |
|
18 |
REQUIREMENTS |
19 |
|
20 |
For UNIX, a modern C++ compiler with some extensions is required to |
21 |
compile this game (g++ 4.x works). In addition, you will need the Perl |
22 |
development libraries along with the following Perl modules (the server |
23 |
is tested with perl 5.8.8 and 5.8-maint) and their dependencies. (the |
24 |
minimum versions below may not be up-to-date, the configure script will |
25 |
check them all, though). |
26 |
|
27 |
- AnyEvent >= v2.52 |
28 |
- BDB >= v1.1 **libdb4.5, libdb4.4 might work** |
29 |
- Compress::LZF >= v1.8 |
30 |
- Coro >= v4.13 **SEE IMPORTANT NOTICE BELOW** |
31 |
- Coro::Event >= v2.1 |
32 |
- Crossfire >= v0.99 |
33 |
- Digest::MD5 >= v2.0 |
34 |
- Event >= v1.08 |
35 |
- IO::AIO >= v2.4 |
36 |
- JSON::XS >= v1.5 |
37 |
- Pod::POM >= v0.17 |
38 |
- Safe::Hole >= v0.10 |
39 |
- Storable >= v2.0 |
40 |
- Time::HiRes >= v1.0 |
41 |
- URI >= 1.35 |
42 |
- YAML >= v0.62 |
43 |
- YAML::Syck >= v0.71 |
44 |
|
45 |
**NOTICE**: Crossfire uses an alternative signal stack, so you have to |
46 |
use either the "u"context method (slow) or "a"ssembly when configuring Coro. |
47 |
|
48 |
Furthermore, you will need the following programs and libraries: |
49 |
|
50 |
- gperf, the GNU perfect hash generator >= v3.0 |
51 |
- glib-2.0 >= v2.10 |
52 |
- libpng >= v1.2 |
53 |
- ImageMagick >= v6.0 (possibly higher, depending on its bugs) |
54 |
- optipng => v0.5.5 (http://optipng.sf.net) |
55 |
- pngnq >= v0.4 (http://freshmeat.net/redir/pngnq/53146/url_homepage/pngnq.html) |
56 |
- rsync >= v2.6 (a must have anyways) |
57 |
|
58 |
Your compiler must support the Library Technical Report 1 extensions and |
59 |
the upcoming typeof extension. The GNU C++ compiler >= version 4.0 does |
60 |
support all these. |
61 |
|
62 |
On Debian GNU/Linux, you might get away with something like this for many of the |
63 |
above dependencies: |
64 |
|
65 |
apt-get install gperf optipng pngnq rsync imagemagick libglib2.0-dev libpng12-dev |
66 |
apt-get install libpod-pom-perl libsafe-hole-perl libevent-perl |
67 |
|
68 |
If you want to get sensible backtraces for error conditions at runtime |
69 |
to be logged you also need the external addr2line program (part of GNU |
70 |
binutils) in your PATH. |
71 |
|
72 |
|
73 |
COMPILING |
74 |
|
75 |
Crossfire has been known to compile on a wide variety of systems. It should |
76 |
compile and run on most ISO C++ 200x and POSIX compliant systems. |
77 |
|
78 |
To get generic directions on compilation, read the INSTALL file. |
79 |
|
80 |
|
81 |
INSTALLATION/USAGE |
82 |
|
83 |
Crossfire runs on a client/server model. You will also a client to |
84 |
play. You can either connect to a server someone else has set up, or |
85 |
run your own server and connect to that. There are a number of clients |
86 |
available, but the recommended one is CFPlus (see below for URL). |
87 |
|
88 |
To run your own server, you need to build the crossfire server binaries |
89 |
and install them, then you will have to download and install map and |
90 |
archetype packs: |
91 |
|
92 |
Download both the cfmaps-<version> and cfarch-<version> archives, then |
93 |
use cfutil to install both (the source directories must be writable for |
94 |
this to work): |
95 |
|
96 |
cfutil --install-maps path/to/cfmaps-<version>/ |
97 |
cfutil --install-arch path/to/cfarch-<version>/ |
98 |
|
99 |
Both processes can take some time, depending on your resources :) If you |
100 |
plan to repeat the installation you should specify the --cache option |
101 |
first, which will keep costly-to-generate files around for further runs |
102 |
of cfutil: |
103 |
|
104 |
cfutil --cache --install-maps path/to/cfmaps-<version>/ |
105 |
cfutil --cache --install-arch path/to/cfarch-<version>/ |
106 |
|
107 |
Atfer this you can then run the crossfire executable. This starts a |
108 |
server which you/other people can connect to. |
109 |
|
110 |
|
111 |
WEB SITES |
112 |
|
113 |
The following web addresses have crossfire information that you may find |
114 |
useful: |
115 |
|
116 |
http://crossfire.schmorp.de/ (The main site) |
117 |
|
118 |
http://crossfire.real-time.com/ (The website for the old Crossfire game) |
119 |
|
120 |
|
121 |
REPORTING BUGS |
122 |
|
123 |
First, check the INSTALL file for common problems, and see if yours is |
124 |
mentioned. |
125 |
|
126 |
Bugs should be filed using the following email address: |
127 |
crossfire@schmorp.de |
128 |
|
129 |
When reporting bugs, make sure you include the following: |
130 |
|
131 |
* What version of crossfire did you use? |
132 |
* What type of computer did you use (CPU type) |
133 |
* What is the version of the OS? |
134 |
* What windowing system are you using (e.g. openwindows, X.org, XFree86) |
135 |
* What compiler (and its version) did you use (e.g. gcc, acc)? |
136 |
* Which flags did you give it? |
137 |
* If the bug happens when compiling crossfire, send an EXACT copy of the |
138 |
compiler line, as well as the errors it puts out. Sending bugs of the |
139 |
sort 'it failed with a line like ...' doesn't help any. |
140 |
* If the bug happened while running crossfire: |
141 |
- Include any output before to the bug. |
142 |
- Give a description of what you did before the bug occured. The better |
143 |
detailed the description, the better chance we have of figuring |
144 |
out where the bug happened, or how we can recreate the bug. |
145 |
- If possible, a stack trace from gdb (or other debugger) is very |
146 |
helpful. |
147 |
|
148 |
The more information provided, the better chance of the bug being fixed |
149 |
in a timely fashion. |
150 |
|
151 |
|
152 |
SUBMITTING PATCHES |
153 |
|
154 |
Patches should be submitted to email address: |
155 |
crossfire@schmorp.de |
156 |
|
157 |
|
158 |
PUBLIC SERVERS |
159 |
|
160 |
The best way to find a server to play is to run the client |
161 |
and hit "Server List" in the setup dialog (this varies |
162 |
depending on your client). You can also see a list at |
163 |
http://crossfire.real-time.com/metaserver/. |
164 |
|
165 |
The canonical server for use with Crossfire and CFPlus is |
166 |
crossfire.schmorp.de, port 13327 (default). |
167 |
|
168 |
|
169 |
COPYRIGHT |
170 |
|
171 |
Most files in this distribution are covered by the GNU General Public |
172 |
License, version 3 (COPYING.GPL), or any later version, with the |
173 |
exception of ext/affero.ext, which is covered by the GNU Affero General |
174 |
Public License, Version 3 (COPYING.Affero). Please take note of the |
175 |
special requirements of the Affero license with respect to network |
176 |
servers and configure your network server according to the instructions |
177 |
given in ext/affero.ext. |
178 |
|
179 |
|
180 |
CONTACT |
181 |
|
182 |
The authors can be reached via e-mail to crossfire@schmorp.de |
183 |
|