560 likes | 993 Views
Game Development in Computer Science Education. Dr. Michael Katchabaw Department of Computer Science The University of Western Ontario London, Ontario, Canada. Outline. Introduction Why Study Game Development? Building Game Development Curriculum Classroom Resources
E N D
Game Development in Computer Science Education Dr. Michael Katchabaw Department of Computer Science The University of Western Ontario London, Ontario, Canada
Outline • Introduction • Why Study Game Development? • Building Game Development Curriculum • Classroom Resources • Conclusions and Looking Forward
Introduction • Worldwide, there has been a recent growing interest in video game studies in education circles. • Many disciplines are looking into this: • Media studies • Education • Psychology and sociology • Art and design • Music • And, of course, computer science
Introduction • Each discipline has its own interestsin studying video games. • For example, media studies look into thecontent of games and their impact onsociety. • As another example, many educators are investigating the applicability and usefulness of games as classroom learning tools. • In terms of computer science, interestis typically focused on the issues surrounding the development of games.
Introduction • Most interest in video games in computerscience curriculum has been at the university and college levels. • Developing games of commercial scale and quality often requires a great deal ofbackground and expertise. • For example, game studies at Western. • Nevertheless, we are starting to see a move towards the secondary and elementary levels as well.
Why Study Game Development? • Why study video games in general? • Why study game development in a computer science curriculum? • Why study this at the secondary and elementary levels? • There are a lot of good reasons, actually …
Why Study Game Development?The Challenge "Game programming is without a doubt the most intellectually challenging field of Computer Science in the world." - André LaMothe
Time Budget Operating Systems Software Engineering Networks OverallEntertaining Player Experience! Animation Literature Architecture Artwork Physics Artificial Intelligence Cinematography Graphics Why Study Game Development?The Challenge
Why Study Game Development?Good Computing Problems • Since game development builds on nearly all areas of computer science, games can be a good mechanism to teach students about computer science in general. • Problems are entertaining and involve creativity and ingenuity. • Yet, they also teach students about programming, data structures, datamanagement, algorithms, and so on.
Why Study Game Development?Good Computing Problems • Studying game development can also provide rich experiences to students: • Working in teams. • Interdisciplinary studies. • Providing a creative outlet. • Working on concrete, real-world problems and applications. • Consequently, these can be very good computing problems to investigate.
Why Study Game Development?Industry Drivers • The video game industry is a significant component of the software industry: • Several billions of dollars in sales each year, and growing very rapidly. • More units distributed each year than virtually any other category of software product. • Last year, the gaming industry pulled in more revenue than Hollywood. • For the last several years, video games have been selected as the “most fun entertainment activity” of all North Americans according to surveys.
Why Study Game Development?Industry Drivers • Canada has a growing game industry. • Ontario, in particular, is home to a growingnumber of game companies. • To stay competitive, these companieswill need a number of things: • A skilled workforce to rely upon. • New technologies to improve their products. • New development tools and techniques that allow their products to be built cheaper and faster, without sacrificing quality.
Why Study Game Development?Student Interest • Students are definitely interested in game development. • Since it provides an interesting, stimulating, and educational experience, why not include it more in their computer science course work? • Perhaps it might help attract studentsto computer science …
Building Game Development Curriculum • Building game development curriculum can be quite challenging. • What topics should be presented? • How should it be delivered? • How should students be evaluated? • Do tests and exams make sense, or is project work all that is needed? • We will take a look at the answers to these and other questions now …
Building Game Development Curriculum: Topics Game Design Software Infrastructure Technical Elements (Graphics, Artificial Intelligence, Animation, Physics, Networking, …)
Building Game Development Curriculum: Topics • Technical elements: • These compose the core technologies and foundations that are used to support the game. • This includes graphics, animation, artificial intelligence, networking, physics, and so on. • While each technology is relatively independent, they must work in unison to provide a complete gaming experience.
Building Game Development Curriculum: Topics • Software infrastructure: • A good software design pulls the various technical elements together to form a functional software base to support the game. • This layer must keep in mind the best practices of software engineering, including abstraction, modularity, encapsulation, portability, reusability, dependability, testability, localization, robustness, maintainability, correctness, scalability, usability, and so on. • We must also follow standard software engineering processes during development.
Building Game Development Curriculum: Topics • Game design: • With good software and technical design, we have all the foundations for a game. • Having good foundations, however, is not enough to produce a good game. • Good games require careful and thoughtful design of the structure, content, and approach to gameplay. • Without this, the game might be technically sound, but just not enjoyable to play.
Games in general Motivators and typesof players The evolution and history of video games Game genres The game development process Principles of game design (generic and genre-specific) Interactive storytelling Level design Puzzle/obstacle design Software lifecycle models for game development Technical issues (graphics, artificial intelligence, animation, sound, networking, …) Real-time software Engine design and implementation The game asset lifecycle Tools and supports Ethical/social issues Building Game Development Curriculum: Topics
Building Game Development Curriculum: Topics • While appropriate for a college or university curriculum, some of these topics are too advanced for a secondaryor elementary curriculum. • Quite a few, however, are appropriate for a secondary and elementary curriculum. • They would be quite suitable for computer science courses, especially multimedia. • Some might be good topics in other subjects.
Building Game Development Curriculum: Topics Photo from the Space Pioneer Learning Adventures Game Design Camp. 40 boys and girls (5th and 8th graders) came together for two weeks to work in same gender groups (with a teacher facilitator) to design space related educational games.
Building Game Development Curriculum: Topics • Game concepts and examples can beused to support a traditional core computer science curriculum as well. • Programming. • Software design. • Algorithms. • Data structures and management. • User interface design.
Building Game Development Curriculum: Topics • The International Game Developers Association (IGDA) has developed itsown curriculum framework for game studies, and runs a discussion e-maillist for this purpose as well. • Information can be found online at: http://www.igda.org/academia/curriculum_framework.php
Building Game Development Curriculum: Evaluation • In a college or university curriculum focused on game studies, student evaluation typically takes the form of assignment or project work. • Students, alone or in a group, complete a small, medium, or large sized game. • Tests and exams are relatively rare,but are not unheard of. • Testing students on game studies can be surprisingly difficult.
Building Game Development Curriculum: Evaluation Screen shots from game projectsdeveloped in Western’s game development course.
Building Game Development Curriculum: Evaluation • In a secondary or elementary curriculum, tests and exams could be more common, but are still hard to construct. • Assignments and projects involving the development of games would still play a key role, however. • Especially true in courses where games are studied for their own sake (like multimedia). • But, this can also hold true in courses where games are used as examples of computing problems (like programming).
Building Game Development Curriculum: Evaluation • Assignments and projects in developing games must be managed carefully. • Scope is likely the most serious problem. • Complexity is also a big issue. • Collecting content and game assetscan be incredibly time consuming, andgenerating it might not be an option. • Tools and resources must be in place first. • Good progress tracking is a must.
Building Game Development Curriculum: Project Ideas • Before developing a game, it is important to first consider just how much of the game will be built by the students. • Scope and complexity are definitelylimiting factors here. • There are several key parts to a game. • Some may be acquired for use with minimal difficulty and huge gains. • Others will need to be generated by the students no matter what.
Building Game Development Curriculum: Project Ideas Content Creationand ManagementTools Game Contentand Assets Programmingand Support SDKs Game Code
Building Game Development Curriculum: Project Ideas Game Scriptingand Logic Tools Content Creationand ManagementTools GameLogic Game Contentand Assets Game Engine Programmingand Support SDKs
Building Game Development Curriculum: Project Ideas • A really good approach might be an interdisciplinary approach. • At a secondary school, there are many disciplines of study so why not use them? • Visual arts for artistic assets. • English for story creation. • Drama for voice acting and motion capture. • Music for, well, music. • Teaming up like this is a great way to have really interesting and rewarding projects.
Building Game Development Curriculum: Project Ideas • Another interesting interdisciplinary approach involves teaming up secondary and elementary students together. • Elementary students design the game, while secondary students build the game for them. • This allows for some new and interesting dynamics and collaboration. • It could also inspire elementary students to study computer science further when they reach secondary school …
Building Game Development Curriculum: Project Ideas Screen shot from Neomancer, an interdisciplinary action/adventure/RPG projectbetween computer science students at Western and art and design students atSeneca College. Nearly 50 participants are involved in the project.
Classroom Resources • There are a variety of good resources available to assist in class game development activities. • Software tools and programming environments. • Books. • Websites.
Classroom Resources: Software Supports Game Maker. Available online at http://www.gamemaker.nl.
Classroom Resources: Software Supports Klik&Play. Available online at http://www.clickteam.com/English/klilk&play.htm.
Classroom Resources: Software Supports Adventure Game Studio. Available online at http://www.adventuregamestudio.co.uk.
Classroom Resources: Software Supports RPG Toolkit. Available online at http://www.toolkitzone.com.
Classroom Resources: Software Supports 3D GameStudio. Available online at http://conitec.net/a4info.htm.
Classroom Resources: Software Supports BlitzPlus and Blitz3D. Available online at http://www.blitzbasic.com.
Classroom Resources: Software Supports • Other tools/engines/environments: • OGRE (http://www.ogre3d.org) • Irrlicht (http://irrlicht.sourceforge.net) • Popcap (http://developer.popcap.com) • Blender (http://www.blender3d.org) • Alice (http://www.alice.org) • MUPPETS (http://muppets.rit.edu)
Classroom Resources:Books • Several publishers are now publishing books on game development. • Some are getting to be appropriate forclassroom use as textbooks. • A few of the more active publishers: • Thompson Course Technology (took over and expanded Prima Tech/Premier Press series) • Pearson Education (through Addison-Wesley and especially New Riders Games) • Charles River Media • Wordware Publishing
Classroom Resources:Websites • Industry-oriented • Entertainment Software Association (http://www.theesa.com) • ESRB (http://www.esrb.org) • IGDA (http://www.igda.org) • Game development news • Gamasutra (http://www.gamasutra.com) • Slashdot (http://games.slashdot.org) • And do not forget google! • There are far too many good sites to list here!
Classroom Resources:Websites • Do not forget our course website: http://www.csd.uwo.ca/courses/CS437b • There are course notes, sample exams, and lots of links to games-related material available on our website.
Conclusions and Looking Forward • Moving forward with games in acurriculum involves careful consideration: • Sometimes negative perceptions of gamestaint the study or use of games. • Being taken seriously by peers, parents, thecommunity, and sometimes even students. • Issues in gender balance and inclusiveness. • Will there be the support and resourcesmade available that are needed?
Conclusions and Looking Forward • That said, games and game studies have been successfully integrated before. • At the college and university levels. • And at the secondary and elementary levels. • With the growing acceptance of game studies at all levels, the time is right to pursue this further!
Conclusions and Looking Forward • Studying game development in a computer science curriculum has many interesting and exciting possibilities. • Interesting and engaging problems to solve. • Opportunities to express creativity. • Enriching experiences for students. • Experience in working in groups. • Possibilities for interdisciplinary studies. • Studying games does not need to be limited to computer science either!
Conclusions and Looking Forward • Many resources are becoming more readily available to support this. • Software tools and environments. • Textbook-grade references. • Websites on the Internet. • It is becoming easier and easier to add games-related lessons and course work to a computer science curriculum withgreat success!