Home Games Projects Blog Contact Private
Network

FlatFrag — Overview

FlatFrag is a multiplayer action shooter game. With its deathmatch fights it strives to be an entertaining arcade-style experience. The game is played from a top-down perspective and contains some 3D effects in order to make it not seem too flat. Currently, only the game mode deathmatch is available, but others will probably be developed in the future.

The game has been built from scratch, though a few important libraries were used in the process. For example, OpenGL is used for fast 3D graphics and SDL provides the game with many cross-platform functions. It is developed by a single person as a hobby project, but it is released under the terms of the GPL (GNU General Public License), which makes it Open Source software. So everybody is able to get the sourcecode and do his own changes to the project.

Features

These are already the features for version 0.4 (not yet released).

This game is almost abandoned, but I plan to make a last release to fix some bugs and annoyances.
  • Multiplayer network fights with up to 32 players
  • 3D graphics from using top-down view with dynamic lighting
  • Bots that like to kill you anytime
  • Supports your operating system: Windows, Linux, etc.
  • Use cars or stationary guns to have an advantage over your enemies
  • Grab all the 14 weapons -- like automatic turrets, living proximity mines and the always-helpful rocket launcher
  • Quite a number of game modes:
    • Story
    • Survival
    • Deathmatch
    • Team deathmatch
    • Capture the flag
  • Get the whole game for free (including the sourcecode)
  • >> More features

Downloads

The latest released version is 0.3, which is an alpha version of the game. You can download it in the formats listed below.

If you want to compile the sourcecode, you might want to make sure you have all dependencies installed. You might also want to check, if your computer fulfills the hardware requirements.

Download 0.3, Source

Download Source This archive includes all source files of the game including resources like textures and sounds. It also includes a makefile and a Dev-C++ project, which enable you to build the game easily in Linux or Windows. Other platforms should (or might) also work fine. You should make sure you have all dependencies installed.
Download currently disabled (4.5 MB)

Download 0.3, Linux

Download Linux This archive contains a compiled version of the game for Linux, which should enable you to run the game right away. Most libraries are included, you only need to have OpenGL installed.
Download currently disabled (6.4 MB)

Download 0.3, Windows

Download Windows This is the compiled and ready-to-run version for Windows. You only need to unzip it and run the game. All necessary libraries should be included (though you need to have OpenGL installed).
Download currently disabled (5.4 MB)

Hardware Requirements

I haven't tested the game on that many machines, but I guess the following are some basic requirements:
  • 1 GHz should be enough
  • at least 128 MB of RAM
  • 3D graphics card with proper OpenGL drivers
  • a sound card
  • a keyboard and a mouse
  • about 10-20 MB free space on hard drive

Software Dependencies

The game is dependent on the following libraries:

Screenshots

ScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshotScreenshot

Older Screenshots

Readme

	FlatFrag 0.3

These are the release notes for FlatFrag 0.3 released on September 14th, 2005. It
should contain enough information, so that you are able to run and play the game
successfully. If that is not the case, see the section `WHERE TO GET MORE
INFORMATION?'.

WHAT IS FlatFrag?

  FlatFrag is a multiplayer action shooter game. With its deathmatch fights it
  strives to be an entertaining arcade-style experience. The game is played
  from a bird's eye view and contains some 3D effects in order to make it not 
  seem too flat. Currently only the game mode deathmatch is available, but 
  others will probably be developed in the future.
  The game has been built from scratch, though a few important libraries were
  used in the process. For example, OpenGL is used for fast 3D graphics and 
  SDL provides the game with many cross-platform functions. It is developed
  by a single person as a hobby project, but it is released under the terms 
  of the GPL (GNU General Public License), which makes it Open Source
  software. So everybody is able to get the sourcecode and do his own changes 
  to the project.
  This project is currently still under active development.

WHICH OPERARTING SYSTEM IS REQUIRED?

  The game has been created with cross-platform-compatibility in mind. The code
  should actually run on all kinds of platforms. No operating system or byte
  order specific functions were used and all network communication is done in
  network byte order. Therefore the game should be able to be compiled and run
  everywhere.
  I'm a bit limited in my hardware equipment, so I'm only able to create Linux
  (x86) and Windows binaries at the moment. Other systems can be used by
  compiling the sourcecode (also see `HOW TO MAKE?').
  So, in short:

  - Linux (x86) (binary and source)
  - Microsoft Windows (binary and source)
  - Other (source only)

