Project Requirements Document - 2018-2019 Virtual Event V03 - Software Engineering Team - BPA Technical ...
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Workplace Skills Assessment Program Virtual Event V03 - Software Engineering Team 2018-2019 Project Requirements Document Page 1 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document LEGAL This document is copyright © 2010-2019 Business Professionals of America. It may be distributed and reproduced only for use in the Business Professionals of America Workplace Skills Assessment Program competition. Page 2 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document TABLE OF CONTENTS Abstract ............................................................................................................................... 4 Version Notice..................................................................................................................... 4 Trademarks ......................................................................................................................... 4 Introduction .........................................................................................................................5 System Architecture .............................................................................................................5 Hardware Requirements..........................................................................................5 Software Requirements............................................................................................5 Detailed Requirements ....................................................................................................... 6 Common Requirements .......................................................................................... 6 Functional Requirements ........................................................................................ 7 User Interface Requirements ................................................................................... 7 Performance Requirements ..................................................................................... 7 Database Requirements ........................................................................................... 7 Project Preview ........................................................................................................7 Timetable ............................................................................................................................ 8 Event Scoring Rubric ............................................................................................................ 9 About This Rubric ............................................................................................................... 9 Project Preview ................................................................................................................... 9 Technical Scoring ...............................................................................................................10 Object-Oriented Programming .............................................................................. 10 Design Analysis ......................................................................................................10 Code Documentation ............................................................................................. 11 Crash Reporting ..................................................................................................... 11 Data Driven Design ................................................................................................ 12 Error Handling....................................................................................................... 13 Logging .................................................................................................................. 13 Gameplay ...................................................................................................................................... 14 Presentation Scoring................................................................................................................... 15 Technical Specifications ............................................................................................................. 16 Event Scoring Totals .......................................................................................................... 16 Glossary .............................................................................................................................. 17 Summary ................................................................................................................................................................ 19 Page 3 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document ABSTRACT After another successful year in the game publishing industry, Cognitive Thought Media is now looking to make a new addition to their game lineup. The Palo Alto, CA based publisher has decided that in order to get ahead in the entertainment industry, they need to create a new intellectual property. Your executive producer at Cognitive Thought Media has asked you to produce a new multiplayer game that is fun to play and not limited to any specific genre. Create a unique and entertaining game using your own themes. Titles can be either 2-D or 3-D, or a mix. Be creative! VERSION NOTICE Document Revision Date Details Release 1.0 08/30/2018 First release This document was created by the SET National Judging Panel for the Business Professionals of America. The SET National Judging Panel has made every effort to ensure that this document is accurate at the time of printing. Obtain additional copies of this document, as well as updated releases, from the website at http://bpatechnical.org. TRADEMARKS All trademarks contained within this document are the property of their respective owners. Page 4 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document INTRODUCTION Cognitive Thought Media’s new initiative will consist of an original platform game. To participate, your team must complete a functional, playable game that features original graphics, unique sound, and engaging gameplay. SYSTEM ARCHITECTURE Hardware Requirements Cognitive Thought Media expects games to run on modern Windows, Mac or Linux personal computers.1 Assume absolute minimum hardware specifications of 1GHz CPU, 1 GB RAM, and several hundred MB of hard disk storage. Software Requirements Cognitive Thought Media is a fully cross-platform games publisher; as such they are not especially choosy about the software frameworks underpinning their titles. However, for the sake of rapid development, your team’s submission must be restricted to the following technologies: • Oracle Java 6 or higher • Javascript2 • Python 2.6 or higher • Ruby 1.8 or higher • Microsoft C#, C++ • Unity • Objective-C • Oracle Express 11g • Microsoft SQL Server • Oracle MySQL • PostgreSQL • SQLite 1 Applications should be developed for desktop operating systems only. Do not submit a project for a mobile device without prior authorization from the SET Judging Team. 2 The use of JavaScript is limited to non-web applications. Browser-based usage is prohibited. Page 5 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document Use of game development frameworks (e.g. XNA, Monogame, Unity, pygame, cocos2d, et al.) is permitted if and only if the framework is freely available for educational or non-profit use.3 The use of paid proprietary development frameworks is expressly prohibited. Additionally, Realm Crafter and other “programming light” tools that provide a ready-made gaming engine and/or graphical assets are also prohibited. Submissions will be judged on original content and code quality; the more of the game a team writes from scratch, the more likely they are to succeed. Teams that choose to use a game development framework must clearly show the extent of their original work via source code comments. DETAILED REQUIREMENTS Common Requirements Titles must display publishing and development credits upon startup, followed by a title screen. The publisher credit for Cognitive Thought Media must display first, followed by credit to your development team; be creative! The title screen should display the name of the game and present the player with options to begin playing, adjust options (if any), view instructions, or quit the application. Gameplay screens should consist of scrolling tiled sprites or textures if the team decides to make a 2D game or models if a 3D game. Cognitive Thought Media titles should feature original sounds for various actions such as selecting a menu option, level music, achievements, receiving damage, or player end of life. These sounds can be as simple as square-wave beeps in various pitches, but Cognitive Thought Media encourages developers to be inventive and inspired in coming up with unique and compelling audio effects. During gameplay, players should be able to access a menu screen. The contents of this menu should be contextual to the game your team creates, but at minimum the menu should allow the player to save the game (for loading and continuation of play later), exit to the title screen, and exit the application. 3 Use of Epic Games’ Unreal Development Kit (UDK) under any circumstances is prohibited and will be grounds for disqualification. Page 6 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document Functional Requirements The game title should consist of multiple levels of difficulty. It is up to the team to be creative in the level and difficulty design. User Interface Requirements The gameplay user interface of the game should not only provide a player with a viewport into the game level, but it should also display vital information to the player. Data such as the high score, current score, upcoming items, etc. should be presented in a clear, useful manner. However, information overload is to be avoided. Only display information that is immediately useful and necessary for a user to play and enjoy the game with a minimum of confusion. Performance Requirements Given the minimum hardware specifications cited above, Cognitive Thought Media titles should be lightweight and performant. At no point during the runtime of your game should the frame-rate dip below 30 frames per second (FPS) except during loading screens and startup. Database Requirements Each Cognitive Though Media title should feature local file or database storage of play session data. A video game consists of many related objects, and a common way to persist the state and relationships of these objects is by serializing them for storage in a flat file or within a database. Should a database be employed, teams should familiarize themselves with normalized database design principles and at all times attempt to adhere to at least third normal form (3NF)4. Project Preview As is the standard in the video game industry, a preview of the project is to be submitted. This preview may be a written report, an audio piece, a video recording, or a combination of any of the previous mediums. All team members must be completely defined. Use this to showcase your current progress, such as any concept art, levels, or ideas. Whether you have started full development or not, this project preview is meant to provide a detailed outline of your project, its design, its development, and its timeline. Be thorough! Previews should last no longer than 10 minutes. 4 Wikipedia: Third Normal Form (http://en.wikipedia.org/wiki/Third_normal_form) Page 7 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document TIMETABLE (FAILURE TO MEET ANY DEADLINE WILL RESULT IN IMMEDIATE TEAM DISQUALIFICATION) Date Details September 1, 2018, 12:01AM EST Team registration opens November 9, 2018, 11:59PM EST Team registration closes December 23, 2018, 11:59PM EST Project preview submission deadline January 25, 2019, 11:59PM EST Final project submission deadline February 11-13, 2019, 11:59PM EST Presentation scheduling February 14 - March 1, 2019 Virtual Presentations All teams eligible for presentation scheduling will be notified via email after the final project submission deadline. All submissions will be handled online via the website at http://bpatechnical.org/ If you or your team encounter any issues or have any questions about the event timetable or the submission process, please contact the Software Engineering Team contest and website administrator at admin@bpatechnical.org Page 8 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document Event Scoring Rubric ABOUT THIS RUBRIC This rubric will be used by the SET National Judging Panel to score submissions to the Virtual V03 - 2019 SET competition. Points will be awarded for completeness, efficiency, accuracy, and demonstration of competitor mastery of critical software engineering concepts. We invite you to use this rubric as a guide as you plan your project in order to maximize your potential score, but we also encourage all competitors to be creative and inventive in the development of their applications. Best of luck to all the competitors! PROJECT PREVIEW (100 POINTS) Below Evaluation Item Average Good Excellent Average Explains design of media elements (sounds, graphics, 1-3 4 – 10 11 - 20 21 - 25 etc.) Explains design of game and game 1-3 4 – 10 11 - 20 21 - 25 mechanics Explains project workflow and team 1-3 4 – 10 11 - 20 21 - 25 roles Explains how the code will be structured 1-3 4 – 10 11 - 20 21 - 25 Page 9 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document TECHNICAL SCORING (475 POINTS) Object-Oriented Programming (100 points) Below Evaluation Item Average Good Excellent Average Proper class design and organization 1-3 4 - 15 16 - 27 28 - 30 Code Reuse (minimize code duplication) 1-2 3 - 10 11 - 18 19 - 20 Proper use of encapsulation 1-2 3 - 10 11 - 18 19 - 20 Proper use of inheritance 1-3 4 - 15 16 - 27 28 - 30 Design Analysis (40 points) Below Evaluation Item Average Good Excellent Average Data Flow Diagram(s) 1-4 5 - 20 21 - 36 37 - 40 Page 10 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document Code Documentation (70 points) Below Evaluation Item Average Good Excellent Average Comment blocks explaining classes, methods and complex 1-4 5 - 20 21- 36 37- 40 sections of logic Provide an in-game tutorial or 1-3 4 - 15 16 - 27 28 - 30 walkthrough for instructional purposes Crash Reporting (50 points) Below Evaluation Item Average Good Excellent Average Generation of crash reports (via text file or dialog box) on 1-3 4-15 16-27 28-30 application failure Option to email crash report on application 1-2 3 - 10 11 - 18 19 - 20 failure Page 11 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document Data Driven Design (90 points) Below Evaluation Item Average Good Excellent Average Application makes use of data driven design for runtime settings via flat 1-3 4 - 15 16 - 27 28 - 30 file or database Session data (saved games, high scores, etc.) are stored via flat file or 1-3 4 - 15 16 - 27 28 - 30 database for later reuse Application makes use of data driven design for game content (levels, power ups, enemy types, 1-3 4 - 15 16 - 27 28 - 30 etc.)via flat file or database Page 12 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document Error Handling (65 points) Below Evaluation Item Average Good Excellent Average Proper use of error handling techniques 1-2 3 - 10 11 - 18 19 - 20 Proper use of exception handling 1-2 3 - 10 11 - 18 19 - 20 techniques Clear user alerts on recoverable and non- 1-3 4 - 10 11 - 20 21 - 25 recoverable error conditions Logging (60 points) Below Evaluation Item Average Good Excellent Average Log system events to dedicated text file for 1-3 4 - 15 16 - 27 28 - 30 debugging Log system errors to dedicated text file 1-3 4 - 15 16 - 27 28 - 30 Page 13 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document GAMEPLAY SCORING (150 POINTS) Below Evaluation Item Average Good Excellent Average Interface Design 1-3 4 - 15 16 - 27 28 - 30 Inclusion of Audio 1-3 4 - 15 16 - 27 28 - 30 Logical Controls 1-3 4 - 15 16 - 27 28 - 30 Amount of Content 1-3 4 - 15 16 - 27 28 - 30 Lasting Appeal 1-3 4 - 15 16 - 27 28 - 30 Page 14 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document PRESENTATION SCORING (200 POINTS PER JUDGE) Below Evaluation Item Average Good Excellent Average Explain the design and development process from start to finish. 1-5 6 - 10 11 - 15 16 - 20 Explain the flow of data (game saves, high 1-5 6 - 10 11 - 15 16 - 20 scores, etc.) Explain the design of game and game 1-5 6 - 10 11 - 15 16 - 20 mechanics Explain the use and design of media elements (sounds, 1-5 6 - 10 11 - 15 16 - 20 graphics, etc.) Explain the software engineering principles 1-5 6 - 10 11 - 15 16 - 20 utilized Explain how the game is innovative 1-5 6 - 10 11 - 15 16 - 20 Team offered clear and direct responses to interview questions 1-5 6 - 10 11 - 15 16 - 20 Demonstrate the entire team’s role in the development of the 1-5 6 - 10 11 - 15 16 - 20 game Presentation quality and style 1-5 6 - 10 11 - 15 16 - 20 Presentation lasted no more than 10 1-5 6 - 10 11 - 15 16 - 20 minutes Page 15 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document TECHNICAL SPECIFICATIONS SCORING (75 POINTS) NOTE: Specification points are awarded once per team by the event proctor, not by individual judges. Teams will be awarded points for specifications in full or not at all, i.e., these are “all or nothing” point awards. Evaluation Item Points Awarded Project submission includes a manual containing directions for compiling/building and explains the 50 features of the submission Installer included for project application. 25 EVENT SCORING TOTALS NOTE: Technical Specification points are awarded once per team by the event proctor, not by individual judges. Final Project Preview, Technical, Gameplay, and Presentation points are awarded by the average judge score for that category. Scoring Category Points Awarded Project Preview 100 Technical Points 475 Gameplay Points 150 Presentation Points 200 Technical Specifications 75 TOTAL 1000 Page 16 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document GLOSSARY OF TERMS/CONCEPTS USED In order to help avoid as many questions as possible, included is a collection of terms and ideas used in the rubric that may be unfamiliar to new programmers. How can I reuse code? Remember that programming in Object-Oriented Programming is largely about delegating tasks to certain objects. Therefore, similar code chunks should be delegated to an object, a function, or a static library class (or singleton, which is where a non-static class has a single static object constructed that is accessible publicly). Check for duplicate code regularly! Doing so will drastically increase the flexibility and readability of your code. What is inheritance? Inheritance is where the features of a parent class are shared by its children classes. Consider an animal class. This is logical, but in the real world there are no entities that are solely animals. By using inheritance, an animal can be expanded to add more features or refine behaviors, such as a Welsh Corgi being a Dog which is an Animal, where a Welsh Corgi has the traits and behaviors of both a Dog and an Animal. This refined behavior comes largely from polymorphic code, where previous behaviors (functions) can be overloaded to something more suitable. Through polymorphism, an object can be treated as its parent class, but when an overloaded function is called the child’s version will be executed instead of the parent’s version. If done properly, this allows new types to be handled in the same way as old types, as long as both types share the same parent class. The inheritance hierarchy does allow for some unexpected behavior, however, which may introduce hard to fix bugs. As such, it should only be used when a “child is a parent” relationship is evident, such as a “Welsh Corgi is a Dog.” What is encapsulation? Consider that an object is meant to operate largely as a “black box”. Someone using that object should not be required to know exactly how it works in order to use it. This is done largely through making certain fields and functions private and making methods (or properties in languages like C#) to retrieve and alter internal data. If you have an object, make it do the work! If it is necessary to write a substantial amount of code in order to use an object, more encapsulation is likely required. However, too much encapsulation can stifle code flexibility. In this case, it might be wise to use inheritance to make the object more flexible while maintaining the “black box” utility. What is Data Driven Design and why is it important? Data Driven Design is everywhere in the gaming industry. Consider a level editor. A level can be created, modified, saved to a file, and then loaded by either the editor at a later time for further editing or the game itself to be played. Without a level editor, levels would have to be created in code, which would be rather unintuitive for level designers and make team work an absolute nightmare. Essentially, Data Driven Design is having data stored in files that can be changed in order to determine what will occur at runtime rather than defining each occurrence in code. It also allows for game mods, which greatly expands the life cycle of a game. Games like Oblivion and Skyrim are still regularly played despite being relatively Page 17 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document old titles because of mod support and strong content editors that are readily available. Developing these tools, however, can greatly expand the amount of time necessary to finish a project. If a feature will only be used occasionally, it is likely not necessary to develop a toolset for it, but for content like levels and items it is absolutely vital to quick development to develop a toolset. What makes an error recoverable versus non-recoverable? Consider an application that has the dimensions for the screen saved in a file, and then loads those settings on startup. If that file is no longer there, the application has to deal with insufficient data. The screen could be made using default settings, which are then saved in a file for next startup. Thus, the error would be recoverable. Otherwise, the application would not have enough information to create the screen and a non-recoverable error would occur. A non- recoverable error could also occur when attempting to load an asset that is not present. The asset is required for proper runtime, and this data cannot be constructed during runtime. Thus, the error would be non-recoverable. Why is Crash Reporting so important? So, imagine you are playing a game and a crash occurs. Anger ensues. You might start questioning the competence of the developers. If it happens enough you might no longer play games created by that development team. This is really bad for developers, and crash reporting allows a way for developers to find out exactly what caused a crash and then fix it. By making a strong crash report system, bug fixing becomes significantly easier. Perhaps the crash report emails the development team, sending log files of both system events and previous errors, as well as a description of what the player was doing at the time of the crash. Being thorough in reporting will make it substantially easier to find bugs! Also, being able to vent out in a “what were you doing at the time of the crash” does give some satisfaction to an angry player. Page 18 of 19
Virtual Event V03 - Software Engineering Team Project Requirements Document SUMMARY We hope that you choose to participate in the challenge Cognitive Thought Media has presented. In creating a fun, functional and unique game for players of all ages, we feel that development teams will be engaged and inspired to meet and exceed our project requirements while honing their skills for further projects in the future. Colophon The text font is Microsoft Georgia. The heading font is Linotype Neue Helvetica. Page 19 of 19
You can also read