IG2 Assignment Brief


Assignment Brief
Qualification 
Level 3 Extended Diploma in Creative Media Production – Games Design
Unit number and title
Unit 70 Computer Game Engines
Unit 1 Pre Production Techniques for the Creative Media Industries
Assessor name
Iain Goodyear
Date issued
Monday 29th February, 2016
Hand in deadline
Friday 3rd June, 2016

Assignment title
IG2 2D and 3D Computer Game Engines
Purpose of this assignment is to:
Unit 70 LO1: Understand the purposes of game engines.
Unit 70 LO2: Understand the functions of components of game engines.
Unit 70 LO3: Be able to use a 2D game engine following industry practice.
Unit 70 LO4: Be able to use a 3D game engine following industry practice.
Unit 1 LO1: Understand requirements for a specific media production.

Unit 1 LO2: Be able to prepare pre-production documentation for a specific media production.

Unit 1 LO3: Be able to apply pre-production planning for a specific media production.
Scenario
You have started up your own Game Development Studio and your new product has sparked interest across the industry. You will formally announce your company name and game you are working on with multiple major publishers. Publishers will expect an in depth written analysis report on your process in research for game engines, including their purposes and functionality via Industry Terminology.
In addition to this, publishers have asked to view your game prototypes produced in Construct 2 and Unity. Publishers have also requested the development workflows to analyse your ability to develop a solid game prototype. This will have to include industry standard techniques and terminology before they can give you the funding for your product. They will ask you to look into the areas of:
·         Self-Analysis
·         Development theory and application
·         Technology Analysis and work plans

They also want you to develop a new prototype using the Unity 3D Engine while sticking to the same design process as the 2D engine. This should also include a thorough 3D workflow and design plan to support your prototype when presented to one of the publishers.
Task 1 – The Purposes and Functions of Components of Game Engines
You must produce a report to show case your process of thought on how you came up with the engine for your product; this includes looking at the purpose of game engines, functionality of game engines supported with industry terminology, analysis and research.
When evidence is produced it must be uploaded to your blog in the task 1 section. The title of this blog post is: The Purposes and Functions of Components of Game Engines

This provides evidence for unit 70 P1/M1/D1 & P2/M2/D2
Task 2 – Computer Game Production Budget
Produce a report & a budget that outlines the specific requirements for a computer game  production with supporting research & hardware/software costs:
·         Describe what job roles will need staffing (level designer, concept artist, asset artist & programmer) and be able to define the job responsibilities of these roles.

·         Equipment needed and daily costs (researched with links to hire or purchase software and equipment)
Produce a budget expenditure spread sheet in Excel that outlines expenditure to a budget of £4000 and what this will be spent on.
*Your budget and any company quotes & links must be evidenced on your IG2 blog using the following title: Computer Game Production Budget
This provides evidence for unit 1 P1/M1/D1
Task 3 – Computer Game Planning
Produce content specific pre-production planning for your chosen 2D game & 3D arena level design idea.
This should include a broad selection of the following:
·         Initial concept art work
·         Draft and final asset designs
·         Draft and final level designs
*Your pre-production & planning evidence must be uploaded your IG2 blog using the following title: Computer Game Planning
This provides evidence for unit 1 P2/M2/D2
Task 4 – Using a 2D Game Engine
This task must include an understanding and playable 2D level to industry standards using the Construct 2 engine. Evidence for this task should also be accompanied by an extensive 2D workflow that showcases the ability to adhere and develop to industry level standards.
You will need to produce a short desktop captured video to evidence your 2D game in play.
*When evidence is produced it must be uploaded to your blog in the task 4 section. The title of this blog post is: Using a 2D Game Engine                                                                                                                                                                       
This provides evidence for unit 70 P3/M3/D3 & unit 1 P3/M3/D3  
Task 5 – Using a 3D Game Engine
This Task must include an understanding and playable 3D level to industry standards using the Unity 3D engine but should also be accompanied by an extensive 3D workflow that showcases the ability to adhere and develop to industry level standards.
You will need to produce a short desktop captured video to evidence your 2D game in play.
*When evidence is produced it must be uploaded to your blog in the task 3 section. The title of this blog post is: Using a 3D Game Engine
This provides evidence for unit 70 P4/M4/D4 & unit 1 P3/M3/D3 
Evidence checklist
Task 1: 1 x completed purposes and functions of components of game engines analysis worksheet.
[ ]
Task 2: 1 x job role description document for level designer, concept artist, asset artist & programmer. 1 x computer budget research document detailing costs of hardware and software needed to produce a computer game with supporting images and URL links. 1 x completed excel budget sheet detailing costs of hardware and software needed to produce a computer game.
[ ]
Task 3: Evidence of produced concept artwork, final asset designs & final level designs uploaded in jpeg format.
[ ]
Task 4: 1 x workflow detailing the process of producing your 2D game in Construct 2. 1 x 2D gameplay video.
[ ]
Task 5: 1 x workflow detailing the process of producing your 3D arena level in Unity. 1 x 3D area level walkthrough video.
[ ]
Sources of information





