Home > cuffs

cuffs

Cuffs is a project mainly written in C++ and TCL, it's free.

A simple 2D game; think real-time worms.

/** @mainpage Fistacuffs @author Chris Craig, John Hoare, Daniel Loftis, Ben Summers

@section Introduction

Hello, and welcome to the Doxygen page for the Fistacuffs project.

First off, for a high-level understand of the project's design, take a look at the appropriate module.

  • @ref Switchbox Explains the usage of the switchbox program.
  • @ref Game explains the high-level running of our game.

Our game has a set of namespaces, the best way to navigate through is to probably look at each namespace.

The Noteable namespaces that our game uses in no particular order is: -# @ref game - @copybrief game -# @ref physics - @copybrief physics -# @ref vectors - @copybrief vectors -# @ref sdl - @copybrief sdl -# @ref cmb - @copybrief cmb

The code is very modular, so to understand the ordering of how everything goes together, look at @ref Pipeline

@section Media

Here we have a set of screen captures and videos from our game

@subsection Launcher @image html launcher.png

@subsection overLobby Overworld Game Lobby @image html lobby.png

@subsection game_battle Game Battle @image html game1.png @image html game2.png

Video of gameplay: http://www.youtube.com/watch?v=D9gdwJg_pa0

@section Building You only need to run the first command if you've checked out this code from a repository. Tarball releases will have had that done for you already.

@verbatim $ ./Bootstrap # Setup the autotools build $ ./configure # Generate the makefiles $ make # Perform the build $ make install # Install the binarys to your system (this currently does not work 100% correctly) @endverbatim

@section dirs Files and Directories

  • /Bootstrap -- Shell script for generating the autotools build.
  • /doc -- All Documentation
  • /switchbox -- A tool for group communication over the network. @see Switchbox
  • /game -- The game itself uses switchbox for networking. @see Game

@section Prerequisites

Here are the Ubuntu packages we are using:

  • libsdl1.2debian
  • libsdl1.2-dev
  • libsdl-image1.2
  • libsdl-image1.2-dev
  • libsdl-mixer1.2
  • libsdl-mixer1.2-dev
  • libsdl-gfx1.2-4
  • libsdl-gfx1.2-dev
  • libboost-dev
  • libboost-thread1.37.0
  • python-wxgtk2.8
  • swig

@subsection Building Doxygen Documentation The output is generated in ./doc/doxygen, and the docs are available online at http://www.cs.utk.edu/~jhoare/cs594ng/doxygen

@verbatim $ make doxygen-doc @endverbatim

@section Coding Style C source files are .c and .h, c++ source files are .c++ and .h++. Style rules for c++ and c are codified by using code beautifiers. Here are the options we use:

@verbatim astyle -Uas4 # for c++ code indent -npsl -i4 -npcs -bli0 -brs -brf -br -nut # for pure c code @endverbatim

We've actually drifted away from this a bit. We've been using this coding style (Horrors!):

@verbatim int main(int num_args, char args) { FORII (num_args) { cerr << args[ii]; if (string(args[ii]) == "omgomgomg") throw runtime_error("omgomgomg"); }} @endverbatim /

Previous:jsFrame