IT-Universitetet i København
  Tilbage Kursusoversigt
Kursusnavn (dansk):Programming for Game Designers 
Kursusnavn (engelsk):Programming for Game Designers 
Semester:Forår 2012 
Udbydes, spil (games) 
Omfang i ECTS:7,50 
Min. antal deltagere:12 
Forventet antal deltagere:20 
Maks. antal deltagere:30 
Formelle forudsætninger:Being in their second semester, students are expected to be familiar with basic principles of and approaches to game design, including the development of an initial idea through to implementation in some form.

No experience with programming is expected for this course, though some knowledge will be advantageous.
Information about study structure
This course is part of the new study structure on MTG, and will work as an elective course for new students. For students enrolled before August 2010 this course will replace Experimental Gameplay which is to be taken on the old MTG 3rd semester. 
Læringsmål:After completing this course, students should be able to:

* Implement code utilising fundamental aspects of programming, such as loops, recursion, and object-orientation, and discuss how they are relevant to digital game prototype development and possibilities for experimental interaction.

* Apply methods of rapid prototype programming, testing, and evaluation to a small scale project and discuss this process.

* Implement a working digital game prototype from start to finish on their own.

* Develop an experimental form of game-related interaction and implement it to a playable state 
Fagligt indhold:This course is intended to provide game designers with the skills necessary to express themselves procedurally by introducing the fundamentals of programming in a framework aimed toward sketching games and interactions in code. Emphasis will be placed on more experimental approaches to leveraging the features of programming languages and technologies in creating interesting game prototypes.

Game designers are often in the unique position of having to conceptualise and express highly procedural and programmatic designs while not being able to read or write the code that will ultimately implement them. While such a division of labour is often a necessity in large-scale game development, it is also the case that designers who know the fundamentals of programming have a number of key advantages.

1/ By learning to program you will be able to express your design ideas directly in "code sketches" which will communicate not just the idea behind the design, but the experience of interaction itself, allowing you to rapidly iterate on concepts without requiring outside assistance.

2/ In communicating with team members, particularly programmers, you will be able to "speak the language" more fluently and thus contribute ideas and understand issues as they arise, helping to integrate the team more closely.

3/ By being able to realise design ideas in code you will be able to communicate with the game design community at large by presenting them with functional prototypes/sketches of designs which can then be commented on, providing you with more rapid and extensive feedback on your work.

The course will introduce designers to the programming language Processing, an open source language with a strong community particularly focused toward artistic and interactive applications of programming. Processing has been designed to be an introductory language for people without any background in software development and is ideal as a "first language". Further, Processing is sufficiently similar to other, more mainstream languages such as Java, ActionScript, and C# that learning it provides an excellent stepping-stone toward more sophisticated and powerful frameworks. Processing itself is an extremely powerful and versatile platform for creation, however, and a great variety of possibilities for creation with Processing can be experienced on the Processing exhibition site:

In order to learn processing the course requires students to own the textbook "Learning Processing" by Daniel Shiffman, written as an introduction for people with little or no experience in programming and oriented toward fun and artistic software development. Classes will follow the textbook fairly closely while integrating specific discussion of game design and development possibilities as well as related exercises.

In addition to learning a solid programming language, the course will focus on experimentation with interactive possibilities. That is, we will not spend our time explicitly working on physics engines or platformers but will explore ways in which technology and programming language concepts can contribute to new ideas in game design and development. The expectation is that students will create novel forms of play and interaction by focusing on the infinite possibilities inherent in learning a programming language as flexible and open as Processing. 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

14 weeks of teaching consisting of lectures and exercises.

The course will consist of 14 lectures and exercise sessions, each introducing and exploring an aspect of programming in Processing that will build the students toward being able to develop their own small games and toys in the language.

Lectures will consist of an introduction to a programming concept, such as recursion or iteration, and worked examples to clarify how the concept operates. Many lectures will be hands-on, allowing students to go through worked examples at the same time as the lecturer in order to get a feel for the process. In addition, some time will be spent discussing the nature of the interactions and procedures made possible by the aspects of programming being discussed in order to explore the experimental and novel elements which could be used in developing interesting games and interactions.

After each lecture will be an explicit exercise session in which an exercise will be assigned and students will work on creating a small piece of prototype code with help available.

See the schedule here:
link to the time table
The schedule will be available shortly before the beginning of the term. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

This course has mandatory assignments (e.g. attendance, papers, exercises, presentations, productions), that need to be completed/approved before being eligible to register for the examination:

Assessment for the course will be based on 8 mandatory assignments based on what is learned in class. The first seven assignments, beginning after the students have a basic grounding in Processing, will be small scale prototypes and will be handed in on a weekly basis, forming the majority of each week's homework. A final, larger prototype will be due at the end of the course, with extra time provided for students to develop a more complete game or toy which explores a novel interaction concept.

Along with each prototype a small report discussing the student's intentions and points of interest in the prototype will be required, particularly focusing on experimental aspects and an reflecting an understanding of the relationship between the code itself and the nature of interaction/play that is produced.

All 8 assignments are mandatory and must be submitted by the due date. During the course assignments will be assessed as Approved/Not Approved. Missing a hand-in or not gaining approval will result in being ineligible for the rest of the course and the final evaluation. Basic feedback will be given after each assignment to help students gain insight into their work.

At the end of the course all 8 assignments will be officially handed in to the exam office for the final assessment. All of the assignments may be reworked at any time prior to this final hand-in.

The final grade will be assigned based on an assessment of the complete body of work produced by the student over the entire course.

The course will be based on the textbook "Learning Processing" by Daniel Shiffman which all students are required to purchase and bring to class.  

Litteratur udover forskningsartikler:The course will include a class blog which will be required reading throughout. The blog will include further resources surrounding programming and experimental approaches to interaction and play such as: tutorials and articles to read, videos to watch, games to play, and more. Students are welcomed and even expected to contribute to the blog. 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
Torsdag 10.00-11.50 Forelæsning ITU 2A20
Torsdag 12.00-13.50 Øvelser ITU 2A20

Eksamen afholdes på følgende tid og sted:
2012-05-23 No later than 3PM Eksamensopgave 1 ITU The Examination Office (2E)