Rasenschach: Soccer simulation

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

Soccer simulation with simple graphics and highly configurable AI


[Skip to Readme]

Properties

Versions 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.3, 0.1.3.1, 0.1.3.2
Change log None available
Dependencies array, base (>=3 && <5), bytestring, cereal, containers, convertible, directory, filepath, ghc, GLUT, monad-loops, OpenGL, OpenGLRaw, time, Yampa [details]
License BSD-3-Clause
Author Martin Wöhrle
Maintainer mwoehrle@arcor.de
Category Game
Home page http://hub.darcs.net/martingw/Rasenschach
Uploaded by MartinWoehrle at 2015-05-02T12:44:49Z

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for Rasenschach-0.1.3

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