SG310 - Notes and
Resources
Text: "Core Techniques and Algorithms in Game
Programming" by Daniel Sanchez-Crespo Daimau
General Hacker
Stuff
The
Jargon
File
This is the place to go to learn 'hacker-speak' if you're so
inclined. There's also a print version but the online one is
updated more frequently.
IBM
DeveloperWorks
- A great resource for developers, with articles, tutorials and links
to software.
Object-Orientation
Tips
- A neat page with a ton of information about OOP
Guru
of the
Week
- a
regular series of C++ programming problems created and written by Herb
Sutter.
O'Reilly.Net
- An excellent
source of programming tips/tricks/articles for just about every
platform you
can think of.
Dr. Dobbs -
If you're planning on
being a professional software developer, this is a magazine you need to
know
about - plenty of great articles and tutorials. (I recommend
subscribing,
but you can get a lot of the content from their Web site if you
prefer.) In
continuous publication since 1976, this is possibly the most long-lived
computer
publication ever.
Top-Coder.com
-
If you're
interested in showing your stuff, here's a place where programmers get
together
and compete in coding contests online.
Course-Related
Links
Dictionary
of Algorithms and Data Structures - Straight
from the National Institute of Standards and Technology (NIST).
Game
Tutorials - A good guide to game programming
techniques.
Gamedev.net
- As the name implies, a site for game
developers to share and discuss techniques and algorithms. (Hosted on
IIS, so may not always be available.)
Gamasutra
- (Free registration required) - Another site
for game developers to share techniques.
flipcode
- Though this site is no longer maintained, the
articles and discussions can be found in the archives and contain
useful information.
Generation5 - A site discussing AI programming
techniques and algorithms. It has some information about the
A* algorithm, which we will be covering in class.
Game
Development
Irrlicht
- A
free, open-source realtime 3D engine. Fully cross-platform, written in
C++ and available for .NET.
Free
Game Programming Libraries and Code - Just what it says.
DevMaster.net
- Online
source for game development
The Game
AI Page - A good
reference for building smarts into your games.
Cross-Platform
Game Development for C++ Developers - A good overview of
cross-platform game engines, many of which are free.
Open Source
Gaming
(One of the best ways to learn how to code is by reading
someone else's code. This section is meant as a resource for a wide
variety of games that have source code freely available.)
Cube
-
A basic First Person Shooter game, similar to Quake 3. What makes this
useful is that the code is freely available so you can learn how to
code a game like this yourself and even adapt the code for your own
use.
Open
Source Gaming
- A nifty site devoted to open source games for multiple platforms in
various languages.
Open
Directory: Games - A page of links to open source games and
game
development projects.
Home
of the Underdogs - Yet another collection of links to open
source
gaming projects.
Tools
CuteWriter
-
A free PDF convertor for Windows. It lets you create PDF
files
from any Windows application that can print. Very useful for
creating cross-platform documents.
Dia
- a free, cross-platform technical drawing tool. (This site
only supplies the Windows version.)
OpenOffice.org-
The OpenOffice.org project is producing a free, open-source competitor
to Microsoft Office. OpenOffice.org can read and write
Microsoft
Office files and has database and drawing tools as well.
Bonus
features: built-in export to PDF and the ability to export presentation
files to Flash format.
Essays
on Programming and the Profession
How
to Interview a Programmer - This
is an discussion with several industry veterans about techniques they
use to find the best qualified programmers for a project.
The
Lost Art of
Computer Programming - An
intriguing page of essays by a professional programmer who became one
"by accident".
How
to Think Like a Computer Scientist
- A book that attempts to live up to its title. The language used is
Python but the lessons are easily applied to other programming
languages.
How
to Write
Unmaintainable Code - This
tongue-in-cheek essay is a guide to writing maintainable code and is an
amusing and informative read.
Deleting
Code - A deceptively simple
essay on what to do with code you're no longer using. (It's more subtle
than you may think. A recommended read. )
The
Pragmatic Programmer - Homepage
of the book of the same name, this site also contains excerpts from the
book as well as essays from the authors on the profession. Highly
recommended.
The
Tao of Programming - A
well-done, tongue-in-cheek look at computer programming in terms of
Eastern mysticism.
Quotes
on Program Development - Like
the title says....
Code
and Personality - How to tell
what kind of person you are from looking at your code.
Problem-Solving
Strategies - Not specifically
about programming, but a good set of rules-of-thumb for dealing with
technical problems.
How
to Be a
Programmer - This is a link to a
230 KB PDF file that summarizes the technical and non-technical things
that the author (a Ph.D in Computer Science and professional programmer
with 20 years of experience) wishes someone had explained to him at the
beginning of his career. Good, clear writing with useful real-world
tips.
Don't
Live with Broken Windows - An
interview by a pair of professional programmers (The authors of "The
Pragmatic Programmer" seen above) about "software craftsmanship and the
importance of fixing the small problems in your code, the 'broken
windows,' so they don't grow into large problems. " This is Part 1 of a
ten part series.
Orthogonality
and the DRY Principle - Part 2
of the series - Andrew Hunt and Dave Thomas continue with their
thoughts on program design. (Note: DRY stands for Don't Repeat Yourself)
Good
Enough Software - Part 3 in the
series - This interview is about "the myth of bug-free software".
Abstraction
and Detail - Part 4 in the
series - This interview discusses what the authors mean when they say
"Put abstractions in code, details in metadata."
Building
Adaptable Systems - Part 5 in
the series - Reversible design decisions, making systems configurable
Programming
Close to the Domain - Part 6 in
the series - The benefits of coding in a language related to the
business domain.
Programming
is Gardening, Not Engineering -
Part 7 in the series - The reasons coding is not a purely mechanical
process
Tracer
Bullets and Prototypes - Part 8 in the series
- The importance of getting feedback during the development process
Programming
Defensively - Part 9 in the series
- Programming defensively against your own and other's mistakes.
Organizations/Projects
Mozilla
- The Mozilla project is producing the next-generation Web platform.
Virtual
Network Computing - Remote
desktop software similar to PC-Anywhere, except it runs on every
platform you can name and it's free.
General
Resources
ComputerWorld
- If you want to see how computers are really used in real businesses,
this is a good source. Essentially an offshoot of Computerworld
magazine (available as a free subscription if you can convince them
that you influence buying decisions where you work) , this site is
pretty platform independent and has a decent career section, as well as
a 'gossip' column where actual IT folk write in anonymously and
describe the various ways that management can screw up the
techies.
Advogato
- This is an interesting on-line discussion forum, mainly dealing with
software development.
SoftPro
Books
- This is an excellent source for computer and networking books. You
can order online or go to one of their local stores. (They have one at
Yosemite and Arapahoe in Englewood and another in
Boulder.) You can usually get 10-20% off the list price and if you
join their 'frequent shoppers' club (it's free) you can get additional
savings.
Online References
Online
Computer Dictionary -
Stuck trying to figure out an acronym or computer term? This is a good
site to look it up.
Google
- One of the best search engines out there for the technically
inclined.
igrep
- advertised as the first search engine for technical people.
Just for Fun
Ubersoft
- A funny comic strip about a mythical software/OS
vendor located
somewhere in the Pacific Northwest....
User
Friendly - Yet another comic
strip that looks at the funny side of computing.
Computer
Stupidities - This site collects
actual dialogues between real users and real tech support folk. The
range of misunderstandings and confusion is frequently hilarious.
Peter's
Evil Overlord List - Thinking
about a career as an Evil Overlord? Think you have what it takes to be
the next Darth Vader? Check out this site for a collection of
SuperVillain Do's and Don'ts including 'My ventilation shafts will be
too small to crawl through'.
The
Voice Actor Page
- Want to know who does the voice of Larry 3000 on Time Squad?
Find the answer to this and many more questions about the men
and women who do the talking for your favorite cartoon characters.
Search alphabetically by show title or actor name.
(By the way, Larry is voiced by none other than Mark
Hamill.)
Stupid
Plot Tricks - Expanding on the
Evil Overlord lists, this contains lists of rules for henchman, good
guys/gals, bad guys/gals and even sidekicks. Very funny read.
Insultingly
Stupid Movie Physics - This site
examines many popular movies to see if the action is in line with real
physical laws. An interesting, entertaining and even
educational read.
The
Invisible Library - Dedicated to
books that don't exist but should.
| Notes |
Problem
Solutions and other Code
|
|
|
|
DISCLAIMER:
The views expressed on this site are those of the author and are not
necessarily those of his employer, Westwood Technical College or its
affilliates. This material is intended to supplement the class lectures
and text and is not required to complete the course.
You can e-mail me here
.
|