Welcome to Rush 2005!
Updates
Sorry that code cleanup is taking so long -- should have planned
the project out better from the get-go. I've managed to get Knoppix
running on my laptop, so right now, the default branch now ships with
configure scripts, in an effort to keep the Linux and Windows version
at an even pace. That said, if you're a Linux user, and you see that
Lord Satan has added his take on the current version, go with his and
not mine, since he's more of a Linux expert than I am. Simonc4 and I
are working on getting sqlite support soon, so that will mean one more
dependency (boo) but hopefully an opportunity to get the data more
organized and scalable (yay!).
About Rush 2005
Rush 2005 is a BSD-licensed project to create an American football game
for Windows and Linux in the tradition of Tecmo Bowl and NFL Blitz,
built using the cross-platform SDL game programming library.
The best place to get up-to-date information on this game is the
sourceforge project webpage.
http://www.sourceforge.net/projects/rush2005/
Requirements
Rush 2005 currently uses SDL (the windows dll is included), SDL_image (the windows dlls
are included), SDL_Mixer (the windows dll is included), and BFont (the source code is included). These are all
included under
the LGPL license. The game itself is available under
the BSD license.
Installation
Windows users:
Unzip the package -- you should be able to extract it with a program
like WinZip, WinRar or 7Zip (I recommend the latter, it's free). Make
sure the dlls are in the game's
directory. The executable should run as is.
Linux users: Make sure
that you have the latest versions of SDL, SDL_Image and SDL_Mixer on
your computer. Unzip the package in the destination directory. There is
an executable provided but it's not guaranteed to work. From there, go
into the "src" directory, and run "./configure" and then "make". Don't
run "make install", instead, just type "mv rush2005 ../" to put it in
the game's main directory. Change back to the main directory, and run
the game using "./rush2005".
If you find that there's some trouble with sound, pass the "--nosound"
option at the command line. That should disable all sound. I think that
I've managed to fix some of the sound issues, but it's still a little
raw.
Messy source code is included. Read at your own risk.
Screenshots
http://rush2005.sourceforge.net/Screenshots.html
Gameplay
When you run the program, use the directional keys to move the players. On offence,
use 'z' to snap the ball, and on passing plays, use 'x' to select the
receiver, and 'z'
to throw the ball. On defence, use 'z' and 'x' to change players.
Football is a full-contact sport played between two teams. Rush 2005
uses two teams, with 8 players from each team on the field at one time.
The purpose of football is to try to outscore your opponent, by getting
touchdowns and field goals, and preventing your opponent from doing the
game. On a change of possession, the offence has four chances (called
downs) to try to gain 10 yards. Once the offence reaches that first
down line (marked by the yellow line on the screen), the offence is
given another four downs to advance the ball again. The ultimate aim of
the offence is to try to get the ball into the endzone, which gives the
offence six points, plus the opportunity to score one more point on the
extra point, a place kick from the three yard line. If the offence
fails to reach the first down line after four downs, the ball is given
to the other team. For this reason, on the fourth down the offence
might want to choose to punt the ball downfield (pushing back the
other's team's offence's starting point as far as possible), or, if the
offence is close enough, try to kick the ball between the uprights for
a field goal (which gives you three points). Points can also be scored
by the defence, if they manage to tackle the ball carrier in the
offence's own endzone. This is called a safety, which gives the
defending team 2 points. Whenever a team scores, they then kick the
ball off to the other team. The first quarter and the third quarter
also open with kickoffs.
There are two main types of plays that an offence can execute -- the
running play and the passing play. Both plays start with the offence
lining up on the line of scrimmage (the blue line on the screen). Play
starts when the center hikes the ball to the quarterback, who can give
the ball to a teammate to run, or run the ball himself, or try to
locate a player on the team downfield to pass the ball forward. The
exact moment of the start of play is known as the hike, or the snap,
and can be accomplished simply by pressing 'z'. On running plays, the
ball is given from the quarterback to the teammate automatically, with
the arrow keys used to move the runner. On passing plays, however, the
quarterback needs to choose which receiver to pass to, which is
accomplished by pressing 'x'. The highlighted receiver will be the
player the quarterback passes the ball to. Once a receiver is chosen,
pressing 'z' passes the ball. The quarterback can also choose to run
the ball himself, if there are no receivers open.
On these offensive plays, play ends when the player with the ball is
tackled, runs out of bounds or scores a touchdown, or if a pass attempt
fails. If the ball has not progressed past the first down line, then
the down increments, and the offence tries again.
Playing defence is a little trickier, because instead of dictating the
offence, they have to react to the offence. The arrow keys will move
the current defender, and you can change the defender using the 'z' and
'x' keys. Before the snap, the two keys will simply loop through all
the defenders. After the snap, however, the 'z' key will loop to the
next defender, while the 'x' key will immediately select the defender
closest to the ball.
Between plays, you will be given a menu which allows you to choose what
sort of plays you want to run. Under the diagram, you will see whether
or not this is a pass play or a running play. If it's a passing play,
the various yellow paths show the routes that the receivers will take
when trying to get open. If it's a running play, you'll notice many of
the players have 'X's, which show where they will try to block the
defenders.
When playing offence, try to keep certain things in mind. Passing
plays are a little risky because there's a chance that the defender
will actually catch the ball instead of the receiver, in which case the
possession changes (this is known as an interception). Passing plays,
however, are an effective way to move the ball downfield quickly. Run
plays are less risky when it comes to turnovers, but if the defence is
expecting a run it can be difficult to gain a lot of yardage if they
are constantly ganging up on the running back. When you have the ball
and are trying to run downfield, you can either try to run to the
open-space to avoid the defenders trying to tackle you, or you can run
behind your teammates, who will be trying to block the defenders on the
other team, knocking them down so you can continue past them safely.
Playing defence requires a degree of planning and anticipation. You
have to know when the opponent is going to want to run the ball and
when they'll want to pass, and try to choose a defence that will defend
against the offence's likeliest choice. Running defences will have the
best chance of shutting down the other team's running game, but will
leave the defence open to being beaten by the passing game, and vice
versa.
Current Roadmap
0.1.0 Human can play offence, computer can play defence
0.2.0 Computer can play offence, human can play defence
0.3.0 Complete game from start to finish is playable
0.4.0 Dynamic play selector and viewer
Numbering version for 0.4.x series won't make sense, since some tasks will be ongoing, and I'll be removing bugs as I find them.
0.4.4 Store scores for home and away instead of team1/2
0.4.5 Add pause feature
0.4.6 Show score & down information on play selection screen
0.4.10 Move graphics to subfolder
0.4.12 Perfect Results.html (score by quarter, reference to Pronobozo's website)
0.4.13 Free all graphics
0.4.14 Free all sounds
0.4.11 Remove hardcoding of team names
0.4.8 Clean up modules so that function placement makes sense
0.4.23 Cleanup the in-game screen display (scores, down info, etc.)
0.4.9 Full instructions on how to play/install
0.4.1 Flowchart this futhermucker (in progress)
0.4.2 Build Testing Program
a Deal with diagonal evasion bug (much harder to do now, might readdress later...)
b Better pursuit algorithm on defence
c Deal with jumpies when players don't properly overlap their x/y chase (use a "nudge" boolean for halving dx and dy)
d Fix statistics for pass caught deep in endzone
e Clean up all of ai.c
f Clean up punting/kicking ai
g Remove hardcoding from punts/kicks
h Computer should choose between punting and kicking more realistically
i Clean up the safety
j Clean up turnover in endzone leading to touchdown
0.4.3 Consolidate PLAYTYPE and RECENTPLAY (see main.h) (in progress)
a Fix scoreboard display ("Punting" on kickoffs)
0.4.7 Comment code
a main.c
b main.h
c initilializer.c
d interface.c
e ai.c
f graphics.c
g collisions.c
h output.c
i plays.c
j audio.c
k. setsgets.c
l. extra modules?
0.4.15 Reshuffle game.ball and game members to make more sense
0.4.16 Improve AI Pass Offence
a. The second a mid-range receiver is waving, qb should hit him
b. qb under pressure should either throw, scramble then throw, scramble then rush, or take sack.
0.4.17 Fix the screen pass
0.4.18 Comment out all printf functions
0.4.19 Have an output.txt file that captures all game output
0.4.20 Full SQLite integration
0.4.21 Use #defines for boundaries, image sizes, etc.
0.4.22 Better Field Goal Kicking AI (misses too often right now)
0.5.0 Code Cleanup
0.5.1 Title Screen (finished ahead of time)
0.5.2 Sounds for tackling
0.5.3 Crowd cheering
0.5.4 Whistles on dead balls
0.5.5 Title screen music (finished ahead of time)
0.5.6 Victory Screen
0.5.7 Loss Screen
0.5.8 New game can be played immediately after current game is finished
0.5.9 Credits Screen (finished ahead of time)
0.5.10 Help Screen (finished ahead of time)
0.6.0 Full text, title screen, music, sounds (might have to delay some of this until
post 1.0)
0.6.1 Balance current teams
0.6.2 Add all playoff teams from last year
0.6.3 Add the also-rans
0.6.4 Add more plays
a. 20 plays for pro-formation
b. 20 plays for split-formation
c. 12 plays for 23 defence
d. 12 plays for 31 defence
e. 12 plays for 2231 defence
0.6.5 Add variety to plays for all teams
0.7.0 A full slate of football teams to choose from
0.7.1 Returns on interceptions
0.7.2 Returns on fumbles
0.7.3 Choose direction of punt
0.7.4 Choose direction of field goal
0.7.5 Computer vs. Computer games
0.8.0 Extra features
Release Candidate status (beta stage)
Issues
* Can't do proper returns on turnovers
* Proper AI needed on play selection (going for it on 4th down if losing in the 4th quarter, etc.)
* All aspects of special teams need to be monitored closely for bugs right now
* On passes, sometimes wide open players don't go all the way to the ball (catching on the run)
* Players sometimes get jumpy when they've reached their target points (aren't overlapping properly?)
* Need to doublecheck makefile under Linux
Technical Description:
Rush 2005 is a project to build a fast and fun, cross-platform American football game.
It is being written in C (using Dev C++), and makes use of the
cross-platform Simple DirectMedia Library. The gameplay style will be
similar to Tecmo Bowl and NFL Blitz, with a focus on fast gameplay
instead of over-realistic simulation.
All development is being done by one person right now, but
contributions in graphics, sound files, patches, Linux tests, etc. are
welcome. A working Linux version is the ultimate goal, since Linux
lacks a really fun American football game.
The code is being distributed under the BSD license, and you're free to
do what you want with any of the graphics included with the project. If
you're interested in contributing, I'd be thrilled to help you get
involved, but please note that I won't be trying to enforce any sort of
copyright on the artwork or sound files.
The graphics are 2d top-down. Teams have 8 players a side, with
different personalities and ratings for the two teams. Gameplay is
restricted to directional arrow keys and two action buttons. All
gameplay and interface decisions will be based on this to keep the game
simple. The 1.0 version of this game will involve two teams going
head-to-head, although the long-term vision of this game is a full
season simulator.
Credits
Project Manager: aendeuryu
Developer / Tester: simonc4
Linux Version Maintainer: Lord Satan
Music: Pronobozo
Contributors: mdaniel, spencer
Comments / Questions / Complaints /
Insults
aendeuryu[at]yahoo[dot]com