WHAT ARE THE HARDWARE REQUIREMENTS?

  I can't really say anything about this yet because the game hasn't been tested
  on that many machines, but I guess the following are some basic requirements:

  - 3D graphics card with proper OpenGL drivers
  - a sound card
  - a keyboard and a mouse
  - about 10-20 MB free space on hard drive
		
ON WHAT SOFTWARE DOES THE GAME DEPEND?

  The game is dependent on the following libraries:
  
  - OpenGL
  - SDL
  - Lua
  - OpenAL
  - Ogg Vorbis
  - PNG
  - zlib

  You need to install all these libraries yourself if you want to compile the
  sourcecode.
  If you use the binary distributions all libraries should be included except
  for an OpenGL implementation, which is normally best provided by your graphics
  card vendor.

HOW TO PLAY?

  In order to play you need to run `ff' or `ff.exe' in Windows.
  If you simply want to play the game you have to join an online server
  because there is no singleplayer mode available at this time. Just launch
  the game and select `Join a Game', after that you can just select `Server
  List' and after a short while you will see a list of servers, which are
  currently running. Select one and you will be connected.
  
  While playing you can use the following keys:

  - ESC: Open the menu.
  - F1: Open the in-game console. (Close it with F2.)
  - W: Move forward.
  - S: Move backward.
  - A: Strafe left.
  - D: Strafe right.
  - Shift: Sprint (W and S will move you faster) (keep pressed).
  - Space: Jump.
  - Tab: Show scores (keep pressed).
  - T: Start writing a text message (send with Return).
  - E: Do some action. For example, you can enter cars, stationary guns or use a
  teleporter.
  - V: Show the voice chat menu. Pressing V another time hides this menu.
  Pressing one of the numbers 1-0 will send one of the voice messages.
  - 1 - 0: Change weapons.
  - M: Magnify the minimap (keep pressed).

  You also need the mouse to play properly:

  - Moving the mouse: aim with the crosshair
  - Left mouse button: shoot
  - Right mouse button: reload
  - Scroll wheel up/down: change weapons

  The game's interface is rather sparse. At the lower left there is all
  information displayed, that is needed to play the game. In order to keep it
  short the numbers are only titled with one letter. These have the following
  meanings:

  - H: Your health.
  - A: Your armor.
  - B: Your breath (it decreases when you sprint).
  - W: The name of the weapon you are currently using.
  - A: The number of bullets in your gun and the number of bullets you have left
  in extra magazines (you have to press the reload key in order to get these
  into the gun).
  - S: Your score. The first number tells how many players you have killed and
  the second one how often you have died.

  Some of this information can also be read by using the three colored bars in
  the lower center of the screen. The red one shows your health, the blue one
  your breath and the green one your armor.
  Additionally there is a yellow bar when you are in a car or a stationary gun.
  It shows the car's or gun's status.

  In the upper right corner there is a minimap of the map you are currently playing
  on. It mainly shows the height of the map's regions and the positions of the
  players. The height is indicated by the brightness in the minimap. The
  brighter a spot is the higher is it. Furthermore, red spots indicate an enemy
  (player) and the green spot indicates your position.

HOW TO CONFIGURE THE GAME?

  Most changeable options can be found in the configuration menu in the game.
  Just select `Configuration' in the game's main menu. From there you can enter
  some submenus that contain all the options that can be changed by using this
  way. The options should be pretty much self-explanatory. Everything can also
  be changed in the file `default.cfg' including some extra options, which
  cannot be found in the menus.

