game development in computer science education dr. michael katchabaw department of computer science...

48
Game Development in Game Development in Computer Science Computer Science Education Education Dr. Michael Katchabaw Dr. Michael Katchabaw Department of Computer Science Department of Computer Science The University of Western Ontario The University of Western Ontario London, Ontario, Canada London, Ontario, Canada

Upload: sydney-sharp

Post on 26-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Game Development in Game Development in Computer Science Computer Science EducationEducation

Dr. Michael KatchabawDr. Michael KatchabawDepartment of Computer ScienceDepartment of Computer ScienceThe University of Western OntarioThe University of Western OntarioLondon, Ontario, CanadaLondon, Ontario, Canada

OutlineOutline

IntroductionIntroduction Why Study Game Development?Why Study Game Development? Building Game Development Building Game Development

CurriculumCurriculum Classroom Resources Classroom Resources Conclusions and Looking ForwardConclusions and Looking Forward

IntroductionIntroduction

Worldwide, there has been a recent Worldwide, there has been a recent growing interest in video game growing interest in video game studies studies in education circles.in education circles.

Many disciplines are looking into this:Many disciplines are looking into this: Media studiesMedia studies EducationEducation Psychology and sociologyPsychology and sociology Art and designArt and design MusicMusic And, of course, computer scienceAnd, of course, computer science

IntroductionIntroduction

Each discipline has its own interestsEach discipline has its own interestsin studying video games.in studying video games. For example, media studies look into theFor example, media studies look into the

content of games and their impact oncontent of games and their impact onsociety.society.

As another example, many educators are As another example, many educators are investigating the applicability and investigating the applicability and usefulness of games as classroom learning usefulness of games as classroom learning tools.tools.

In terms of computer science, interestIn terms of computer science, interestis typically focused on the issues is typically focused on the issues surrounding the development of games.surrounding the development of games.

IntroductionIntroduction

Most interest in video games in Most interest in video games in computercomputerscience curriculum has been at the science curriculum has been at the university and college levels.university and college levels. Developing games of commercial scale Developing games of commercial scale

and quality often requires a great deal ofand quality often requires a great deal ofbackground and expertise.background and expertise.

For example, game studies at Western.For example, game studies at Western. Nevertheless, we are starting to see Nevertheless, we are starting to see

a move towards the secondary and a move towards the secondary and elementary levels as well.elementary levels as well.

Why Study Game Why Study Game Development?Development? Why study video games in general?Why study video games in general? Why study game development in a Why study game development in a

computer science curriculum?computer science curriculum? Why study this at the secondary and Why study this at the secondary and

elementary levels?elementary levels?

There are a lot of good reasons, There are a lot of good reasons, actually …actually …

Why Study Game Why Study Game Development?Development?The ChallengeThe Challenge

"Game programming is without a doubt "Game programming is without a doubt the most intellectually challenging field of the most intellectually challenging field of Computer Science in the world." Computer Science in the world." - André LaMothe - André LaMothe

Why Study Game Why Study Game Development?Development?The ChallengeThe Challenge

Graphics

ArtificialIntelligence

Animation

NetworksOperatingSystems Software

Engineering

Architecture

Physics

ArtworkOverall

Entertaining PlayerExperience!

Literature

Time Budget

Cinematography

Why Study Game Why Study Game Development?Development?Good Computing ProblemsGood Computing Problems Since game development builds on Since game development builds on

nearly all areas of computer science, nearly all areas of computer science, games can be a good mechanism to games can be a good mechanism to teach students about computer teach students about computer science in general.science in general. Problems are entertaining and involve Problems are entertaining and involve

creativity and ingenuity.creativity and ingenuity. Yet, they also teach students about Yet, they also teach students about

programming, data structures, dataprogramming, data structures, datamanagement, algorithms, and so on.management, algorithms, and so on.

Why Study Game Why Study Game Development?Development?Good Computing ProblemsGood Computing Problems Studying game development can also Studying game development can also

