Fall2009.CSCI210 History

Hide minor edits - Show changes to output

Changed lines 28-29 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]], [[Fall2009/FinalProject | final project]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]], [[Fall2009/FinalProject | Final Project]].
Changed lines 28-29 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]], , [[Fall2009/FinalProject | final project]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]], [[Fall2009/FinalProject | final project]].
Changed lines 28-29 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]], , [[Fall2009/FinalProject | final project]].
Added lines 100-103:

* [[http://inform7.com/ | Inform]] - a design system for interactive fiction based on natural language. It is a radical reinvention of the way interactive fiction is designed, guided by contemporary work in semantics and by the practical experience of some of the world's best-known writers of IF.

* [[http://unity3d.com/ | Unity]] - a multiplatform game development tool for 3D (and 2D) games.
Changed lines 28-29 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]], [[Fall2009/CSCI210_Homework4 | Homework #4]].
Changed line 20 from:
* '''Test 2''': ''TBA''
to:
* '''Test 2''': Friday, Nov. 20, 2009
Changed lines 28-29 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]], [[Fall2009/CSCI210_Homework3 | Homework #3]].
Changed lines 9-10 from:
Do you like to play computer games? Who doesn't? Have you ever wondered if you could build your own? If you are interested in exploring game development as a hobby or as a career, this introductory course is for you! We will learn how to develop computer games from the ground up. We wjavascript:insMarkup('[[',']]','http://%20|%20link%20text');ill play with one prototyping environment for quick game development. We will experience one programming language used in the gaming industry. We will develop several games. Who knows... by the end of the semester you may have a working prototype of the next big gaming hit!
to:
Do you like to play computer games? Who doesn't? Have you ever wondered if you could build your own? If you are interested in exploring game development as a hobby or as a career, this introductory course is for you! We will learn how to develop computer games from the ground up. We will play with one prototyping environment for quick game development. We will experience one programming language used in the gaming industry. We will develop several games. Who knows... by the end of the semester you may have a working prototype of the next big gaming hit!
Changed lines 28-29 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]], [[Fall2009/CSCI210_Homework2 | Homework #2]].
Added lines 45-46:
# [[Fall2006/Games and violence]] readings.
Deleted lines 52-53:
# [[Fall2006/Games and violence]] readings.
Added lines 78-81:
* [[http://scratch.mit.edu/ | Scratch]] a cross-platform graphical environment for developing 2D games and animations (Windows, Mac OS X and Linux)
** [[http://youtube.com/watch?v=jxDw-t3XWd0 | Intro video]], and [[http://youtube.com/watch?v=ix6Hlt8xL3E | image effects video]].
** [[http://info.scratch.mit.edu/Support/Reference_Guide_1.4 | Reference Guide]].
Deleted lines 86-89:
* [[http://scratch.mit.edu/ | Scratch]] a cross-platform graphical environment for developing 2D games and animations (Windows, Mac OS X and Linux)
** [[http://youtube.com/watch?v=jxDw-t3XWd0 | Intro video]], and [[http://youtube.com/watch?v=ix6Hlt8xL3E | image effects video]].
** [[http://info.scratch.mit.edu/Support/Reference_Guide_1.4 | Reference Guide (PDF)]].
Changed lines 9-10 from:
Do you like to play computer games? Who doesn't? Have you ever wondered if you could build your own? If you are interested in exploring game development as a hobby or as a career, this introductory course is for you! We will learn how to develop computer games from the ground up. We will play with one prototyping environment for quick game development. We will experience one programming language used in the gaming industry. We will develop several games. Who knows... by the end of the semester you may have a working prototype of the next big gaming hit!
to:
Do you like to play computer games? Who doesn't? Have you ever wondered if you could build your own? If you are interested in exploring game development as a hobby or as a career, this introductory course is for you! We will learn how to develop computer games from the ground up. We wjavascript:insMarkup('[[',']]','http://%20|%20link%20text');ill play with one prototyping environment for quick game development. We will experience one programming language used in the gaming industry. We will develop several games. Who knows... by the end of the semester you may have a working prototype of the next big gaming hit!
Changed lines 85-86 from:
** [[http://scratch.mit.edu/files/ScratchGettingStarted.pdf | Getting Started (PDF)]], and [[http://scratch.mit.edu/files/ScratchReferenceGuide.pdf | Reference Guide (PDF)]].
to:
** [[http://info.scratch.mit.edu/Support/Reference_Guide_1.4 | Reference Guide (PDF)]].
Changed lines 24-25 from:
%comment% (:note Sep. 4, 2009: |Homework #1 is now posted.:)
to:
>>comment<<
(:note Sep. 4, 2009: |Homework #1 is now posted.:)
>><<
Changed lines 24-25 from:
(:note Sep. 4, 2009: |Homework #1 is now posted.:)
to:
%comment% (:note Sep. 4, 2009: |Homework #1 is now posted.:)
Added lines 37-38:
# NPR, "[[http://www.npr.org/templates/story/story.php?storyId=112586347 | Internet Addiction Center Opens In U.S.]]", Sep. 9, 2009.
Deleted lines 42-43:
# NPR, "[[http://www.npr.org/templates/story/story.php?storyId=112586347 | Internet Addiction Center Opens In U.S.]]", Sep. 9, 2009.
Changed lines 41-42 from:
# [[http://www.nytimes.com/2008/10/11/arts/television/11hamm.html | <img src="http://graphics8.nytimes.com/images/2008/10/11/arts/television/hammer.jpg" height=50 alt="fractal"/> A Fantasy Universe Raises Its Broadsword Against World of Warcraft]] from NY Times. [-Designing a successful massively multiplayer online game may be one of the supreme challenges in all entertainment.-]
to:
# NPR, "[[http://www.npr.org/templates/story/story.php?storyId=112586347 | Internet Addiction Center Opens In U.S.]]", Sep. 9, 2009.

# [[http:
//www.nytimes.com/2008/10/11/arts/television/11hamm.html | <img src="http://graphics8.nytimes.com/images/2008/10/11/arts/television/hammer.jpg" height=50 alt="World of Warcraft"/> A Fantasy Universe Raises Its Broadsword Against World of Warcraft]] from NY Times. [-Designing a successful massively multiplayer online game may be one of the supreme challenges in all entertainment.-]
Changed lines 24-26 from:
* [[Fall2009/CSCI210_Homework1 | Homework #1]] (not assigned yet).
to:
(:note Sep. 4, 2009: |Homework #1 is now posted.:)

* [[Fall2009/CSCI210_Homework1 | Homework #1]]
.
Added lines 88-89:
* [[http://people.csail.mit.edu/rasmus/summon/index.shtml | SUMMON]] is a python extension module that provides rapid prototyping of 2D visualizations.
Changed lines 21-22 from:
* '''Final''': [[http://registrar.cofc.edu/ExamScheduleFall2009.pdf | 12-3pm, Wednesday, Dec. 9, 2009]]
to:
* '''Final''': 12-3pm, Wednesday, Dec. 9, 2009
Changed lines 25-26 from:
* [[Fall2008/CSCI210_Homework1 | Homework #1]], [[Fall2008/CSCI210_Homework2 | Homework #2]], [[Fall2008/CSCI210_Homework3 | Homework #3]], [[Fall2008/CSCI210_Homework4 | Homework #4]], [[Fall2008/CSCI210_Homework5 | Homework #5]].
to:
* [[Fall2009/CSCI210_Homework1 | Homework #1]] (not assigned yet).
Deleted lines 33-34:
# [[http://www.nytimes.com/2008/10/11/arts/television/11hamm.html | <img src="http://graphics8.nytimes.com/images/2008/10/11/arts/television/hammer.jpg" height=50 alt="fractal"/> A Fantasy Universe Raises Its Broadsword Against World of Warcraft]] from NY Times. [-Designing a successful massively multiplayer online game may be one of the supreme challenges in all entertainment.-]
Added lines 40-41:
# [[http://www.nytimes.com/2008/10/11/arts/television/11hamm.html | <img src="http://graphics8.nytimes.com/images/2008/10/11/arts/television/hammer.jpg" height=50 alt="fractal"/> A Fantasy Universe Raises Its Broadsword Against World of Warcraft]] from NY Times. [-Designing a successful massively multiplayer online game may be one of the supreme challenges in all entertainment.-]
Added lines 73-75:
* [[http://pygame.org/ | PyGame]] - fully featured 2D games and multimedia programs:
** [[http://www.pygame.org/docs/tut/intro/intro.html | overview]], [[http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html | tutorial]], [[http://www.pygame.org/docs/ref/index.html | API reference]], [[http://mu.arete.cc/pcr/cat/pygame | examples]], [[http://pygame.org/wiki/resources | resources]].
Deleted lines 77-79:
* [[http://www.pythonware.com/products/pil/ | Python Imaging Library]] - supports many file formats, and provides powerful image processing and graphics capabilities:
** [[http://www.pythonware.com/library/pil/handbook/overview.htm | overview]], [[http://www.pythonware.com/library/pil/handbook/introduction.htm | tutorial]], [[http://www.pythonware.com/library/pil/handbook/concepts.htm | concepts]], [[http://www.pythonware.com/library/pil/handbook/index.htm | API reference]].
Deleted lines 90-92:
* [[http://pygame.org/ | PyGame]] - fully featured 2D games and multimedia programs:
** [[http://www.pygame.org/docs/tut/intro/intro.html | overview]], [[http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html | tutorial]], [[http://www.pygame.org/docs/ref/index.html | API reference]], [[http://mu.arete.cc/pcr/cat/pygame | examples]], [[http://pygame.org/wiki/resources | resources]].
Deleted lines 92-93:

* [[http://pyui.sourceforge.net/ | PyUI]] - a simple user interface library in Python.
Changed lines 21-22 from:
* '''Final''': 12-3pm, Wednesday, Dec. 9, 2009
to:
* '''Final''': [[http://registrar.cofc.edu/ExamScheduleFall2009.pdf | 12-3pm, Wednesday, Dec. 9, 2009]]
Changed lines 21-22 from:
* '''Final''': 12-3pm, Tuesday, December 16, 2008
to:
* '''Final''': 12-3pm, Wednesday, Dec. 9, 2009
Added lines 1-97:
!Game Programming

!!When / Where

MWF 11-11:50AM / ECTR 109

!!Introduction

Do you like to play computer games? Who doesn't? Have you ever wondered if you could build your own? If you are interested in exploring game development as a hobby or as a career, this introductory course is for you! We will learn how to develop computer games from the ground up. We will play with one prototyping environment for quick game development. We will experience one programming language used in the gaming industry. We will develop several games. Who knows... by the end of the semester you may have a working prototype of the next big gaming hit!

Course is open to any major. No previous programming experience required.

* %newwin%[[Fall2009.CSCI210_Course_Syllabus | Course syllabus]]

* Student %newwin%[[http://www.cs.cofc.edu/~manaris/notes/pmwiki.php/CSCI210Fall2009/StudentNotes | wiki for lecture notes]] [- (requires password, opens new window) -]

!!Test Dates

* '''Test 1''': Monday, Sep. 28, 2009
* '''Test 2''': ''TBA''
* '''Final''': 12-3pm, Tuesday, December 16, 2008

!!Assignments

* [[Fall2008/CSCI210_Homework1 | Homework #1]], [[Fall2008/CSCI210_Homework2 | Homework #2]], [[Fall2008/CSCI210_Homework3 | Homework #3]], [[Fall2008/CSCI210_Homework4 | Homework #4]], [[Fall2008/CSCI210_Homework5 | Homework #5]].

!!Readings & References

# Intro to '''Python'''
** Magnus Lie Hetland, [[http://hetland.org/writing/instant-hacking.html | Instant Hacking in Python]] (for non-programmers) and [[http://hetland.org/writing/instant-python.html | Instant Python]] (for programmers).
** John Zelle, ''Teaching Computer Science with Python'' transparencies: [[http://www.cs.cofc.edu/~manaris/uploads/Fall2006/sigcse-slides.pdf | one slide per page]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2006/sigcse-handout.pdf | four slides per page]] (PDF).
** Jeffrey Elkner, Allen B. Downey and Chris Meyers (2008), "[[http://openbookproject.net/thinkCSpy/index.xhtml | How to Think Like a Computer Scientist - Learning with Python)]]", 2nd ed., The Open Book Project.

# [[http://www.nytimes.com/2008/10/11/arts/television/11hamm.html | <img src="http://graphics8.nytimes.com/images/2008/10/11/arts/television/hammer.jpg" height=50 alt="fractal"/> A Fantasy Universe Raises Its Broadsword Against World of Warcraft]] from NY Times. [-Designing a successful massively multiplayer online game may be one of the supreme challenges in all entertainment.-]

# [[http://agile.csc.ncsu.edu/pairlearning/educators.php | An introduction to pair programming]]. [-This 9-minute video describes what pair programming is, the do's and don'ts of effective pairing, and the pros and cons of pair programming. Here is the [[http://agile.csc.ncsu.edu/pairlearning/worksheet.pdf | accompanying worksheet]].-]

# [[http://www.paperprototyping.com/what.html | Paper prototyping]] - what is it?

# Wikipedia, [[http://en.wikipedia.org/wiki/Computer_and_video_game_genres | Computer and video game genres]].

# Geoff Howland, "[[http://www.gamedev.net/reference/design/features/makegames/default.asp | How do I make games? A Path to Game Development]]".

# Schiesel, S. "[[Fall2006/CSCI299_NYTimes1 | Online Game, Made in U.S., Seizes the Globe]]", New York Times, September 5, 2006.

# [[Fall2006/Games and violence]] readings.

# Laitinen, S. "[[http://www.gamasutra.com/features/20050623/laitinen_pfv.htm | Better Games Through Usability Evaluation and Testing]]", Gamasutra, June 23, 2005.

# Wikipedia, [[http://en.wikipedia.org/wiki/Game_engine | Overview of Game Engines]].

# Alternative user interfaces (UIs) for game (and other) development:
** [[http://mrl.nyu.edu/~jhan/ftirtouch/ | Multi-Touch Interaction]] - bi-manual, multi-point, and multi-user interactions on a graphical interaction surface.
** [[http://www.ercim.org/publication/Ercim_News/enw57/leikas.html| Pressure-sensitive floor tiles]] - users interact intuitively and naturally with the environment and with each other.
** [[http://www.bodypad.com/eng/QuestionsMainPoints.php | Bodypad game controller]] actuated by the body.

!!Artifacts and Rules

* [[http://www.findsounds.com/ | Sounds]] - find sound effects and musical instrument samples.

* Stock photos [[(http://)www.sxc.hu]], [[(http://)morguefile.com]].
* Textures [[(http://)www.mayang.com/textures]], [[(http://)www.imageafter.com]], [[(http://)www.spiralgraphics.biz(/packs)]].

* [[http://www.writedesignonline.com/resources/design/rules/color.html | Color design rules]] - rules of thumb about color.
* [[(http://wellstyled.com/tools/colorscheme2/index-en.html | Color wheel]] for user interface design.

!!Software

* [[(http://www.)Python(.org)]] official site.
** Python 2.5 [[http://rgruet.free.fr/PQR25/PQR2.5.html | quick reference]].
** Guido van Rossum (2006), [[http://docs.python.org/tut/tut.html | "The Python Tutorial"]] (also available under Help within IDLE).

* [[http://www.irfanview.com/ | Irfan View]] image viewer - a useful image manipulation utility.

* [[http://www.pythonware.com/products/pil/ | Python Imaging Library]] - supports many file formats, and provides powerful image processing and graphics capabilities:
** [[http://www.pythonware.com/library/pil/handbook/overview.htm | overview]], [[http://www.pythonware.com/library/pil/handbook/introduction.htm | tutorial]], [[http://www.pythonware.com/library/pil/handbook/concepts.htm | concepts]], [[http://www.pythonware.com/library/pil/handbook/index.htm | API reference]].

* [[http://scratch.mit.edu/ | Scratch]] a cross-platform graphical environment for developing 2D games and animations (Windows, Mac OS X and Linux)
** [[http://youtube.com/watch?v=jxDw-t3XWd0 | Intro video]], and [[http://youtube.com/watch?v=ix6Hlt8xL3E | image effects video]].
** [[http://scratch.mit.edu/files/ScratchGettingStarted.pdf | Getting Started (PDF)]], and [[http://scratch.mit.edu/files/ScratchReferenceGuide.pdf | Reference Guide (PDF)]].

* [[http://education.mit.edu/starlogo/ | StarLogo TNG]] - a cross-platform graphical environment for developing 3D games and simulations (Windows, Mac OS X and Linux).

* [[http://www.pyglet.org/ | pyglet]] - a cross-platform windowing and multimedia Python library for developing games and other visually-rich applications (Windows, Mac OS X and Linux).

* [[http://pypi.python.org/pypi/Rabbyt/ | Rabbyt]] - a sprite library for Python with game development in mind. It provides fast performance with an easy to use but flexible API (Windows, Mac OS X and Linux).

* [[http://www.vpython.org | Vpython]] - interactive 3D data visualization and modeling for novice programmers:
** [[http://vpython.org/VisualOverview.html | overview]], [[http://vpython.org/VPython_Intro.pdf | tutorial]] (PDF), [[http://vpython.org/webdoc/visual/index.html | API reference]], [[http://vpython.org/contributed.html | examples]].

* [[http://pygame.org/ | PyGame]] - fully featured 2D games and multimedia programs:
** [[http://www.pygame.org/docs/tut/intro/intro.html | overview]], [[http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html | tutorial]], [[http://www.pygame.org/docs/ref/index.html | API reference]], [[http://mu.arete.cc/pcr/cat/pygame | examples]], [[http://pygame.org/wiki/resources | resources]].

* [[http://www.panda3d.org/ | Panda3D]] - a 3D engine for rendering and game development:
** [[http://www.python.org/pycon/dc2004/papers/29/ | overview]], [[http://panda3d.org/wiki/index.php/A_Panda_%22Hello_World%22 | tutorial]], [[http://panda3d.org/wiki/index.php/Main_Page | manual]], [[http://panda3d.org/wiki/index.php/Examples_Contributed_by_the_Community | examples]].

* [[http://pyui.sourceforge.net/ | PyUI]] - a simple user interface library in Python.