DIGITAL LIBRARY
TEACHING COMPUTER GAME DEVELOPMENT USING FREE AND OPEN-SOURCE SOFTWARE
1 Loughborough University (UNITED KINGDOM)
2 University of Derby (UNITED KINGDOM)
About this paper:
Appears in: EDULEARN09 Proceedings
Publication year: 2009
Pages: 2439-2444
ISBN: 978-84-612-9801-3
ISSN: 2340-1117
Conference name: 1st International Conference on Education and New Learning Technologies
Dates: 6-8 July, 2009
Location: Barcelona ,Spain
Abstract:
The computer game industry has experienced a tremendous expansion over recent years, which in turn has led to the development of many computing courses and even degrees focussing on this area. In our Multimedia Computing degree we have also introduced a module on Immersive Computing and Game Development which is designed to teach computer game programming to our undergraduate students. However, as game programming is an intrinsincally technical area, bringing across these concepts in just one module is inherently difficult to do. In addition, specialised hard and software (e.g. consoles and their development kits) would put an additional financial burden on the department.

We have therefore decided to adopt open-source and other free software for our module. In particular, we employ the educational version of the Unreal Editor and Engine, and Blender for game development. Game programming is a practical subject and hence we have decided not to do any lectures but rather teach the module completely using laboratory sessions (eleven 3-hour labs). The module is divided into three parts. The first one focusses on design and it is here where we employ Unreal Editor and its Engine so that students can concentrate on designing game levels without having to implement any of the underlying code. For the other two parts of the module we use Blender, an open-source 3-d modelling and animation software, which also comes with a built-in games and physics engine. In the second part of the module, we use Blender to create simple games without having to write any actual code. Students learn to use the game engine's concept of sensors (which can be employed to detect events in the game, e.g. check if an object was hit by a bullet) and actuators (which are responsible for game actions, e.g. movement of the game character) and their combination to develop the logic of various games. The final part goes into more detail, and teaches how a scripting language (Python) can be used to implement more complex game logic, how immersive hardware (such as Nintendo's wii-mote) can be used to control games, and how multiplayer games can be realised using networking.

Assessment is done 100% by coursework for which students have to implement their own games. Students are essentially free in their choice of games/levels they wish to implement and many interesting games have such been written over the two years we have run the module. This demonstrates that our practical approach to teaching game development works well, something which is also reflected by the positive feedback received from students.
Keywords:
teaching, computer science, computer games, programming.