# PROJECT_PLAN ## Names Daniela Bocanegra (dib4@duke.edu) Kyra Chan (ktc22@duke.edu) Erik Gregorio (eg158@duke.edu) Jackson McNabb (jdm109@duke.edu) Thomas Quintanilla (tq11@duke.edu) * Kyra: * Week 1: Focus on Building Basic Game Structure * Focus on building hierarchy for View classes, e.g. ViewManager, StyledView, ViewScene * For ViewManager, create method that switches between scenes * For StyledView, create setDefaultCSS() method and attachCSS() method * First create HomeScene and GameCenterScene with default Guest user before handling player profiles * Work on using reflection to build GameCenterScene grid of games to select from (will need to use XML reader). * Then work on using reflection to build overall structure of GameScene (will need to use XML reader) for: * Top Menu, which should contain almost the same info for every game (HBox) * Game Menu, which should contain game-specific info about the player's status (HBox) * Game Area (default background image, player character, starting configuration, etc.) * Action Toolbar, which should contain buttons for the user to play/pause game, preferences, and game statuses (VBox) – although these buttons may not be actionable yet * User Toolbar, which should contain the player's info and game settings – some buttons may also not be actionable yet, such as update to premium * Implement high scores feature (on front-end) * Week 2: Focus on Implementing a Few Games + Player Profiles * Create dark mode * Build player profiles * Implement save game / load game feature * Implement customization tools, such as increasing animation speed, default powerups and available characters * Implement more example games (~3 by this point) on front-end * Week 3: Focus on Implementing More Variety in Games * Implement more example games (10 by this point) on front-end * Finish up any other incomplete features * Thomas: * Week 1: Focus on constructing the Frontend and Backend API and bridging them together * Create a list of interactions that would occur between the backend and frontend. * Develop frontendAPI interface with list of commands to bridge the two together. * Construct Controller class to hold FrontendAPI and BackendAPI interfaces * Help Kyra with any UI components needed * Week 2: Work on front end object interaction * Send any object interactions to back end to apply any game rules defined * Handle collisions between objects based on game rules * Help Kyra with any UI components needed * Week 3: Focus on implementing more variety in games with Kyra * Help build UI components needed for each specific game * Design any levels needed for each game. * Help Kyra with any UI components needed * Daniela: * Week 1: Focus on creating all interfaces and implemement them to begin building all necessary components for a basic game. * Create a player object that is controlled by user input that can traverse game area * Begin implementing a full game. * Week 2: Implement more complex environment objecs. Bring together all game components. Have one full game. * Begin working on second game/another variation. * Week 3: Implement final additional features. Implement more games and variations. * Work on implementing levels. * Work on saving and loading game state. * Erik: * Week 1: Focus on creating and defining interactions between objects. * Having enemies and platforms that interact with player. * Begin implementing a full game. * Week 2: Implement powerups. Bring together all game components. Have one full game. * Develop player-power up interactions. * Week 3: Implement final additional features. Implement more games and variations. * Add functionality to enable/disable premium features. * Implement game replay so that users can compete against themselves. * Jackson * Week 1: Develop and augment a simple XML creation mechanic capable of constructing proof-of-concept player databases that can then be read. This includes, when constructed, player usernames and passwords database and game type and basic preferences. * Week 2/Week 3: As soon as functions and features on both the frontend and backend become developed work with devs to inherit data and dynamically change as data is then read mid-run or pre-run. Also, develop alert mechanic per feature to alert users to failures of parsing and allow for reified bug testing. Split up classess depending on direction of developments as development progresses.