3350 Group Project Requirements

Git and Github.

   Git and Github are a required component of the group project.
   Establish a main github repository that holds your project.
   Give your instructor the URL.

   The size of your project repository should be about 5MB, not counting
   the .git directory itself.

   tips: do not store any .PPM files or large .wav files.
Required components.

   Functional
      Intro screen
      Credits screen
      Scoring system
      Configuration screen
      Communication with server

   Non-functional
      Unit testing components
      Profiling
      Coding style
Individual source code file.

   Each student will create and maintain their own source file
   as part of the group project.

   Naming standard: firstnameL.cpp

   The file will contain functionality related to your group project.
   Your file should have a minimum of 500 to 1000 lines of code.
   This does not include comments, blank lines, etc.

   What not to put in your own file...
      . The main function.
      . Definitions for texture maps.
      . Core functions from the existing framework program such as
        check_mouse, check_keys, physics, render.


   Note:
   Do not make copies of, then rename, the core functions listed above. 
   Your instructor will see it and ask you to remove it from your file.

   The functions that started in your chosen framework should remain
   in the framework and not be migrated to an individual student file.

   Your code must have functions, logical expressions, conditional
   statements, looping, algorithms, unit-testing, profiling, etc.

   Your code should be self-documenting.

   Your code should contain useful comments where appropriate.
Notes.

   Do not use...
   frameworks such as SDL, SFML, GLFW, GLUT, Unity, Unreal, Blender, etc.
   
   The API's above are excellent, but should be studied outside of this course.
   
   Do not...
   include any .cpp source files with the #include directive.

   You may create a header file using the firstnameL.h naming format,
   but please do not include a significant amount of code in your .h file.
   Your .h file should contain struct/class definitions, constants,
   macros, and goodies like that.
Structure of project folders and files.

Place all project source files in the home folder of your
project directory structure.

for example, your home folder should not contain another folder
that contains all of your source files.

Project evaluation is done as follows...

   1. Your github repo is cloned to a local desktop.
      One folder is found and made current with cd command.

   2. The following commands are performed:
         make clean
         make

   3. Your project executable is run.

   4. Your personal source files are viewed within the home folder.
Compile and build standards.

Do not use a #include directive for any .cpp files.

Please do not make your project code require additional flags such
as -std=c++14 or -std=c++17.

In some cases these flags may be used. Please talk to your instructor first.
Audio.
You may include audio in your game project.

Sample source code for audio is in the openalTest framework.

Warning...
One group member should not focus only on audio code. The code is given
to you in the sample, and there is really no logic or programming needed
other than copy and paste.

I mention this here because it has happened many times in this course.
A student will focus their effort on audio, and then end up with only
copy and paste code that has no complexity, logic, or creativity.

If you focus your effort on audio, please include features such as
  . surround sound
  . sound source positioning and velocity
  . Doppler effect
  . multiple sounds managed with a queue or priority queue
  . real-time sound manipulation of pitch and volume
  . etc.

Audio isolation...

Audio requirement for projects <--- please look.

More requirements could be added to this page.