provide rich experiences to students:provide rich experiences to students: Working in teams.Working in teams. Interdisciplinary studies.Interdisciplinary studies. Providing a creative outlet.Providing a creative outlet. Working on concrete, real-world Working on concrete, real-world

problems and applications.problems and applications. Consequently, these can be very good Consequently, these can be very good

computing problems to investigate.computing problems to investigate.

Why Study Game Why Study Game Development?Development?Industry DriversIndustry Drivers The video game industry is a significant The video game industry is a significant

component of the software industry:component of the software industry: Several billions of dollars in sales each year, Several billions of dollars in sales each year,

and growing very rapidly.and growing very rapidly. More units distributed each year than virtually More units distributed each year than virtually

any other category of software product.any other category of software product. Last year, the gaming industry pulled in more Last year, the gaming industry pulled in more

revenue than Hollywood.revenue than Hollywood. For the last several years, video games have For the last several years, video games have

been selected as the “most fun entertainment been selected as the “most fun entertainment activity” of all North Americans according to activity” of all North Americans according to surveys.surveys.

Why Study Game Why Study Game Development?Development?Industry DriversIndustry Drivers Canada has a growing game industry.Canada has a growing game industry.

Ontario, in particular, is home to a growingOntario, in particular, is home to a growingnumber of game companies.number of game companies.

To stay competitive, these companiesTo stay competitive, these companieswill need a number of things:will need a number of things: A skilled workforce to rely upon.A skilled workforce to rely upon. New technologies to improve their products.New technologies to improve their products. New development tools and techniques that New development tools and techniques that

allow their products to be built cheaper and allow their products to be built cheaper and faster, without sacrificing quality.faster, without sacrificing quality.

Why Study Game Why Study Game Development?Development?Student InterestStudent Interest Students are definitely interested in Students are definitely interested in

game development.game development. Since it provides an interesting, Since it provides an interesting,

stimulating, and educational stimulating, and educational experience, why not include it more experience, why not include it more in their computer science course in their computer science course work?work?

Perhaps it might help attract studentsPerhaps it might help attract studentsto computer science …to computer science …

Building Game Building Game Development Development CurriculumCurriculum Building game development Building game development

curriculum can be quite challenging.curriculum can be quite challenging. What topics should be presented?What topics should be presented? How should it be delivered?How should it be delivered? How should students be evaluated?How should students be evaluated? Do tests and exams make sense, or is Do tests and exams make sense, or is

project work all that is needed?project work all that is needed? We will take a look at the answers to We will take a look at the answers to

these and other questions now …these and other questions now …

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

GameDesign

Technical Elements

Software Infrastructure

(Graphics, Artificial Intelligence, Animation, Physics, Networking, …)

Technical elements:Technical elements: These compose the core technologies These compose the core technologies

and foundations that are used to support and foundations that are used to support the game.the game.

This includes graphics, animation, This includes graphics, animation, artificial intelligence, networking, artificial intelligence, networking, physics, and so on.physics, and so on.

While each technology is relatively While each technology is relatively independent, they must work in unison independent, they must work in unison to provide a complete gaming to provide a complete gaming experience.experience.

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

Software infrastructure:Software infrastructure: A good software design pulls the various A good software design pulls the various

technical elements together to form a technical elements together to form a functional software base to support the game.functional software base to support the game.

This layer must keep in mind the best practices This layer must keep in mind the best practices of software engineering, including abstraction, of software engineering, including abstraction, modularity, encapsulation, portability, modularity, encapsulation, portability, reusability, dependability, testability, reusability, dependability, testability, localization, robustness, maintainability, localization, robustness, maintainability, correctness, scalability, usability, and so on.correctness, scalability, usability, and so on.

We must also follow standard software We must also follow standard software engineering processes during development.engineering processes during development.

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

Game design:Game design: With good software and technical design, With good software and technical design,

we we have all the foundations for a game.have all the foundations for a game.

Having good foundations, however, is not Having good foundations, however, is not enough to produce a good game.enough to produce a good game.

