Rasenschach: Soccer simulation

[ bsd3, game, program ] [ Propose Tags ]

Soccer simulation with simple graphics and highly configurable AI


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.3.1, 0.1.3.2
Dependencies array, base (>=3 && <5), containers, convertible, directory, filepath, ghc, monad-loops, SDL, SDL-gfx, SDL-image, SDL-mixer, SDL-ttf, template-haskell, time, Yampa [details]
License BSD-3-Clause
Author Martin Wöhrle
Maintainer mwoehrle@arcor.de
Category Game
Home page http://patch-tag.com/r/martingw/Rasenschach/wiki/
Uploaded by MartinWoehrle at 2013-05-15T20:08:29Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables Rasenschach
Downloads 4915 total (17 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Successful builds reported [all 9 reports]

Readme for Rasenschach-0.1

[back to package description]
===== R A S E N S C H A C H ======

Single player, mouse controlled soccer game with simple graphics and flexible, 
extensible AI. Based on the Yampa arcade and Gerold Meisinger's Yampa/SDL stub.

Backlog:
=================================================================================
No. T A S K                                             S T A T E
=================================================================================
1   graphics rendering for ball and player              done (basics)
---------------------------------------------------------------------------------
2   FRP version of Finite State Machine                 done (basics)
---------------------------------------------------------------------------------
3   basic FRP feedback loop                             done (basics)
---------------------------------------------------------------------------------
4   rendering for game object (score and game time)     done (basics)   
---------------------------------------------------------------------------------
5a  basic version of player FSM                         done (basics)
---------------------------------------------------------------------------------
5b  basic version of game FSM                           done (basics)
---------------------------------------------------------------------------------
6   "kickoff-situation": players move from sideline     done (basics)
    to pre-kickoff base position
---------------------------------------------------------------------------------
7   add sound to player and ball action                 done (basics)
---------------------------------------------------------------------------------
8   basic mouse and keyboard input events (see Yampa    done (basics)
    arcade parser)
---------------------------------------------------------------------------------
9   single player moves around based on input events    done (basics)
---------------------------------------------------------------------------------
10  add ball control to 9                               done (basics)
---------------------------------------------------------------------------------
11  add shooting to 10                                  done (basics)
---------------------------------------------------------------------------------
12  add another player to 10                            done (basics)
---------------------------------------------------------------------------------
13  add "on key down"-FSM to parser                     done (basics)
---------------------------------------------------------------------------------
14  add "take ball from other player" to fsms           done (basics)
---------------------------------------------------------------------------------
15  define core player (base for AI and user player)    done (basics)
---------------------------------------------------------------------------------
16  add bounce logic to player collision                done (basics)
---------------------------------------------------------------------------------
17  define team objects (which will compute AI orders)  done (basics)
---------------------------------------------------------------------------------
18  add team membership and position to player object   done (basics)
---------------------------------------------------------------------------------
19  define bouncing logic for goal post                 later
---------------------------------------------------------------------------------
20  add stunning logic (probably on hard collision?)    later   
---------------------------------------------------------------------------------
21  send proper messages on goal, out (side, end)       done "simple events"
---------------------------------------------------------------------------------
22  set up new game afer goal or out (simplistic)       done "simple events"
---------------------------------------------------------------------------------
23  enhance offensive ai: shoot on goal when free       sprint "playable version"
---------------------------------------------------------------------------------
24  enhance defensive ai: attack when near own goal     later    
---------------------------------------------------------------------------------
25  add goalie (own player object?)                     later   
---------------------------------------------------------------------------------
26  add proper throw in (ball behind player's head)     done "simple events"
---------------------------------------------------------------------------------
27  selection of "designated player" by mouse           later   
---------------------------------------------------------------------------------
28  new key action: pass to designated player           done "playable version"
---------------------------------------------------------------------------------
29  new key action: pass to running player (aim ahead)  later   
---------------------------------------------------------------------------------
30  write TH parser for AI commands                     later   
---------------------------------------------------------------------------------
31  proper FSM for game object                          done "simple events"
---------------------------------------------------------------------------------
32  render something nice for designated receiver       later 
---------------------------------------------------------------------------------
33  new key action: switch to nearest player            later 
---------------------------------------------------------------------------------
34  pause and resume game action                        later
---------------------------------------------------------------------------------
35  enhance offensive ai: pass to better positioned     later 
    player  
---------------------------------------------------------------------------------
36  add multiple round mechanism a la Yampa Arcade:     done "simple events"
    new round would be entered on kick off 
---------------------------------------------------------------------------------
37  controlled player can also throw in (very basic)    done "playable version"
---------------------------------------------------------------------------------
38  AI action: throw in                                 done "simple events"
    - compute spot for throw in
    - aim for this spot (not throw in immediately)
    - throw in and resume play
---------------------------------------------------------------------------------
39  Bug: when ball goes out of bounce, and then ai      done "simple events"
    player touches it, then other team won't take it
---------------------------------------------------------------------------------
40  Bug: when player throws in, he immediately retakes  done "simple events"
    the ball since he is in the way of the ball...
---------------------------------------------------------------------------------
41  Hack: on base out, throw in near the base line      done "playable version"
---------------------------------------------------------------------------------
42  display controlled player blinking                  done "playable version"
---------------------------------------------------------------------------------
43  controlled player can also kick off                 done "playable version"
---------------------------------------------------------------------------------
44  display goal event and score                        sprint "playable version"
---------------------------------------------------------------------------------
45  fix meterToPixel stuff (y axis kind of weird)       done "playable version"
---------------------------------------------------------------------------------
46  player who kicked off or threw in etc. can not be   later
    the first to touch the ball again
---------------------------------------------------------------------------------
47  controlled player can aim for throw in (follow up   later
    to 37)
---------------------------------------------------------------------------------
48  if controlled player throws in, then stop other     later
    player moving_to_throwin from grabbing the ball          
---------------------------------------------------------------------------------
49  Bug: if team consists solely of non AI players,     later 
    this line in ObjectBehaviour / player blows:

        let np = nearestNonAIPlayer myTeam vss pd
          
---------------------------------------------------------------------------------
50  Bug: if kick off goes directly to side out, no one  later
    throws in and the state remains "GSRunning" instead
    of GSSideOut          
---------------------------------------------------------------------------------
51  for test, it would be good to have an editor of     sprint "refinement"
    some kind for game situations (player position,    
    heading and speed, dito for ball)
---------------------------------------------------------------------------------


Taglist:
=================================================================================
T A G                C O N T E N T S
=================================================================================
RSSP-0.0.1           basics
                     "simple events"            
---------------------------------------------------------------------------------