1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459
|
MATANZA - THE SLOGAN-LACKING GAME
1. What is Matanza?
2. Who did Matanza?
3. How can I build and install Matanza?
4. Running Matanza's server
5. Playing Matanza
6. The command line arguments
7. Plans for the future
--------------------------------------------------------------------------------
1. WHAT IS MATANZA?
Matanza is a multiplayer game. In it, every player controls a ship cruising
in space, aiming to destroy the other players (and, eventually, ships
controled by the computer).
By the way, it is pronounced MATANGA, not Matanza.
Currently, the only way to play is through telnet. That's correct, telnet.
Everything is rendered to ASCII art. Wonderful, isn't it? You only need to
install Matanza in one Machine and you can then play from whatever machines
you want, as long as a telnet client is available on them.
We are currently working to fix that, implementing the Matanza Machine
Protocol into the server. It will allow clients to connect through a
different protocol, to display everything using graphics. We've heard of
people interested in creating clients using KDE, OpenGL, Java2D and a few
other graphic libraries. Once they are ready, it will be possible to play
using any of the different available clients.
For the moment, however, the only available option is the telnet client.
Don't let that get you down, only very recently we thought about adding
other clients, as we are very happy with the currently available. Just give
it a try and see for yourself why other clients are just alternatives, not
that important.
Up until version 0.11, the server only ran on Unix platforms. This version,
however, will probably work on any Unix operating system plus a few others.
So far, we have tested it and got it to work in the following systems:
- BeOS
- FreeBSD
- GNU/Linux
- Solaris
- Windows 2000
- Windows 98
- Windows NT
The game is free software, distributed under the terms of the GNU GPL
License. Please see the file COPYING for more information. Yay, you gotta
love free software. :)
It should be noted that the game should not be considered complete yet, as
there are some issues we still have to fix and there are some features still
missing. It should, however, be playable as it is. It should be very
addictive too. Well, it tries.
Please check <http://bachue.com/matanza> for more information on new
releases. You don't want to end up running this release for years. No.
You want to be riding the wave, the BLEEDING EDGE. And you know it.
Finally, if you are in any way interested in Matanza, I invite you to
subscribe to Matanza's mailing list. There you will find developers
interested on listening of your experience with Matanza and any suggestions
you might have. Friendly developers. We don't bite. Or not hard.
--------------------------------------------------------------------------------
2. WHO DID MATANZA?
Matanza is being developed by Alejandro Forero Cuervo
<http://bachue.com/alejo> of the Freaks Unidos <http://bachue.com>.
Information and beta testing for the port to BeOS was provided by Andrs
Felipe Arguello <a-arguel@uniandes.edu.co>.
No other help, other than simple suggestions such as `make it possible to
brake!' has been received.
I know you are going to find out lots of bugs and come up with lots of
wonderful ideas to improve the game. I know you'll also end up wondering
how come I am so clueless as to make this and that the way I did. Well,
Luke, you can download CWEB <TODO: Cweb's URL should go here>, run your text
editor on matanza.w and make all the changes your self, submitting me
patches to receive full credits. That's right, CREDITS.
--------------------------------------------------------------------------------
3. HOW CAN I BUILD AND INSTALL MATANZA?
This depends on what your platform is.
If you are using Windows, you might prefer to obtain the binary
distribution. Otherwise, you will need a C/C++ compiler and you are on your
own. The official binaries are generated using Microsof's Visual Studio.
If this is a binary distribution, it is safe to ignore this section.
To compile and install Matanza in UNIX and BeOS, follow the instructions in
the boring INSTALL file (hint: Standard GNU autoconf stuff).
Matanza needs functionality provided by the following libraries. If you
don't have them installed, Matanza will still compile and run but some of
its features will not work.
libpng:
libpng is required if you want Matanza to support PNG images. This is
strongly recommended, as the PNG format is the format used in Matanza
Universes.
You can obtain libpng at:
<http://www.libpng.org>
If this library is found in your system, the `configure' script will
tell you that the PNG format will be supported, in a message similar to:
Supported image formats: PNG.
--------------------------------------------------------------------------------
4. RUNNING MATANZA'S SERVER.
You must run Matanza's server before anyone can play. This is as simple as
typing `matanza' after it has been successfully built and installed (see
previous section). The Matanza executable accepts some (okay, a lot of)
command line arguments, use `matanza --help' to see a list of them.
--------------------------------------------------------------------------------
5. PLAYING MATANZA.
The first thing you must do is connect to the server. You must connect to
the TCP port `7993' (unless you specified a different port when you ran the
server) of the host running the server. I won't tell you how to do this,
Luke.
Umm.
Don't look at me like that!
Ok, you win. It's probably `telnet localhost 7993'.
Once connected, you'll see some nice (c'mon give us some credits)
introduction. You must hit <RET> (that's <Enter>) to go to the game's main
screen.
At the main screen, you must enter your name. That's right, it can't have
more than 8 letters. Oh, and it can not begin with a number. Enter your
name and hit <RET> a few times.
If you are in Windows' stupid telnet client, the widgets there will look
awful. No colors or anything. We are going to fix that eventually, but...
well, you'll have to learn to live with that for the moment. I'm sure you
can, Luke. After all, you could stand it when that stupid kid at school
used to beat you, remember?
But back to our game, you'll see a ship in the middle of screen. Yes, I
said ship. Okay, I know it looks more like fire effects than a ship, but
with a couple of practice it's going to look better. You just need to train
your self to recognize it.
Or you could think of it as a big moth and of the bullets as moth-spit and
the goal of this game would be to cover your enemies in your spit.
Now, that thing in the middle of the screen is YOUR ship. To control it you
can use the following keys:
`h' and `l': Make the ship rotate. If you are wondering why I used `h' and
`l', get a life (in other words, learn to use Vi). It's a matter of
style. Actually, I got so many complaints from lukes like you that I
added support for arrow keys.
`+' and `-': These allow you to zoom in and out.
`j' and `k': Accelerate the ship. Yes, it can move! Yes, at different
speeds! Okay, `j' may not work (see --brake and --fly-back). More on
that latter. Again, arrows key works as well.
` ' (that's space, dude): Shot. Yay! Bullets! Or (depending on your point
of view) Moth-Spit! Sorry, dude, the telnet protocol doesn't support
sound so there's no BZZZING when you shot.
`b': Shot bullets backwards. Sometimes this doesn't work. More on that in
section 6.
`m': Do you see two little imperfections on your ship's wings? Those are
the MISSILES. You can shot them with `m'. They do a lot more damage
than the bullets, but you have only two, so be careful.
`n': You can also shot SMALLER missiles. You have ten of these.
<Ret>: If you hit <Ret>, you'll be able to write a message to send it to all
the other players. That's correct, you can use Matanza as a full
featured chat and all. You could even have net.sex using it, but don't
even get me started on the subject.
`z': Shows you stats about the game.
`c': Removes the last message from the list of messages.
`C': Cleans the list of messages.
`s': Swaps the position of the list of messages.
`p': Pauses the game.
`v': Toggles whether or not you see the messages. Sometimes you'll want to
disable them.
`i': Make your ship invisible! But beware, you may only make it invisible
for a short period of time, after that it becomes visible again and you
can't become invisible anymore.
`q': Quit the game.
Okay, those are all the commands. For now.
I know, it's kinda pointless to play alone. You'll need to turn your
computer off, go outside and make some friends first. Try, it's not that
hard. Umm. Eventually, Matanza will support computer-controled ships so if
you find it way too hard to make some friends to play Matanza with them, you
might modify the code and add this. Don't forget to send me a patch.
If you look at the border of your screen, you'll notice some characters and
perhaps some asterisks and dots and stuff. Can't see them? Get some other
players in the game. Still can't see them? Umm. Turn your monitor on.
There you go. Yes, those! (If you still can't see them, see the
`--no-radar' option in the next section.) Each character corresponds to
another player in the game. If you point your ship in the direction of the
character (or asterisk), you will reach one of the player's whose name
begins with that character. If the player is too far away, Matanza will
draw the character in lowercase. As it gets closer, it will use uppercase.
Now, if you see an asterisk, it means the player is way to close so you must
get your weapons ready to give the bastard a lesson.
Oh, two final words. Please don't miss your classes playing Matanza as much
as we did programming it. And remember, it's pronounced MATANGA. Learn how
to say it or the gods will punish you.
--------------------------------------------------------------------------------
6. THE COMMAND LINE ARGUMENTS.
So you think it's very stupid to allow players to shot backwards? Would you
like to increase the number of lives each player has? How about zooming out
and making each ship smaller? What about making teams and having each
player select a given team when joining the game? Is the world too big or
too small? Do you want to get rid of the asteriods or perhaps add a few
more? Allow the ships to fly faster? Let them fly backwards? It is all
possible, using command line arguments when you run the server.
The following is a list of important command line arguments; this was last
updated for version 0.12, though some are still missing.
--help
This shows the list of command line arguments and exits.
--version
Use this to know the version of the server.
--max-players=NUM
If you want to make it so the server will allow at most NUM players to
enter the world at any given moment, use this option.
--bold
This instructs the server to use bold characters when rendering images to
ASCII art. It improves the quality of the rendering (as of version 0.9
it still has some bugs).
--imgwidth=NUM
This changes the default image width (for the zoom). The default is 320.
--health=NUM
Use this option to set the maximum damage a ship can take before it is
destroyed. It defaults to 1000.
--mapsize-x=NUM
--mapsize-y=NUM
These options allow you to change the map size. If you make it smaller,
players will come across each other more often. On the other hand, if
you plan to have a lot of players, you might want to increase the size.
The default is 1200 x 1000.
--lives=NUM
With this option you can change the number of lives each player (or team:
see --no-share) gets at startup.
--angles=NUM
During its initialization, Matanza calculates rotations for all its
images (ships, missiles, asteroids, etc.). It uses 64 different angles
by default. You may change this number to increase its quality or
decrease its memory consumption.
--no-chat
If you use this option, you will disallow the chat feature. The only
reason I can think why someone would want to do that would be to keep
newbies from entering the chat buffer and becoming unable to control
their ships. Or perhaps to make some team games more exciting by
preventing the players to exchange information (though I know it would be
very easy to cheat).
--team=STR
If you want to play in teams mode, you will use this option once for
every team, specifing its name. Before joining the game, all players
must select the team they will play in.
--password[=STR]
You can instruct the server to only accept players who know the password.
This might be good for some tournaments.
--teams-safe
This option is only meaningful in teams mode. By default, bullets from a
given player hurt everyone, not only players from the other teams. This
option changes that behaviour and makes it so bullets from a given player
won't hurt players in the same team.
--no-share
This option is only meaningful in teams mode. By default, all the teams
have a pool of lives; when a player dies, he comes back to play and the
team has one life less. When this option is specified, the lives are no
longer shared so each player has its own pool of lives.
--ang-speed-max=NUM Maximum angular speed for ships (try 0)
--fly-back
If this option is specified, players will be acelerate backwards.
--brake
Players will be able to brake using `j' (or the down arrow).
--air
Ships' speed depend on their direction.
--speed-max=NUM
Set the maximum speed for the ships to NUM. A value of 0 makes this
unlimited.
--asteroids=NUM
With this option you can specify how many asteroids you want at a given
moment. If you use `0', you will disable this feature and the memory
requirements will decrease.
--limits Give the world limits; make it end
--no-radar When enemy is away, don't show the direction
--invisible=NUM Allow players to become invisible for NUM rounds
--ppc=NUM
PPC stands for Players Per Connection. With this option, you will be
able to set the number of ships each connection will have. For the
moment, the only supported values are 1 and 2. The keyboard bindings
change and those for a value of 2 are not yet documented.
--bg=PATH
PATH should be the path to a JPEG file. Matanza will load the
information in the file and use it as the background, rather than showing
the dots. This will only work if libjpeg was installed when you compiled
Matanza.
--mapsize-img
This option will be ignored unless `--bg' is also used. It tells Matanza
to set the map's size to be the width and height of the background image.
When used, the options `-x' and `-y' are ignored.
--ship-img=FILE
Through this option you can specify a file name for Matanza to load the
images for the ships from it. The format for the file is very simple,
consult ship.txt for more details.
--------------------------------------------------------------------------------
7. PLANS FOR THE FUTURE
The following is a list of all the changes we would like to implement for
future releases:
Proxies:
Using telnet as the protocol for Matanza uses a lot of bandwidth. To
solve this problem, we are designing a new protocol, MMP. Once it's
ready, we will be able to use proxies for connections.
For example, lets say Machine A and Machine B are only connected through
a slow modem connection. Player A, the owner of Machine A, runs the
Matanza server passing it command line arguments to have it listen on a
given port using MMP. Player B, stuck in Machine B, runs the server
telling it to act as a proxy to the world kept in Machine A. Then both
players connect to the servers running on their own machine.
Termcap:
We should use termcap rather than have the special control sequences
hardcoded.
Aritificial Intelligence
Make it possible to have computer-controled ships.
Colors:
Every now and then someone comes and suggest using colors. I am not so
sure about it.
The problems this might have is that for every character you must use
only one color while we are drawing exactly four pixels. This would
force us to give the same color to all of those pixels. I'm not very
happy about that.
But yes, as long as they are disabled by default, having this option
can't hurt.
Collisions:
When asteroids collide (and when asteroids and players collide), the way
their speeds are modified is very silly. I should get off my lazy ass
and come up with another algorithm.
And also, have something happen when playing in air mode (--air).
Mods:
Make it possible to make mods: sets of files that modify the way Matanza
behaves.
It should be possible, for example, to make a mod `Racer', one where the
players can't damage each other, they are just set on a given track
(crashing against the walls of the track) and their goal is to be the
fastest. Or a mod `RacerDead', a mod like `Racer' where players can
shot and kill each other as well. Or a mod `Labyrinth', where the
players are stuck in a labyrinth and must destroy each other. Or a mod
`CaptureTheFlag', where each team is supposed to steal the other team's
flag. Or a mod `DestroyBase', where each team is supposed to destroy the
other team's big ship (base). Or a mod ...
Multiple Universes:
Make it possible for one instance of the server to handle many different
universes.
Keyboard Bindings:
Make it possible to modify the keyboard bindings. Not globally but
per-player.
Gasoline:
Given a command-line argument, have the players run out of gas. There
should be some way for them to refill their ships (such as staying over
the gas machine).
Fix bugs with certain telnet clients:
I -think- the telnet-server code has its bugs (please, please, please
report them... I can't fix them if I can't find them). It won't work
with certain telnet clients. That should be fixed.
--------------------------------------------------------------------------------
|