Good games require careful and thoughtful Good games require careful and thoughtful design of the structure, content, and design of the structure, content, and approach to gameplay.approach to gameplay.

Without this, the game might be technically Without this, the game might be technically sound, but just not enjoyable to play.sound, but just not enjoyable to play.

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

Games in generalGames in general Motivators and typesMotivators and types

of playersof players The evolution and The evolution and

history of video gameshistory of video games Game genresGame genres The game The game

development processdevelopment process Principles of game Principles of game

design (generic and design (generic and genre-specific)genre-specific)

Interactive storytellingInteractive storytelling Level designLevel design

Puzzle/obstacle designPuzzle/obstacle design Software lifecycle models Software lifecycle models

for game developmentfor game development Technical issues Technical issues

(graphics, artificial (graphics, artificial intelligence, animation, intelligence, animation, sound, networking, …)sound, networking, …)

Real-time softwareReal-time software Engine design and Engine design and

implementationimplementation The game asset lifecycleThe game asset lifecycle Tools and supportsTools and supports Ethical/social issuesEthical/social issues

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

While appropriate for a college or While appropriate for a college or university curriculum, some of these university curriculum, some of these topics are too advanced for a secondarytopics are too advanced for a secondaryor elementary curriculum.or elementary curriculum.

Quite a few, however, are appropriate for Quite a few, however, are appropriate for a secondary and elementary curriculum.a secondary and elementary curriculum. They would be quite suitable for computer They would be quite suitable for computer

science courses, especially multimedia.science courses, especially multimedia. Some might be good topics in other subjects.Some might be good topics in other subjects.

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

Building Game Building Game Development Development Curriculum: TopicsCurriculum: 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.

Game concepts and examples can beGame concepts and examples can beused to support a traditional core used to support a traditional core computer science curriculum as well.computer science curriculum as well. Programming.Programming. Software design.Software design. Algorithms.Algorithms. Data structures and management.Data structures and management. User interface design.User interface design.

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

The International Game Developers The International Game Developers Association (IGDA) has developed itsAssociation (IGDA) has developed itsown curriculum framework for game own curriculum framework for game studies, and runs a discussion e-mailstudies, and runs a discussion e-maillist for this purpose as well.list for this purpose as well.

Information can be found online at:Information can be found online at:

http://www.igda.org/academia/curriculum_framework.phphttp://www.igda.org/academia/curriculum_framework.php

Building Game Building Game Development Development Curriculum: TopicsCurriculum: Topics

In a college or university curriculum In a college or university curriculum focused on game studies, student focused on game studies, student evaluation typically takes the form evaluation typically takes the form of assignment or project work.of assignment or project work. Students, alone or in a group, complete Students, alone or in a group, complete

a small, medium, or large sized game.a small, medium, or large sized game. Tests and exams are relatively rare,Tests and exams are relatively rare,

but are not unheard of.but are not unheard of. Testing students on game studies can Testing students on game studies can

be surprisingly difficult.be surprisingly difficult.

Building Game Building Game Development Development Curriculum: EvaluationCurriculum: Evaluation

Building Game Building Game Development Development Curriculum: EvaluationCurriculum: Evaluation

Screen shots from game projectsdeveloped in Western’s game

development course.

In a secondary or elementary In a secondary or elementary curriculum, tests and exams could be curriculum, tests and exams could be more common, but are still hard to more common, but are still hard to construct. construct.

Assignments and projects involving the Assignments and projects involving the development of games would still play a development of games would still play a key role, however.key role, however. Especially true in courses where games are Especially true in courses where games are

studied for their own sake (like multimedia).studied for their own sake (like multimedia). But, this can also hold true in courses But, this can also hold true in courses

where games are used as examples of where games are used as examples of computing problems (like programming).computing problems (like programming).

Building Game Building Game Development Development Curriculum: EvaluationCurriculum: Evaluation

Assignments and projects in developing Assignments and projects in developing games must be managed carefully.games must be managed carefully. Scope is likely the most serious problem.Scope is likely the most serious problem. Complexity is also a big issue.Complexity is also a big issue. Collecting content and game assetsCollecting content and game assets

