Skip to content
spikefinger edited this page Nov 28, 2013 · 21 revisions

Hardware

  1. Physical
    1. Graphics card with 1gb GDDR3 and capable of DirectX 9 or later
    2. Input Devices:
      1. Keyboard
        1. W, A, S, D (Up, Left, Down, Right)
        2. SPACE (Use thrusters)
        3. Left SHIFT, Right SHIFT (cycle weapons left, cycle weapons right)
      2. Mouse
        1. Move camera by moving the mouse
        2. Left Mouse Button (Fire weapon)

Hardware abstraction layer

  1. Unity3D
    1. DirectX 9 graphics API
    2. FMOD sound API
    3. Scripting in C# will be used

User interface

  1. Unity's input handler will monitor input and call appropriate event
  2. A bar across the top of the screen will show how much power is left
  3. A start menu will be show at the beginning
  4. A brief help section and credits section will be included in title menu

Graphics engine
Unity 3D

  1. Game Engine Overview for J.U.N.I.O.R.
    1. Full 3D
    2. Adjustable viewpoint
    3. GUI interface or coding
      1. Uses JavaScript or C# for scripting purposes
      2. Full built-in terrain modeler
      3. Custom material editor
    4. Core architecture built using C/C++
    5. Various supported file types
      1. Exported: .FBX, .dae (Collada), .3DS, .dxf and .obj files (J.U.N.I.O.R. uses FBX pipeline)
      2. Proprietary: 3DS Max, Maya, Blender, Cinema4D, Modo, Lightwave & Cheetah3D files
  2. Advanced features
    1. Mecanim
      1. Enhanced control over character animation
      2. Mocap support
      3. Blend trees and state machines
    2. Material Handling
      1. Import materials from 3D packages for reuse
      2. Built-in shaders and custom shader support
    3. Shuriken Particle System
      1. World collision functionality for particle effects
      2. Curve editor for fine tuning
      3. Adjust gradient changes over time
    4. Asset Store
      1. Thousands of pre-built assets available online

Sound and Music engine

  1. Function of sound
    1. Effects to enhance reality
    2. Ambience
    3. Clues about what to do
    4. Clues about what is about to happen (but be careful)
    5. Sets appropriate mood
    6. Enhances immersion
  2. Audio File Types
    1. Wave (high quality, memory intensive, fast)
      1. Used for quick sound effects
        1. Weapon sounds
        2. Item interactions
    2. MP3 (high quality, compressed, slower)
      1. Supports 2 simultaneous channels
      2. Music tracks
        1. Background loops
      3. Voice overs
    3. AIFF (high quality, memory intensive, fast)
      1. Similar to Wave
      2. Supports metadata (i.e. album/track info and cover data)
    4. Ogg (high quality, compressed, slower)
      1. Similar to MP3
      2. Free, open source (no licensing required)
      3. Better at low bitrates (64 kbps) than MP3
      4. Supports up to 256 simultaneous channels\
    5. J.U.N.I.O.R. will use Wave for sound effects and MP3 for music
  3. Special features
    1. Audio listener
      1. Acts similar to a microphone
      2. Usually placed at camera to receive environment sounds
    2. Audio source
      1. Plays back audio clips
      2. Can play 3D sound
      3. Reverb Zones, applies reverberation

Configuration system

  1. Unity automatically adjusts demand based on player hardware
  2. Can adjust to player preferences
  3. Preferences can be saved
  4. J.U.N.I.O.R. will not require advanced adjustments
    1. Playable on most systems

Online help

The online help is based on wiki system in which changes and notifications can be easily changed to streamline errors correction, changes, and player tips. The online resource also includes a forum that players can help each other and exchange notes and will be heavily monitored by the development team. Online help sections:

  1. Legal Requirements
  2. Installation
  3. Movement and Controls
  4. Storyline / History
  5. Reference
  6. Updates and Error Corrections
  7. Player Tip
  8. Forum

Game Data

Scenes include the following:

  1. Loading Screen
  2. Main Menu
  3. Load Saved Game Screen
  4. Credits Screen
  5. Start New Game Screen
  6. Are You Sure You Want to Quit Screen
  7. Level One Scene
  8. Level Two Scene
  9. Level Three Through Four are in the Same Scene
  10. You Have Destroyed Scene
  11. You Have Won Scene

Objects include the following:

  1. Loading Screen Background Image
  2. Loading Progress Bar
  3. Main Menu Background Image
  4. Start New Game Button
  5. Load Saved Game Button
  6. Help Button (Launches Online Help)
  7. Quit Button
  8. Credits Button
  9. List of Saved Games
  10. Load Game Button
  11. Return to Main Manu Button
  12. Credits Screen Image
  13. Start Game Screen Image
  14. Cut Scene into Level One

