Overview For this assignment, you will logically extend the functionality of the Maze Game introduced during lectures, via the modification of the code base as well as documentation and implementation of various user stories. This is a paired assignment.
Timelines and Expectations Percentage Value of Task: 20% Due: 11:55pm Sunday the 5th June 2016 (week 11) Minimum time expectation: 20 hours
Learning Outcomes Assessed The following course learning outcomes are assessed by completing this assessment: Understand the significance of detailed project planning and control, good communication and documentation and the use of appropriate tools in order to provide a quality product Understand the distinction between software engineering and programming, and thus the distinction between a software configuration and a program. Understand the methods and techniques involved in designing, implementing and maintaining an information system, in particular using an object-oriented approach Understand how unit tests are used during software development to assist agile programming techniques such as refactoring Work together in small teams to complete a fully documented, detailed design and implementation of a small business information system Demonstrate skills in designing and implementing an information system
Assessment Details You are required to logically extend the functionality of the Maze Game introduced during lectures, via the modification of the code base as well as documentation and implementation of various user stories. You will use the Boost methodology discussed during lectures, which requires the use of pair programming. Working individually on programming tasks for this assignment is discouraged and will only be approved when necessitated by circumstances. All documentation, other than the customized game map, must be completed individually. The code base provided for this assignment has already implemented the “warm up” and some “sets”. You will be implementing numerous other “sets” for this assignment using the Boost methodology. The “warm down” stage is not required. You are free to take ideas discussed during lectures and implement these in your own version of the code base provided in Moodle for this assignment. This assignment will be marked according to the functionality of your code, in addition to the elegance and extensibility of your design and quality of your documentation.
Note: It is recommended that you spend some time familiarising yourself with the provided code base prior to beginning any work on this assignment. You should start by spending some time exploring the structure of the code to gain an understanding of the roles each class plays within the system and then complete Lab 7. Assignment Requirements In Pairs: 1. Design and implement a custom environment for your maze game. This requires producing your own unique hand-drawn map of the maze game environment and changing the HardCodedData file to reflect the locations and items on your map. At least six (6) locations, including at least one (1) shop, must be included, as well as enough items to allow for proper testing of the game functionality. For example, there must be sufficient items to verify that a player cannot collect an item if the weight restriction has been met. Note: you should not retain the original locations or items from the provided code base in your version of the game. 2. Implement each of the following deliverables / milestones: a. functionality as detailed in Lab 7 and Lab 8 b. commands to manage the various item management commands: i. listItems, getItem and dropItem, to allow listing of all held items, collect a new item and drop a held item. ii. equipItem and unequipItem, to wear / wield a held item, and to stop wearing or wielding an equipped item. iii. purchaseItem and sellItem, to buy an item from a vendor and to sell an item to a vendor. Ensure that weight restrictions are not exceeded and that the context for each command is appropriate. For example, purchasing and selling of items should only occur in a shop. c. basic combat functions, allowing a player to attack or to be attacked by a non-player character (NPC). A player may flee combat or continue to attack until such time as one combatant loses all life points. The end result must not be hard-coded, and neither the hostile NPCs nor player may have their attributes configured in such a way that the final outcome is pre-determined. Note that combat functions should only be available when the player is in the presence of a hostile NPC, and combat may take whatever form is appropriate for your game context rather than being limited to just hits with a weapon. d. Collectable items that, when used, restore life points to a player. The number of life points regained should be determined by the roll of 2 six-sided dice up to the player’s maximum health. You can elect to allow these to be used during combat if you wish. 3. Produce a short video (up to 5 minutes) and upload this to YouTube as an unlisted file. A link to view this on YouTube must be submitted with your assignment. All team members must actively participate (be visible throughout the recording and contribute to the discussion) in the video to: a. Provide a demonstration of the game – how the game play works and how this was implemented. b. Explain the role of design patterns in the game, clearly identifying the functionality where design patterns have had an impact and how this has occurred. c. Reflect on the use of a development methodology in creating the game. How did this assist, or make the development of the game more complicated