can be incredibly time consuming, andcan be incredibly time consuming, andgenerating it might not be an option.generating it might not be an option.

Tools and resources must be in place first.Tools and resources must be in place first. Good progress tracking is a must.Good progress tracking is a must.

Building Game Building Game Development Development Curriculum: EvaluationCurriculum: Evaluation

Before developing a game, it is Before developing a game, it is important to first consider just how important to first consider just how much of the game will be built by the much of the game will be built by the students.students. Scope and complexity are definitelyScope and complexity are definitely

limiting factors here.limiting factors here. There are several key parts to a game.There are several key parts to a game.

Some may be acquired for use with Some may be acquired for use with minimal difficulty and huge gains.minimal difficulty and huge gains.

Others will need to be generated by the Others will need to be generated by the students no matter what.students no matter what.

Building Game Building Game Development Development Curriculum: Project Curriculum: Project IdeasIdeas

Building Game Building Game Development Development Curriculum: Project Curriculum: Project IdeasIdeas

Game Contentand Assets

Content Creationand Management

Tools

Programmingand Support SDKsGame Code

Building Game Building Game Development Development Curriculum: Project Curriculum: Project IdeasIdeas

Game Engine

GameLogic

Game Contentand Assets

Content Creationand Management

Tools

Game Scriptingand Logic Tools

Programmingand Support SDKs

A really good approach might be an A really good approach might be an interdisciplinary approach.interdisciplinary approach.

At a secondary school, there are many At a secondary school, there are many disciplines of study so why not use them?disciplines of study so why not use them? Visual arts for artistic assets.Visual arts for artistic assets. English for story creation.English for story creation. Drama for voice acting and motion capture.Drama for voice acting and motion capture. Music for, well, music.Music for, well, music.

Teaming up like this is a great way to Teaming up like this is a great way to have really interesting and rewarding have really interesting and rewarding projects.projects.

Building Game Building Game Development Development Curriculum: Project Curriculum: Project IdeasIdeas

Another interesting interdisciplinary Another interesting interdisciplinary approach involves teaming up approach involves teaming up secondary and elementary students secondary and elementary students together.together. Elementary students design the game, while Elementary students design the game, while

secondary students build the game for secondary students build the game for them.them.

This allows for some new and interesting This allows for some new and interesting dynamics and collaboration.dynamics and collaboration.

It could also inspire elementary students It could also inspire elementary students to study computer science further when to study computer science further when they reach secondary school …they reach secondary school …

Building Game Building Game Development Development Curriculum: Project Curriculum: Project IdeasIdeas

Building Game Building Game Development Development Curriculum: Project Curriculum: Project IdeasIdeas

Screen shot from Neomancer, an interdisciplinary action/adventure/RPG projectbetween computer science students at Western and art and design students at

Seneca College. Nearly 50 participants are involved in the project.

Classroom ResourcesClassroom Resources

There are a variety of good There are a variety of good resources available to assist in class resources available to assist in class game development activities.game development activities. Software tools and programming Software tools and programming

environments.environments. Books.Books. Websites.Websites.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports

Game Maker. Available online at http://www.gamemaker.nl.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports

Klik&Play. Available online at http://www.clickteam.com/English/klilk&play.htm.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports

Adventure Game Studio. Available online at http://www.adventuregamestudio.co.uk.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports

RPG Toolkit. Available online at http://www.toolkitzone.com.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports

3D GameStudio. Available online at http://conitec.net/a4info.htm.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports

BlitzPlus and Blitz3D. Available online at http://www.blitzbasic.com.

Classroom Resources: Classroom Resources: Software SupportsSoftware Supports Other tools/engines/environments:Other tools/engines/environments:

