Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 668

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 199

Deprecated: Creation of dynamic property Automattic\Jetpack\Connection\Manager::$error_handler is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/vendor/automattic/jetpack-connection/src/class-manager.php on line 91

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Instagram_Gallery::$is_wpcom is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php on line 23

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Mailchimp::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php on line 17

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php on line 21

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather::$is_wpcom is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php on line 22

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Gutenberg_Available_Extensions::$wpcom_is_site_specific_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/gutenberg-available-extensions.php on line 20

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Memberships::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php on line 23

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Memberships::$wpcom_is_site_specific_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php on line 24

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Subscribers::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/subscribers.php on line 15

Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 38

Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 38

Deprecated: Creation of dynamic property WPCOM_Widget_Goodreads::$shelves is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/modules/widgets/goodreads.php on line 33

Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /var/www/twodee/blog/wp-includes/script-loader.php on line 348

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_classic_block is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 347

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_block is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 349

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_block_side is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 350

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$panels_block is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 351

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$used_block_buttons is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 354

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/twodee/blog/wp-includes/class-wp-term.php on line 198

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/twodee/blog/wp-includes/class-wp-term.php on line 198
» Learning Elsewhere: Tales from an Extra-curricular Game Development Competition

teaching machines

Learning Elsewhere: Tales from an Extra-curricular Game Development Competition

June 26, 2013 by . Filed under
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
public, writing.


Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 3030

Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/class.jetpack.php on line 4255

Deprecated: Creation of dynamic property Jetpack_Carousel::$localize_strings is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel.php on line 339

Following is a draft of a talk I am to give at ITiCSE 2013. The work discussed was done several years ago at Iowa State University, during my first full year of full-time teaching. I wish I had more quantitative results, but its absence is sort of consistent with the premise that we cannot do everything as educators.

Let’s start with a little game. I will make three statements about me. One of them is not true, and you, the audience, must figure out which it is. Here they are:

  1. One reason I married my wife is because she reminds me of a character from my favorite game.
  2. I think every computer science program should offer game development classes.
  3. I unknowingly recreated the depth-first search algorithm in 5th grade, when I was 11.

What do you think?

After this talk I’m happy to talk to you about my wife and my 5th grade exploits. For the time being, I’d like to talk about why I don’t think every computer science program should offer game development classes.

Game Development Education Fever

I can list a few reasons why adding gaming curriculum might not be a good idea. They all really have to do with maintaining our integrity as teachers.

Unqualified

Many of us are simply not game developers. The whole education system works best if we teach what we know. Irish game developer Tony Kelly writes this criticism in an essay:

Perhaps the single biggest criticism levelled at the current crop of courses in Ireland is the apparent re-badging of traditional media and computer science courses to include the word ‘games’ somewhere in the title, while failing to adapt the content and instruction offered to deal with real-world issues the games industry, and by extension the course graduates, face on a day-to-day basis.

His sentiment is echoed all over the Internet.

Interestingly, our not being game developers doesn’t mean we don’t recognize what a game developer needs to know. Monica McGill published a report in 2009 on the “expectation gap,” which is the difference between what academia values in their graduating seniors and what industry values in their new hires. She found through a survey posted to 15 game development programs and a number of game studios, that both parties have pretty much the same expectations. The only significant differences were that those 15 programs gave less attention to scripting languages and concurrency than industry would have liked, and those programs placed more emphasis on computer graphics than industry wanted. For most other skills, academia and industry tended to agree.

This sounds like a checkered flag: let’s roll out the gaming curriculum. However, a few things give me pause:

  1. 15 is not a large number. McGill says the candidate pool was only 40. Those 15 schools might have been top tier game development programs. It may be that our own departments don’t know what industry values.
  2. Agreeing on paper is easier than examining real graduates. Let’s put together a study where we look at game development graduates from schools ranked like our own and see what industry thinks.

A fundamental problem stands in the way of our being qualified: a game developer develops games. Few of us have the time to be both an educator and a game developer. (Do you know how many hours game developers put in each week?) A number of institutions have dealt with the lack of qualified teachers by hiring real game developers as adjunct faculty, which is better than pretending to have the skills in house.

Our Motivation

Many of us snidely accuse programs that start offering game development classes as motivated by student tuition money. However, maybe we’re just mad we didn’t think of the idea first. McGill again chimes in on this with a real study on the motivation behind gaming curriculum in the US and the UK. She has this to say about American motivation for introducing gaming:

In the US, the interests of the students (both current and prospective) ranked as the highest motivating factor (41%) followed closely by the interests of the university or department (35%). The interests of faculty ranked at 18%. Of lowest consideration were the interests of industry (6%).

Industry push was only 6%. That seems dangerous to me. (The UK was a bit more balanced.) Think about what we’re doing: students are being given more leverage than industry on deciding our curriculum. Our governments will not be happy when they hear about this. We might lose some funding.

I heard Edward Tufte once encourage us not to pretend to know what motivates people. When we look at just our own motivations, we see that they are quite soupy. We can only expect that others’ are soupy too. Having said that, whatever the motivations are behind this video, we should not be fishing for students in this way:

http://www.youtube.com/watch?v=cjCo2I3ooK0

This approach is manipulative.

We Can’t Do That to our Students

A third reason we should think twice about adding gaming curriculum is that we may be paving our students way to an industry that may suck all the joy out of their lives, destroy their marriages, and make their children emotionally bankrupt. Consider these statistics from a recent survey of 1000 developers, conduct by Game Developer magazine:

The Alternative