Task 1 - The Purpose and Functions of Components of Game Engines

Name:

RESEARCHED DEFINITION (provide short internet researched definition and URL link)
DESCRIBE THE RELEVANCE OF THE RESEARCHED TERM TO YOUR OWN PRODUCTION PRACTICE?
IMAGE SUPPORT (Provide an image and/or video link of said term being used in a game)
VIDEO GAMES / VIDEO GAME TESTING
Demo
“A game demo is a freely distributed piece of an upcoming or recently released video game. Demos are typically released by the game's publisher to help consumers get a feel of the game before deciding whether to buy the full version.”
It is relevant to my production practice, because before I finish my 3D and 2D level work, I will have to try small parts of my levels to see if I should continue with the construction of certain assets.










Beta
“A beta test refers to the distribution of pre-release game software to a select group of people so that they can test the game in their own homes. The beta version of a game is as close to perfect as the company can make it, but any bugs, glitches or other issues discovered in beta testing will usually be addressed before the game's official release.”
This is relevant to my production practice because I will have to try out my work in beta stages, before I continue to completion.
Alpha
“A very early version of a software product that may not contain all of the features that are planned for the final version. Typically, software goes through two stages of testing before it is considered finished. The first stage, called alpha testing, is often performed only by users within the organization developing the software. The second stage, called beta testing, generally involves a limited number of external users.”
This is relevant to my production practice because I will have to try out my level work in alpha stage before I move onto beta stage.
Pre-Alpha
“A development status given to a program or application that is usually not feature complete, and is not usually released to the public. Developers are usually still deciding on what features the program should have at this status. This status comes before the alpha version, and is the first status given to a program”
This is relevant to my production practice because I will have to try out my level work in pre alpha, before I can move onto alpha stage.
Gold
"Gone gold" means that the gold "master" CD has been delivered to manufacturing (the CD may or may not actually be gold. The term derived from the fact that CD-R media used to be gold coloured. "Gone green “,” Gone blue or "Gone silver" just doesn't have the same feel as "Gone gold"). This is the CD from which all shipping CDs are pressed (shipping CDs are pressed, not burned like the master CD). Depending on the manufacturing run, a game that has "gone gold" may ship to stores in as little as a few days or as late as a few months”
This is relevant to my production practice because once my game layouts have been completed; it will have entered an unofficial Gold status.
Debug
“In computers, debugging is the process of locating and fixing or bypassing bugs (errors) in computer program code or the engineering of a hardware device. To debug a program or hardware device is to start with a problem, isolate the source of the problem, and then fix it. A user of a program that does not know how to fix the problem may learn enough about the problem to be able to avoid it until it is permanently fixed. When someone says they've debugged a program or "worked the bugs out" of a program, they imply that they fixed it so that the bugs no longer exist.”
“http://searchsoftwarequality.techtarget.com/definition/debugging”
This is relevant to my production practice because I will have to debug my levels during their construction, and also before and after their completion.
Automation
“the state of being operated automatically”
This is relevant to my production practice because automation is used in 3D enviroments.
White-Box Testing
“Also known as glass box, structural, clear box and open box testing. A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs. The test is accurate only if the tester knows what the program is supposed to do. He or she can then see if the program diverges from its intended goal. White box testing does not account for errors caused by omission, and all visible code must also be readable.
For a complete software examination, both white box and black box tests are required.”
This is relevant to my production practice because white box testing is used to test 3D environments such a mine.
Bug
“In computer technology, a bug is a coding error in a computer program. (Here we consider a program to also include the microcode that is manufactured into a microprocessor.) The process of finding bugs before program users do is called debugging. Debugging starts after the code is first written and continues in successive stages as code is combined with other units of programming to form a software product, such as an operating system or an application. After a product is released or during public beta testing, bugs are still apt to be discovered. When this occurs, users have to either find a way to avoid using the "buggy" code or get a patch from the originators of the code.”
This is relevant to my production practice because my level work will have various bugs which will need removing before the levels completion.
GAME ENGINES

                               









GAME ENGINES



Vertex Shader
“The Vertex Shader is the programmable Shader stage in the rendering pipeline that handles the processing of individual vertices. Vertex shaders are fed Vertex Attribute data, as specified from a vertex array object by a drawing command. A vertex shader receives a single vertex from the vertex stream and generates a single vertex to the output vertex stream. There must be a 1:1 mapping from input vertices to output vertices.

Vertex shaders typically perform transformations to post-projection space, for consumption by the Vertex Post-Processing stage. They can also be used to do per-vertex lighting, or to perform setup work for later shader stages”
This is relevant to my production practice because vertex shaders are used in 3D engine work, similar to my own.
Pixel Shader
“The name used to describe the method in which a GPU applies textures and renders pixels to the display. Pixel Shaders are used to give a more realistic look to objects, such as reflections.”
This is relevant to my production practice because Unity will use pixel shades whenever, I add textures to my 3D environment.
Post Processing
“The term post-processing (or postproc for short) is used in the video/film business for quality-improvement image processing (specifically digital image processing) methods used in video playback devices, (such as stand-alone DVD-Video players), and video players software and transcoding software. It is also commonly used in real-time 3D rendering (such as in video games) to add additional effects.”
This is relevant to my production practice because I will be using post processing in my work especially with my 3D environment.
Rendering
“Rendering is the process of generating an image from a 2D or 3D model (or models in what collectively could be called a scene file) by means of computer programs. Also, the results of such a model can be called a rendering. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene. The data contained in the scene file is then passed to a rendering program to be processed and output to a digital image or raster graphics image file. The term "rendering" may be by analogy with an "artist's rendering" of a scene. Though the technical details of rendering methods vary, the general challenges to overcome in producing a 2D image from a 3D representation stored in a scene file are outlined as the graphics pipeline along a rendering device, such as a GPU. A GPU is a purpose-built device able to assist a CPU in performing complex rendering calculations. If a scene is to look relatively realistic and predictable under virtual lighting, the rendering software should solve the rendering equation. The rendering equation doesn't account for all lighting phenomena, but is a general lighting model for computer-generated imagery. 'Rendering' is also used to describe the process of calculating effects in a video editing program to produce final video output.”

This is relevant to my production practice because I will be using rendering in my work, such as in my 3D engine layout.
Normal Map
“A 2D texture map is an image added to a 3D model that provides a higher level of detail, wrapping around whatever 3D art you have to apply or modify certain attributes like color, transparency, shininess, reflection, and higher detail.
One of the most valuable maps for a 3D artist is the normal map. Rather than having a color range of black to white, like a bump map uses, normal maps consist of red, green, and blue. These RGB values translates to x, y, and z coordinates, allowing a 2D image to represent depth. This way, a 3D application is able to fake lighting details based on the color associated with the 3D coordinate.”
This is relevant to my production practice because normal maps are used in 3d engine work such as mine.
Entity
“In general, an entity (pronounced N-tih-tee ) is an existing or real thing. The word root is from the Latin, ens , or being, and makes a distinction between a thing's existence and its qualities. An entity exists and that's all it needs to do to be an entity. The fact that something exists also seems to connote separateness from other existences or entities. In programming, engineering, and probably many other contexts, the word is used to identify units, whether concrete things or abstract ideas, that have no ready name or label. In blackboard discussions, one can draw something as yet unnamed and refer to that drawing as the representation of an "entity." (If the entity being discussed later gets ascribed qualities and a name, reference to it as an "entity" may no longer be useful.)”
This is relevant to my production practice, because I will be spawning in entities into my 2D and 3D layouts in order to populate them.
UV Map
“UV mapping is the 3D modeling process of projecting a 2D image to a 3D model's surface.”
“https://en.wikipedia.org/wiki/UV_mapping”
This is relevant to my production practice because UV mapping will be used in 3D engine work.
Procedural Texture
“An algorithmic way of describing a texture. Unlike a bitmapped texture, in which the texture is represented as a bitmap, a procedural texture describes the texture mathematically. Although not widely used, this method is resolution independent and can create more precise textures, especially if there is great and varying depth to the objects being textured. Procedural textures may be 2D or 3D. See texture mapping and volumetric texture.”
This is relevant to my production practice because procedural textures will be used in my 3D engine work.
Physics
“A science that deals with matter and energy and the way they act on each other in heat, light, electricity, and sound”
This is relevant to my production practice, because my 3D engine work will have physics whenever my layout is played through.
Collision
“The meeting of particles or of bodies in which each exerts a force upon the other, causing the exchange of energy or momentum.”
This is relevant to my production practice because I will be utilising Collisions in my 2D and 3D engine work, especially with sprites
Lighting
“An artificial supply of light or the apparatus providing it”
This is relevant to my production practice because I will be creating lighting in my 3D engine work.


http://iq.intel.com/bringing-games-life-with-light/


















AA – Anti-Aliasing
“Antialiasing is the smoothing of the image or sound roughness caused by aliasing. With images, approaches include adjusting pixel positions or setting pixel intensities so that there is a more gradual transition between the colour of a line and the background colour. With sound, aliases are removed by eliminating frequencies above half the sampling frequencies.”
This is relevant to my production practice because I will be using Anti-Aliasing in my 3D engine work.
LoD – Level of Detail
“Level of detail is a general design term for video game landscapes in which closer objects are rendered with more polygons than objects that are farther away. Generally speaking, the level of detail is dictated by the game's system requirements. Given the power of modern processors, very little degradation in the level of detail is noticeable anymore.”
This is relevant to my production practice because LoD will be used whenever my 3D engine work is loaded in via first person controller.
Animation
“A simulation of movement created by displaying a series of pictures, or frames. Cartoons on television are one example of animation. Animation on computers is one of the chief ingredients of multimedia presentations. There are many software applications that enable you to create animations that you can display on a computer monitor.”
This is relevant to my production practice because I will be utilising animation in my 2D engine work with my sprites.
Sprite
“A sprite is a bitmap graphic that is designed to be part of a larger scene. It can either be a static image or an animated graphic. Examples of sprites include objects in 2D video games, icons that are part of an application user interface, and small images published on websites.”
“http://techterms.com/definition/sprite”
This is relevant to my production practice because I will use sprites in both my 2D and 3D environments.
                                
 http://blaiprat.github.io/jquery.animateSprite/


Scene
“Scenes contain the objects of your game. They can be used to create a main menu, individual levels, and anything else. Think of each unique Scene file as a unique level. In each Scene, you will place your environments, obstacles, and decorations, essentially designing and building your game in pieces.”
This is relevant to my production practice because I am utilising scenes with my 3D engine work.
Library
“In computing, a library is a collection of similar objects that are stored for occasional use - most frequently, programs in source code or object code form, data files, scripts, templates, fonts, and physical storage units such as tape cartridges. Here are some common types of libraries.”
This is relevant to my production practice because I will be using virtual libraries to store all my work so it can be accessed.
UI
“Abbreviated UI, the junction between a user and a computer program. An interface is a set of commands or menus through which a user communicates with a program. A command-driven interface is one in which you enter commands. A menu-driven interface is one in which you select command choices from various menus displayed on the screen.”
This is relevant to my production practice because my 2D game will have a User Interface for a health bar, score system etc.
Frames
“In graphics and desktop publishing applications, a rectangular area in which text or graphics can appear.”
This is relevant to my production practice because my 2D and 3D engine work will be run in frames whenever they are played.
Concept
“A concept is a generalization or abstraction from experience or the result of a transformation of existing ideas.[1] The concept is instantiated (reified) by all of its actual or potential instances, whether these are things in the real world or other ideas. Concepts are treated in many if not most disciplines both explicitly, such as in psychology, philosophy, etc., and implicitly, such as in mathematics, physics, etc. In informal use the word concept often just means any idea, but formally it involves the abstraction component.”
“https://en.wikipedia.org/wiki/Concept”
This is relevant to my production practice because my 2D and 3D engine work is based off concepts I have come up with.
Event
“An action or occurrence detected by a program. Events can be user actions, such as clicking a mouse button or pressing a key, or system occurrences, such as running out of memory. Most modern applications, particularly those that run in Macintosh and Windows environments, are said to be event-driven, because they are designed to respond to events.”
This is relevant to my production practice because I will be using events to run my 2D and 3D layouts.
Pathfinding
“Pathfinding or pathing is the plotting, by a computer application, of the shortest route between two points. It is a more practical variant on solving mazes. This field of research is based heavily on Dijkstra's algorithm for finding a shortest path on a weighted graph.”
This is relevant to my production practice because I will be utilising pathfinding in my 2D and 3D engine work, such as making my sprites move.