OGRE (http://www.ogre3d.org)OGRE (http://www.ogre3d.org) Irrlicht (http://irrlicht.sourceforge.net)Irrlicht (http://irrlicht.sourceforge.net) Popcap (http://developer.popcap.com)Popcap (http://developer.popcap.com) Blender (http://www.blender3d.org)Blender (http://www.blender3d.org) Alice (http://www.alice.org)Alice (http://www.alice.org) MUPPETS (http://muppets.rit.edu)MUPPETS (http://muppets.rit.edu)

Classroom Resources:Classroom Resources:BooksBooks Several publishers are now publishing Several publishers are now publishing

books books on game development.on game development. Some are getting to be appropriate forSome are getting to be appropriate for

classroom use as textbooks.classroom use as textbooks. A few of the more active publishers:A few of the more active publishers:

Thompson Course Technology (took over and Thompson Course Technology (took over and expanded Prima Tech/Premier Press series)expanded Prima Tech/Premier Press series)

Pearson Education (through Addison-Wesley Pearson Education (through Addison-Wesley and especially New Riders Games)and especially New Riders Games)

Charles River MediaCharles River Media Wordware PublishingWordware Publishing

Classroom Resources:Classroom Resources:WebsitesWebsites

Industry-orientedIndustry-oriented Entertainment Software Association Entertainment Software Association

(http://www.theesa.com)(http://www.theesa.com) ESRB (http://www.esrb.org)ESRB (http://www.esrb.org) IGDA (http://www.igda.org)IGDA (http://www.igda.org)

Game development newsGame development news Gamasutra (http://www.gamasutra.com)Gamasutra (http://www.gamasutra.com) Slashdot (http://games.slashdot.org)Slashdot (http://games.slashdot.org)

And do not forget google!And do not forget google! There are far too many good sites to list There are far too many good sites to list

here!here!

Classroom Resources:Classroom Resources:WebsitesWebsites Do not forget our course website:Do not forget our course website:

http://www.csd.uwo.ca/courses/CS437bhttp://www.csd.uwo.ca/courses/CS437b

There are course notes, sample There are course notes, sample exams, and lots of links to games-exams, and lots of links to games-related material available on our related material available on our website.website.

Conclusions and Conclusions and Looking ForwardLooking Forward Moving forward with games in aMoving forward with games in a

curriculum involves careful consideration:curriculum involves careful consideration: Sometimes negative perceptions of gamesSometimes negative perceptions of games

taint the study or use of games. taint the study or use of games. Being taken seriously by peers, parents, theBeing taken seriously by peers, parents, the

community, and sometimes even students.community, and sometimes even students. Issues in gender balance and inclusiveness.Issues in gender balance and inclusiveness. Will there be the support and resourcesWill there be the support and resources

made available that are needed?made available that are needed?

Conclusions and Conclusions and Looking ForwardLooking Forward That said, games and game studies That said, games and game studies

have been successfully integrated have been successfully integrated before.before. At the college and university levels.At the college and university levels. And at the secondary and elementary And at the secondary and elementary

levels.levels.

With the growing acceptance of game With the growing acceptance of game studies at all levels, the time is right studies at all levels, the time is right to pursue this further!to pursue this further!

Conclusions and Conclusions and Looking ForwardLooking Forward Studying game development in a Studying game development in a

computer science curriculum has many computer science curriculum has many interesting and exciting possibilities.interesting and exciting possibilities. Interesting and engaging problems to Interesting and engaging problems to

solve.solve. Opportunities to express creativity.Opportunities to express creativity. Enriching experiences for students.Enriching experiences for students. Experience in working in groups.Experience in working in groups. Possibilities for interdisciplinary studies.Possibilities for interdisciplinary studies.

Studying games does not need to be Studying games does not need to be limited to computer science either!limited to computer science either!

Conclusions and Conclusions and Looking ForwardLooking Forward Many resources are becoming more Many resources are becoming more

readily available to support this.readily available to support this. Software tools and environments.Software tools and environments. Textbook-grade references.Textbook-grade references. Websites on the Internet.Websites on the Internet.

It is becoming easier and easier to It is becoming easier and easier to add games-related lessons and add games-related lessons and course work to a computer science course work to a computer science curriculum withcurriculum withgreat success!great success!