Project Requirements Document - 2018-2019 Virtual Event V03 - Software Engineering Team - BPA Technical ...

Page created by Ralph Becker
 
CONTINUE READING
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