Objects:

  1. Level One Terrain
  2. JUNIOR Hero Robot
  3. Rocks
  4. Cave Entrance
  5. Skybox
  6. Creators
  7. Energy Creates (Health)
  8. Empty Creates
  9. Practice Targets
  10. Anti-matter Cell
  11. Lightning Power-Up
  12. Lightning
  13. Laser Cannon
  14. Pulse Cannon
  15. Dr. Sinister
  16. Super Machine
  17. Cannon Disc
  18. Energy Meter (HUD)
  19. Current Score (HUD)
  20. Weapon Selection (HUD)
  21. Dr. Sinister’s Ship
  22. Junior’s Ship
  23. Laser Cannon Power-Up
  24. Ion Cannon Power-Up
  25. Blaster Weapon
  26. Lightning Weapon
  27. Ion Weapon
  28. Blaster Bot
  29. Fire Bot
  30. Heavy Laser Bot
  31. Alien Bush
  32. Alien Tree
  33. Static Light Post
  34. Level Two Cave
  35. Level Two Platform 1
  36. Level Two Platform 2 (Moving)
  37. Level Three Cave

Audio Objects:

  1. Level One Theme Music
  2. Level Two Theme Music
  3. Level Three Theme Music
  4. Blowing Wind
  5. Hail
  6. Rain
  7. Thunderstorms
  8. Button Click Sound
  9. Blaster Sound
  10. Lightning Weapon Sound
  11. Fire Sound
  12. Eerie Music
  13. Bot Sound 1
  14. Bot Sound 2
  15. Bot Sound 3
  16. Footsteps
  17. Shield Power
  18. Thrust Power
  19. Dr. Sinister Suspense Music
  20. Exploding Sound 1
  21. Exploding Sound 2
  22. Exploding Sound 3

Event handler

Audio events are handled in only a few ways. Entering a scene will induce that scenes theme music. Eerie Music will be played when no other music is played at randomly spaced out intervals. Weapon audio will be played what the appropriate weapon is used, and this includes shields and thrusters. Enemy bots will make random sounds as well as sounds as when the bot moves, uses weapons, and explodes. The click sound will be used when clicking on buttons in the menus and when Junior switches weapons.

Enemy bot event handing will be very basic. The bots will roam around in a predefined area and will use the terrain mesh collider to stay on the terrain. If the player gets within the range of a bot it will fire upon the player. If the player shoots at a bot the bot will get within range and shoot at the player. If a shoot from a bot destroys the player the bot will do a victory dance. If the player destroys a bot the bot will start a death animation and then die adding a point to the player.

The player roams around using the keys and mouse, and will collide with in game objects. The player interacts with the ground terrain collider allowing it not to fall through the ground. When shields, thrusters, or weapons are used the energy is removed from the player and is reflected in the HUD. If the player is destroyed the points, energy, shields, and position is reset and the death animation is played.

Logic engine

  1. Game Logic
    1. Based on Open Source .NET platform, Mono.
  2. Mono
    1. Allows users to create crossplatform applications:
    2. Examples: PC, Windows, Mac Windows, Linux, Sony PS3, WII.
    3. Based on Microsoft.net framework, language C#
    4. Allows for runtime implementations.
  3. Mono Runtime
    1. Provides Just in Time (JIT)Compiler:
    2. This compiler improves runtime performance
    3. Ahead of time (AOT) compiler:
    4. Improves compiler performance by completing the execution prior rather than during such as JIT compiler.
  4. Scripting and embedding
    1. Allows Mono runtime to script your applications by embedding it in other applications.

Physics engine

  1. Unity 3D has a built in 3D physics Engine.
    1. NVIDIA PHYSX Physics.
  2. Interactive Cloths
    1. Assist with creating J.U.N.I.O.R. and supporting characters costumes.
    2. Costumes blend in with environment.
  3. SkinnedCloth
    1. Interacts with SkinnedMeshRenderer to simulate clothing on characters.
    2. Assist with creating life like J.U.N.I.O.R. Life like characters.
  4. RigidBodies
    1. Assist with characters interacting to physics to create life like movements
    2. Joints
  5. Allow for emergent gameplay.

Program structure

  1. Initialization

    1. Loading
      1. Once the game is started:
        1. Intro video will be played
        2. Intro video can be bypassed
        3. Game will take you to player menu
    2. Intro
      1. Intro video will be played to introduce the game and the games main Character: J.U.N.I.O.R
    3. Configuration
      1. User will be allowed to set up keyboard Configuration.
      2. Allow for user to be able to change keys for whatever they desire
        1. Example:
          1. W- Moves forward, but can be changed to any other key the user desires
    4. Settings
      1. Once clicked will take you to different menu
      2. Allow for game tutorial
      3. Allow for input device changes
  2. Game Loop

    1. Handle Input
    2. Handle Game Actions
    3. Display
  3. Finalization

    1. Saving
    2. Trailer
      1. Game trailer will be released via YouTube and other Social Media circles in order to get J.U.N.I.O.R. out there for other users to view and experience
      2. e is to attract a vast diverse audience

Timing

  1. an average 60 fps for machines with recommended specs.
    1. For older machines, Unity is set up to adjust graphics to speed the game up and prevent lagging
  2. Processing Events
    1. Player
      1. When input is detected the corresponding event will be fired on the next frame
      2. a machine with lower specs. may slow down during processing, adjusting graphics may help
    2. Enemies
      1. Enemies will be driven by AI
  3. Drawing
    1. Unity handles the drawing unless we bypass it's rendering pipeline
    2. If the graphic isn't where the camera is looking then Unity will not render it

Home | Art Assets List | Audio Asset List | GDD | Pitch Document | TDD | Team Charter | Test Plan

Clone this wiki locally