My thesis today is not, “Turn away from gaming.” Games are a major part of our students lives. The Pew Internet & American Life Project reports that 97% of American children play video games. Nielsen Games says 50% of young adults in the UK play video games. We’d be silly not to take advantage of games. What I propose is that, instead of us lecturing on about something we don’t know about, let’s use the resources we do have to build an unstructured learning environment outside of any course. For the rest of our time today, I will share about one such environment that I helped put on: a year-long game development competition.

Outside the Classroom?

The first thought that should be jumping into your heads right now is “We are educators. We have to assess, and to assess, we have to have control and structure.” I don’t disagree, as long as we’re in the classroom. But working outside the curriculum means we have freedom. Our careers are not on the line, so we can step back and put students in charge of themselves, which has all sorts of advantages.

What are those advantages? Here are a few:

Our Competition

Setup

Okay, let’s talk about our competition, so that you can tell me what we did wrong. It started off because I sat in on a 3-D modeling class taught by a design professor. He said, “You know, we’ve got students in our two programs that love games. We should do something together.” Later, when a grant notice for student competitions came through my email, we applied and were awarded the grant. We were going to hold a game development competition.

The birthplace of our competition was a 3-D modeling class, where I made this model of my son’s pull toy.

Since our motivation was to build bridges between our two programs, we decided that students would team up and that each team that entered would have to have a member from a technology major, one from design, and one from business, because that seemed important. Others were invited to join too, but at least these three were needed.

Games are very diverse these days, so we figured we’d need some categories to help us distribute prizes in different directions. We created three: PC/console games, serious games, and mobile/web games. The teams would have the academic year to complete their games, and then at the end, we’d bring in judges to evaluate them at a public exhibition. The top three teams in each category would get a cash prize, provided by the grant money. The prize money was split evenly among team members. We can never give money away with state funds. Thankfully, this grant was from a private foundation.

We wanted teams to form early, but we knew there’d be personnel issues to sort out. We required teams to commit their rosters and category to us by the halfway point of the year.

Execution

We started the year off with a visit from a fledgling studio that had just published an Xbox game. People were excited. There was a buzz in the air. We decided to have monthly visits from developers. Our next visit was from two alumni who had gone into game development. Sadly, we found out the day they arrived that they had been laid off. In their talk, they shared horror stories of the industry: long hours, failed marriages, canceled projects, and incompetent managers. Some participants were sobered by their honesty.

Apart from these talks, the students really just worked on their own. They brought in skills from their classes and did a lot of reading and searching. By mid-year, however, we saw that more students might finish if we added a little bit of structure. A second design professor decided to offer an optional independent study studio course so that teams would have some dedicated time to work together. There were no lectures and everyone got As.

The categories proved to be disappointing. We had 9 PC/console entries, 3 serious, and 3 mobile. Bad planning on our part. The serious games category was especially frustrating, because we had gone out of our way to solicit “bounties” from non-profits across the state to commission games. We thought students would love to have real clients. No bounty was claimed and not all of the three entries in this category had a complete game deserving of a prize.

The major requirements were also disappointing. The design and technology majors approved of each other, but few saw the point of having a business major. After a while, I started to agree with them. We really needed an advocate from within the College of Business, which we had sought but failed to secure.

Even so, teams persevered. 120 students registered on a team at the midway point. At the end of the year, we held a public exhibition in our student union, with 80 of the 120 still in the game. The exhibition day was busy and great. A designer from Disney Interactive spoke, we had cake, and a dean gave out prizes. Our award sculpture was a 3-D-printed trefoil knot.

Assessment?

When all was said and done, we tried to figure out what happened to our students through a survey. One-third of the 120 registrants responded. I’ll be honest, the survey is really lacking in quantitative results. I really wish I had an sidekick that was good at experimental design.

We wondered if bridges had been built across the three programs. So, we asked, “Suppose in future competitions no major requirements were imposed. How likely would you be to recruit a student with a ______ major?” For technology, 34 said very likely, 1 said flip a coin, and 0 said very unlikely. For design, 25 said likely, 1 said flip a coin, 3 said very unlikely. For business, 1 said very likely, 8 said flip a coin, and 15 said very unlikely. It looks like art and design cozied up pretty well. Poor business.

Even though this was extracurricular, we were hopeful it had a positive academic impact. We asked students about what effect the competition had on their studies. Their choices were non-exclusive. 31 said, “I love my major and want to learn more.” 11 said, “It contributed to my classroom learning.” 15 said, “I’d like to pursue a career in the gaming industry.” 6 said, “I am unfazed.” Only 11 said it contributed to their classroom learning, but 31 were well-satisfied with their major. The way I interpret this, given the context of the quotations I’ll share next, is that students judge their major based on idealized notions rather than their professors, whom they often regard dismally. The competition helped them see the skills of their major outside of a professor’s command. Less than half wanted a career in the game industry, which is good for where I live.

The most enjoyable part of the survey were the open-ended questions. We asked, “What did you learn?” A few said:

We asked, “What was it like to be your own bosses?” A few said:

We asked, “How did you feel about the lack of structure?”

Conclusion

In closing, I can’t tell you exactly what each student learned from this competition, but we got them excited, they reported they learned something, they built interesting games on their own, they worked with people of other majors, and we all had some cake. Our interest in gaming was a response to our students’ interest. One way we could have responded was by offering a new course, but we would have been faking the whole way through. However, we are educators and have more than one tool in our belts. We met our goals through an unstructured competition, without planning a single lecture or pretending to be something we are not.

Games

Further Reading