The Bachelor of Software
Engineering is a three year
program which gives graduates
the skills to be employed
as a Software Engineer with
a particular focus in Game
Programming. The aim of
this qualification is to provide
graduates with a highly
developed skill-set in Software
Engineering, as well as a
strong command of specialised
technical and scholastic
knowledge. Game Programming
and Game Development are
the two areas of Software
Engineering that receive primary
focus.
■
In the first year curriculum,
students are taught the
essential theories, principles,
and knowledge needed for
Game Programming and Game
Development. This includes an
overview of C++ programming
and practical mathematical skills.
Students also gain experience
constructing, testing, and
debugging simple computer
games. This gives them a
comprehensive foundation on
which to develop the knowledge
and skills that are taught in the
second year.
■
Theories and
the depth of knowledge that
is studied become significantly
more complex in the second year
curriculum. More fundamental
techniques that were not
covered previously are looked
at also. Students consider the
management strategies that they
will need to take in preparation
for the collaborative game
production in the third year.
■
The third year curriculum
focuses primarily on creating a
major game production. This
production is a chance for
students to apply all of the skills
and knowledge that they have
learned. Students also create
a post-mortem to identify the
strengths and weaknesses
that they encounter during
the production process. This
experience as a whole gives
students sufficient knowledge
and skills to become a
professional and valued member
in the industry, or to enter
postgraduate study.
Bachelor of
Software Engineering
(Game Programming)
■
GD1P01:
INTRODUCTION
TO SOFTWARE ENGINEERING FOR
GAMES
LEVEL 5 | CREDITS: 16
---Students learn how to construct, test, and debug simple computer games. They begin by solving easy problem-based tasks with C++ programming. Lecturers provide modern theoretical perspectives and demonstrate approaches to the tasks with examples. When students have mastered basic programming skills they move on to constructing simple games. Students are given a brief to create a text-based game using the skills and knowledge that they have gained in this component.
■
GD1M01:
FUNDAMENTAL
MATHEMATICAL AND
ENGINEERING PRINCIPLES
LEVEL 5 | CREDITS: 12
---Mathematics is a fundamental building block of game development. Core mathematical skills that are needed for solving games problems are taught, and then built on throughout this component. The mathematical games problems become increasingly complex, so the teaching approach is to use gaming analogies wherever possible to explain mathematical concepts. Teaching generally consists of theoretical elements, a demonstration, and then the lecturers allow students to put these skills into practice. The students collaborate and share mathematical problem-solving approaches during frequent in-class discussions, and are expected to provide these solutions for class reviews.
■
GD1P02:
ALGORITHMS
AND DATA STRUCTURES
LEVEL 5 | CREDITS: 8
---Students learn the fundamental data structures and algorithms that are needed to solve common gaming problems. Wherever possible, lecturers show examples of data structures and algorithms, and use analogies to explain. Students improve their learning throughout this component by working on a large number of projects. They will solve common gaming problems by designing, developing, implementing, testing, and enhancing a collection of data structures and algorithms.
■
GD1S01:
THEORETICAL
AND PHILOSOPHICAL
FOUNDATIONS OF SOFTWARE
ENGINEERING
LEVEL 5 | CREDITS: 12
---Software engineering is introduced from the perspective of the Institute of Electrical and Electronic Engineers (IEEE) and the Software Engineering Body of Knowledge (SWEBOK). Students will also learn how SWEBOK relates to the Project Management Body of Knowledge (PMBOK), which is a project management guide and an internationally recognised standard. PMBOK the fundamentals of project management for construction, software, engineering, and automotive. These theories and concepts will be examined in greater detail throughout other components. Students are also introduced to elements of software engineering professional practice, ethics, issues, and professional dilemmas.
■
GD1M02:
MATHEMATICS
FOR GRAPHICAL GAMES
LEVEL 5 | CREDITS: 12
---Students learn how to construct
mathematical solutions to common gaming problems. They design, develop, test, and enhance a game that requires a significant degree of mathematics. Trigonometry is used to solve problems for 2D games, and as students progress they solve more advanced 2D physics problems. Software engineering models and notations are used to represent mathematical problems, and students learn to write these for all mathematical code. The more challenging problems are solved as a team, and in-class discussions assist students in their understanding of the concepts.
■
GD1P03:
2D GAME
PROGRAMMING
LEVEL 5 | CREDITS: 12
---More advanced programming concepts are introduced. This includes a rudimentary introduction to user-interface design and software engineering management methods. Students follow a predetermined plan and track their progress throughout this component. The experience that they gain here will assist in the development of future projects. Teaching approaches incorporate theoretical lectures and practical project-based learning. Lecturers provide game frameworks for students to read and understand, which they follow to solve progressively more complex problems. Ultimately students will develop simple games with effective user-interface design strategies.
Year One
Components
■
GD1P04:
3D GRAPHICS
PROGRAMMING
LEVEL 5 | CREDITS: 28
---Students are introduced to 3D graphics programming using the fixed function rendering pipeline. This includes topics such as the transformation pipeline, device states, primitive rendering, basic camera systems, lighting, texturing, alpha techniques as well as software engineering design principles and testing strategies.
■
GD1J01:
GAME DESIGN
PRINCIPLES
LEVEL 5 | CREDITS: 12
---Students learn to analyse games from a non-technical viewpoint as well as getting an overview of social issues and the role of ethics. They learn about various target platforms that support games and to identify real-world game design problems. Lecturers teach this with in-class demonstrations and lectures of design and game design principles. The class collaborates to produce a game design document that justifies decisions made across a broad range of design and game design elements. This document will be used to assist in the development of the Mini Project I.
■
GD1J02:
GAME MINI
PROJECT I
LEVEL 6 | CREDITS: 28
---Student teams of Artists and Programmers work together to plan, manage, design, develop, test, and enhance a moderately complex 3D game with a project management strategy based on PMBOK or SWEBOK specifications. This project requires the Game Design Document created earlier. Students develop more management autonomy and greater understanding of tools and techniques to create effective productions. Lecturers assist students to overcome technical problems and interpersonal problems as they arise, but the aim is to the class like a game studio environment. This approach allows students to gain more knowledge of their colleagues’ requirements.
■
GD2S01:
SOFTWARE
ENGINEERING PRINCIPLES AND
PRACTICES
LEVEL 6 | CREDITS: 12
---Students produce game management approaches for simple projects using the PMBOK framework. The knowledge that they gain in this component will be applied to produce and manage their second year project. Lecturers present a range of software project management methodologies and contemporary methods, as well as effective/ineffective planning and effective/ineffective management examples (using case studies). Students learn to separate project management considerations from the wider context of game development. They will be given Game Design and Technical Design documents to review in terms of project management, task allocations, stakeholders, roles and responsibilities.
■
GD2S02:
SOFTWARE
ENGINEERING FOR GAMES
LEVEL 6 | CREDITS: 12
---New concepts build on students’ knowledge and skills in software engineering. Students learn a theoretical modelling system for formal analysis of correctness and quality. They also learn about software product assurance and experiment with a variety of product assurance strategies. For each defect, students ascertain the cause and attempt to prevent similar scenarios in future projects. Once they have enough experience, students create defect prevention strategies for a sizeable project. The economics of software development will be considered too. Students solve problems in multiple ways to ascertain the value and cost implications of various strategies.
■
GD2S03:
ADVANCED
SOFTWARE ENGINEERING AND
PROGRAMMING FOR GAMES
LEVEL 6 | CREDITS: 16
---This component teaches students how to create a collection of game asset tools for artists and development teams. Lecturers provide theoretical and practical examples of hardware and software technologies for the speedier development of games. Contemporary technologies are used and student learning is facilitated with in-class debates regarding the usefulness of each technology. Students will design, construct, test, evaluate, and enhance an integrated game asset export-tool for use by non-programmers. Then they evaluate
their own software development processes and implementations with widely accepted software engineering principles and practice.
■
GD2P01:
ARTIFICIAL
INTELLIGENCE
LEVEL 6 | CREDITS: 12
---In this component students learn to build artificial intelligence systems for games. They evaluate and discuss various software engineering strategies, chiefly by identifying the strengths and weaknesses of each strategy. This teaches students how to identify the right tool for the right job. Lecturers provide case studies and theoretical foundations of various contemporary software engineering practices. They also facilitate in-class discussions, debates and critiques of the contemporary software engineering practices. Learning is achieved through debating how real world problems should be approached.
■
GD2P02:
PHYSICS
PROGRAMMING
LEVEL 6 | CREDITS: 12
---A variety of additional technologies for game development are taught, and students apply their software process skills, knowledge and modelling techniques to create a simple physics system for a game. Fundamental techniques include, among others, how to apply Newtonian physics for game development; using vectors and matrices to perform 3D transforms; evaluating and applying various collision detection techniques; analysing hardware implementation of arithmetic logic units; and using modelling principles for deterministic physics functions. After students have constructed their physics system, they will then reflect on the usefulness (or otherwise) of the software strategies.
■
GD2P03:
TECHNOLOGY
LEVERAGE FOR GAMES
LEVEL 6 | CREDITS: 16
---A broad range of useful game development technologies are examined in-depth. An existing game framework will be used for students to practice solving simple and complex gaming problems. Students draw on the range of technologies that they are taught in order to implement, present, and justify a collection of technological solutions to gaming problems. They also reflect on the implications of developing software systems with legacy systems and prebuilt assets, and they will integrate these into their implementations as well.
Year Two
Components
■
GD2P04:
ADVANCED
GRAPHICAL GAMES
PROGRAMMING
LEVEL 6 | CREDITS: 20
---Complex graphical programming topics are explored, and tool construction is introduced. The analysis requirements for tools are discussed to increase the likelihood of designing a useful tool. Students expand on already existing libraries and create plug-ins for pre-existing technologies. This will become progressively more complex and time-consuming as the course progresses. Additionally, students will design, construct, test, and evaluate a 3D scene - drawing on a collection of human-computer interaction, visual design, and game design elements to enhance it. Visual and non-visual elements that enable the creation of the 3D scene are evaluated.
■
GD2J01:
PEOPLE AND
GAMES
LEVEL 6 | CREDITS: 12
---Examines the non-technical, human issues (societal and cultural) of the game industry. A history of the game development industry is taught, which students critically analyse from a historic and contemporary perspective. Lecturers provide theoretical and conceptual frameworks for game design and investigation. In-class discussions are held around game design and technical limitations, with students debating their ideas and defending their decisions. Students’ abilities to identify key design features will improve, which is used in later components when students propose design features for games.
■
GD2J03:
GAME MINI
PROJECT II
LEVEL 7 | CREDITS: 28
---Students’ skills and knowledge are used to plan, produce, test, enhance and manage a group 3D game that can be exhibited in a public forum. Self-managing this project with an effective software engineering strategy will enhance students’ design and management skills. In a post-mortem of findings, students reflect on their performance from a variety of software engineering perspectives, including software design, project management, software processes, bug tracking, etc.
■
GD3S01:
SOFTWARE
ENGINEERING CAPSTONE
PROJECT
LEVEL 7 | CREDITS: 20
---This project is undertaken at the same time as the production components. Students draw on their production experience to investigate specific software engineering areas of interest. They may also study the interaction between software engineering and its associated disciplines (e.g. computer science, management, mathematics, and systems engineering). A broad range of software engineering principles and practices inform the development of a major project. This gives students the opportunity to integrate much of the material they have learned into a significant project experience. In a post-mortem of findings, students will reflect on their philosophy and approach.
■
GD3S02:
SOFTWARE
ENGINEERING GAME
DEVELOPMENT CAPSTONE
PROJECT
LEVEL 7 | CREDITS: 20
---This project is undertaken at the same time as the production components. Students select areas of game development to specialize in to enhance the project production. They may select more than one specialization in an area of game development (e.g. game design, game play, mathematical programming, 3D programming, and artificial intelligence programming). The collaborative project will therefore be supported by a broad, well-informed knowledge base. Students evaluate, interpret, and appraise the game development theories and concepts of their chosen field, and produce a synopsis of major game development theories.
■
GD3P01:
GD3P01: GAME
ENGINE DEVELOPMENT
LEVEL 7 | CREDITS: 16
---Student teams design and develop a game engine collaboratively to facilitate the development of their own game concepts. The game engine must include audio elements, particle systems, and visual effects elements. Re-using elements of work from earlier course components is encouraged, as it speeds up construction (and is an accepted norm in the industry). However lecturers will not recommend this if it impacts on game performance or hinders learning. Students' learning is now advanced significantly to the point where they can start specializing in areas of their own choosing.
■
GD3J01:
PROFESSIONAL
PRACTICE
LEVEL 6 | CREDITS: 12
---Students acquire the knowledge, skills, and strategies to undertake a collaborative production that is based on sound management theories and advice. They will use creative and critical thinking methodologies to form a production investigation. Students are taught to plan and manage a project through to completion using project management methods. In the process, they gain commercial acumen and understanding of business realities. There is an emphasis on personal responsibility during production because the knowledge, skills and attitudes that are developed are aimed at assisting postgraduate study.
■
GD3J02:
PREPRODUCTION
LEVEL 7 | CREDITS: 16
---Students produce a more comprehensive version of design documents for the production of a game. This enhances their skills in the areas of industry procedures and game design principles. Learning of previous materials is drawn on and students will debate and justify the contents of their design documents. Lecturers act as producer and assist in the solution of team dynamic problems when needed. Students should now possess all the skills, knowledge and abilities to undertake this component alone. Assistance is primarily provided to ensure the game is produced within the set timeframe.
■
GD3J03:
GAME
DEVELOPMENT TEAM
PRODUCTION ALPHA
LEVEL 7 | CREDITS: 20
---Students collaborate on a major production, with individuals specialising in their chosen areas of game development and software engineering. They manage, produce, test and enhance a game that matches an agreed specification and design; the game must demonstrate major in-game functionality. Individual students document their investigatory findings for major problems. This learning gives students the investigatory skills and knowledge necessary for higher study. Again, students are expected to possess the necessary skills to undertake this component on their own.
Year Three
Components
■
GD3J04:
GAME
DEVELOPMENT TEAM
PRODUCTION BETA
LEVEL 7 | CREDITS: 16
---This is the final phase of the collaborative production. The feature-complete game will be finished to the agreed specification, ready for open testing. By the end of this component, students will have acquired the tacit knowledge to become pragmatic problem-solvers by applying knowledge from all aspects of this programme. Individuals will gain explicit skills-based knowledge in their area of expertise by problem solving while honing the production to the final open testing phase.
■
GD3J05:
GAME
DEVELOPMENT TEAM
PRODUCTION GOLD
LEVEL 7 | CREDITS: 12
---Students produce a release-candidate game that has gone through several test cycles. In preparing the game for open testing a wide variety of problems need to be solved both individually and as a team. Identifying problems, investigating, discovering solutions, and testing possible solutions throughout the testing phase will enhance students' technical skills. The game will be feature complete and have no show-stopper bugs. During this production period, the environment is studio based, so students will be prepared for industry realities.
■
GD3J06:
POST
PRODUCTION
LEVEL 7 | CREDITS: 8
---Students produce a comprehensive post-mortem from their experiences during the full production cycle (that is, in the previous components: Preproduction, Alpha, Beta and Gold). The post-mortem reflects on individual and team performance, which in turn provides greater understanding of technical issues, individual work ethic, team work ethic, and team dynamics. Students identify strengths and weaknesses of the production process, and areas for improvement in future productions. They should now possess sufficient knowledge and skills to become a professional and valued member in the industry.
CONTACT
■
P:
+64 9 303 0402
■
F:
+64 9 303 0646
■
E:
info @mediadesignschool.com
---LOCATION DETAILS
---Media Design School
Media Design Centre
92 Albert St
Auckland
New Zealand