Unit 1: Games Development - Introduction

 Home / MG2I-C0148
Unit 1: Games Development - Introduction

Unit Description

Learners will first demonstrate their knowledge of game programming by selecting an appropriate game engine and programming language for implementation of a particular game design, and justify their choices with regard to factors such as platform compatibility, available features, and so on. At this pre-production stage of the game development process, the learner will also consider the state-driven nature of the game being developed, and design a state machine for implementation. The learner should understand factors such as as the file format, compression, and resolution of the various types of assets used as content in games, such as graphics, (e.g. tiles, sprites and/or spritesheets, backgrounds, or user interface elements) audio, (e.g. sound effects, ambient sounds, voice, or music) 3d models, fonts, and so on. The learner should also, on completion of this unit, be able to prepare assets which are suitable for the production of a game design, including at least 2d graphics, and sounds. This unit, however, primarily provides the learner with the opportunity to learn and apply programming skills to a game development project. At this level, a simple 2d game with sound should be suitable. The learner should take into account the capabilities of the target devices, such as resolution, input devices available, and screen orientation / shape. Finally, learners will be able to complete a post-production phase by deploying, publishing, and sharing their completed game on suitable distribution media for their target platforms.

Learning Outcomes

On completion of this unit the student will be able to

1. Select a game engine and programming language for a given task.

2. Prepare assets appropriately for the development of a given task.

3. Build a simple computer game using 2d graphics, sound, and input devices.

4. Deploy, publish and share a simple computer game.


Unit Content

1. Select a game engine and programming language for a given task.

Choosing the right game engine for the task:

· Platform compatibility

· Asset availability

· Available features Choosing the right programming language for the task:

· Platform compatibility

· Engine compatibility

· Available features Designing and specifying a computer game.

· Target platform

· Target platform input and output devices

· Gameplay features

· Required media assets Design a state machine for a computer game.

· States

· Events

· Transitions

· Transition tables and state diagrams


2. Prepare assets appropriately for the development of a given task. Asset types for games content

· 2d graphics

· 3d models

· Audio

· Other asset types (fonts, shaders, etc) File types appropriate to game media assets

· Graphics file types

· Audio file types

· Other file types The effects of compression on game assets

· Size constraints on different game delivery methods

· Lossy and lossless compression

· The effect of lossy compression on transparency in sprites

· The effect of lossy compression on audio and graphical quality


The relevance of image resolution to game assets

· Visual artefacts caused by scaling 2d assets

· Limits on image size Preparing assets

· Producing assets

· Sourcing assets

· Importing assets


3. Build a simple computer game using 2d graphics, sound, and input devices. Constraints imposed by platforms

· Screen resolution

· Shape & orientation

· Input devices Deal with different input devices

· Touch screen

· Accelerometer

· Gamepad

· Keyboard and mouse Implementing graphics

· Backgrounds

· Tilesets

· Sprites and spritesheets

· User interface elements Implementing sound

· Sound effects

· Ambient sound

· Music Implementing gameplay

· Player controls

· Environment response to player input

· Artificial Intelligence Quality assurance

· Testing a game

· Debugging a game 


4. Deploy, publish and share a simple computer game. Deploying computer games to multiple devices.

· Deploying to mobile devices

· Deploying to PC / Mac

· Deploying to console

· Deploying to web Publishing and sharing computer games.

· Publishing games

· Sharing games


Assessment Method

This is a skills based unit, in which learners are required to demonstrate that they have the skills to be able to create computer games in a modern programming language. To acquire these skills, learners will need plenty of hands-on experience with programming environments, engines, asset creation/editing tools, and games marketplaces. Learners should be provided with contact hours including lectures, demonstrations, discussions, and presentations in order to allow them to gain the knowledge and understanding necessary to undertake the various tasks of the game development life cycle. The attributes of various programming languages should be discussed in the context of game development, and other theory-based elements include game engines, statedriven design, attributes of media assets, and constraints imposed by developing for a variety of platforms. The practical side of the unit, however, is expected to occupy the majority of the time learning this subject. The learner will be expected to deal programmatically with input devices, output to screen and audio, as well as gameplay. The precise details of this learning will vary depending on the programming language, but will typically include such concepts as sequence, selection and iteration; nesting; data types; arrays or other data structures; methods or functions; and file input/output. Additional techniques such as object oriented programming techniques; event-driven programming; and so on are not necessary but may be beneficial to the learner. Throughout the unit, learners should be encouraged to evaluate their work, for example by refactoring where suitable. They should develop their critical thinking and evaluation skills, for example in the determination of suitable development environments. Learners should be encouraged to take responsibility for their project's progress, and individually research such things as technologies and programming patterns. The unit should mirror industry practice where practical, for example by using milestones and phases (pre-production, production, and post-production). Learners should be expected to exercise autonomy and judgement in their project, once they have gained the necessary technical and theoretical knowledge.

js files