HOW TO RUN A SERVER?

  If you want to start your own game, you only have to run `ffserver' (or
  `ffserver.exe' in Windows). If you are behind a firewall or a router make sure
  that the server's port is forwarded/open. The default port is 29000, but it
  can be changed in the file `server.cfg'.
  When you want to shutdown the server, you should hit CTRL+C in the server
  window.
  The server automatically tries to register itself with the master server. This
  means that it tells the master server your IP address and the port the game
  server runs on. Players who fetch a list of running servers from the master
  server are then able to see your running server and join it. If you want to
  prevent this you should change the entry `net.master_server' in the file
  `server.cfg'. It probably says something like `tzi.de:80'. Simply change it to
  `localhost:80' or something similar. Your server will then be unable to
  contact the master server.

HOW TO CONFIGURE A SERVER?

  The server is configured by changing the file `server.cfg'. It normally
  includes the following entries:

  - server.port: The port the server runs on.
  - server.maps: contains the name of a file, which contains a list of maps,
  that are used by the server.
  - server.roundtime: Specifies how long a round is. The map is changed after
  the end of every round. The number given here represents minutes.
  - server.forcerespawntime: Specifies the maximum time a player may be dead. If
  this time is over, the server automatically respawns the player. The time
  given is interpreted as seconds.
  - server.name: The name of the server as it appears in the server listing if
  you register your server with the master server.
  - server.max_players: The maximum number of players, which may simultaneously
  connect to your server. Currently this number has an upper limit of 32.
  - server.bots: The number of bots which are automatically added when the
  server starts.
  - net.master_server: The hostname and port of the master server. You prabably
  don't need to change it.
  - radmin.password: This is the password you need to authenticate yourself as a
  remote admin (radmin). Also see the next section `WHAT IS RADMIN?'.

WHAT IS RADMIN?

  `radmin' is short for `remote admin'. This mechansim provides you with an easy
  to use utility to manage your server when you are playing on it. It is used
  through the in-game console that you can access by pressing F1 (close it by
  pressing F2).
  The first thing you need to do is to tell the server, that you actually are allowed
  to be a radmin. This is done by entering `radmin_auth("password")' and hitting
  return. The password you have to enter is the one, that you have configured in
  the file `server.cfg' by setting the entry `radmin.password' (see section `HOW
  TO CONFIGURE A SERVER?'). The game then either tells you that the password was
  correct or that it was incorrect. If it was correct you can now use all the
  other radmin commands, which are these:

  - radmin_map("filename.map"): Tells the server to change to the map, that is
  given as the parameter.
  - radmin_kick("playername"): Tells the server to kick the player with the
  given name.
  - radmin_addbot(): Tells the server to add one bot.
  - radmin_delbot(): Tells the server to remove one bot.

HOW TO CREATE A MAP?

  The map editor is directly built into the game. In order to get to it you just
  need to select `Map Editor' in the game's main menu. The editor is not very
  user-friendly (yet). I'm not certain if it will stay the way it currently is
  or if I'll implement some drastic changes. So I refrain from describing the
  procedure of creating a map for the time being.
  It's also possible that the whole map format will change in the future. That's
  why it might be impossible to convert maps from the current format to the then
  used format.

HOW TO MAKE?

  If you want to built the game from its sourcecode the best way is to use
  `make'. This is the preferred way for all Unix-like systems. In Windows the
  best way is probably to use the supplied Dev-C++ project files, which should
  compile cleanly, because I don't know if the Makefiles work in Windows (with
  Cygwin or something).
  So compilig is currently as easy as changing to the game's directory and
  typing `make'. This will built a release version of the game. In case you
  need a debug version you should run `make TYPE=debug' instead. In order to
  clean up you can use `make clean'. Installing a release version is done
  by `make install' (default destination is `/opt/flatfrag/'). If you even want
  to create a distribution version, which is ready to be published (including
  .zip and .tar.gz files), you should use `make TYPE=dist'.

HOW TO HACK THE SOURCECODE?

  I cannot say too much about this right now, but there actually are some comments
  in the code (too few, but still better than nothing). It is probably also
  helpful to have a look at the sourcecode documentation, which was generated
  with the help of Doxygen:
    http://www.tzi.de/~jfk/projects/flatfrag/sourcedoc/
  While hacking the sourcecode, you should keep in mind, that it is licensed
  under the GPL. You can either read the license in the file `LICENSE', which
  should have come with this file, or online at:
    http://www.gnu.org/copyleft/gpl.html

WHO DID THIS?

  It was just me who created this game and is still creating it. My Name is
  Johannes Kuhlmann and I am currently studying Informatics (comparable to
  Computer Science) at the University of Bremen.
  If you want to contact me, the best way is to send me an e-mail. My address
  can be found in the section `WHERE TO GET MORE INFORMATION?' in this
  document.

WHERE TO GET MORE INFORMATION?

  You can check the following sources of information:

  - The game's homepage:
    http://www.tzi.de/~jfk/projects/flatfrag/
  - The Doxygen-generated sourcecode documentation:
    http://www.tzi.de/~jfk/projects/flatfrag/sourcedoc/
  - A blog-like development log:
    http://www.informatik.uni-bremen.de/cgi-bin/cgiwrap/jfk/pyblosxom.cgi/flatfrag
  - You can e-mail me:
    jkuhlmann@gmail.com