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