Bachelor of Software Engineering (Game Programming) 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. MEDIA DESIGN SCHOOL 1
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 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. Year One GD1S01: THEORETICAL AND PHILOSOPHICAL FOUNDATIONS OF SOFTWARE ENGINEERING 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 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 inclass discussions assist students in their understanding of the concepts. GD1P03: 2D GAME 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. GD1P04: 3D GRAPHICS 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 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. MEDIA DESIGN SCHOOL 2
Year Two GD2S01: SOFTWARE ENGINEERING PRINCIPLES AND PRACTICES ------- 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 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 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 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 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. GD2P04: ADVANCED GRAPHICAL GAMES 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 preexisting technologies. This will become progressively more complex and timeconsuming 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 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. MEDIA DESIGN SCHOOL 3
Year Three GD3S01: SOFTWARE ENGINEERING CAPSTONE PROJECT 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 postmortem of findings, students will reflect on their philosophy and approach. GD3S02: SOFTWARE ENGINEERING GAME DEVELOPMENT CAPSTONE PROJECT 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 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. MEDIA DESIGN SCHOOL GD3J01: PROFESSIONAL PRACTICE 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 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 PRODUCTION ALPHA 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. GD3J04: GAME PRODUCTION BETA 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 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 postmortem 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 MEDIA DESIGN SCHOOL 14