The Rasenschach package

[Tags: bsd3, program]

Soccer simulation with simple graphics and highly configurable AI


[Skip to ReadMe]

Properties

Versions0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.3.1
Change logNone available
Dependenciesarray, base (>=3 && <5), bytestring, cereal, containers, convertible, directory, filepath, ghc, GLUT, monad-loops, OpenGL, OpenGLRaw, time, Yampa [details]
LicenseBSD3
AuthorMartin Wöhrle
Maintainermwoehrle@arcor.de
CategoryGame
Home pagehttp://hub.darcs.net/martingw/Rasenschach
ExecutablesRasenschach
UploadedSat May 2 13:49:20 UTC 2015 by MartinWoehrle
DistributionsNixOS:0.1.3.1
Downloads683 total (50 in last 30 days)
Votes
0 []
StatusDocs not available [build log]
Last success reported on 2015-05-18 [all 2 reports]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for Rasenschach-0.1.3.1

===== 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"            
---------------------------------------------------------------------------------