A coworker recently asked me about approaching programming through making video games. This is what I put together:
If you're looking for tools to encourage learning to program via making computer games, Invent With Python is likely the best fit. It's a book written specifically with the goal of teaching programming skills through game creation and it's F/OSS. Python has really gained a strong foothold as a teaching language with strong practical applications, too.
As an immediate impetus, there's the Liberated Pixel Cup. It's a competition to create game content and put together games using that content.
Invent with Python and related resources
Making Games With Python & Pygame: Sequel to Invent With Python. Includes source code and discussion for various simple games.
Pygame: The actual Python game engine used above. Quite powerful,
Other Python Programming Books/Resources
Using Pygame
Game Programming: The L Line, The Express Line to Learning
Introduction to Programming Using Python and Pygame
Without Pygame
Snake Wrangling for Kids: Learning to Program with Python: Python programming book oriented at kids, ages 8 and up.
A Gentle Introduction to Programming Using Python: The MIT OpenCourseWare Introduction to programming class. Very useful.
Learning Python: In many ways, the book for Learning Python. It's not as beginner oriented and it's not F/OSS.
Python Docs. (These are Python 2.7. Python 3 might be more useful)
Learn Python The Hard Way: One more online book oriented at beginners. Reasonably popular.
Python Wiki Beginner's Guide: An amalgamation of Python beginner's resources.
Python Wiki PythonGames Entry: Discussion on both Python games and game development resources.
Other Programming Language/Intro to Game Creation resources
I found surprisingly little outside of the Python sphere. There's a lot of game development stuff, of course, but little is beginner focused.
Game Maker's Apprentice: Introductory game programming text for Game Maker (Delphi based) proprietary game making software. Very well reviewed.
C Programming's Game programming page: Not really intro oriented and Microsoft focused.
Beginning C# Game Programming: C# intro book. Comes with mixed reviews and apparently has a lot of errors.
MSDN Beginning Game Introduction: Microsoft's Beginning Game development introduction
GUI based game creating environments
Game Editor: F/OSS 2D game authoring
Game Maker: Education oriented, but proprietary, game design software that uses it's own, Delphi based scripting language.
Maker3D Crossplatform 3D RPG. Might be good, looks a bit scuzzy to me.
RPG Maker: Long running RPG creator series. Largely Japanese.
Wikipedia RPG Creation Software Page
Advanced Topics
Programming communities/sites
Reddit is a user moderated community with lively discussions with a wide variety of talented contributors. Particularly in technical subreddits such as /r/programming, industry leading experts show up regularly in discussions and often offer a lot of help. It also contains the dregs of the internet, as any such open site does.
Gaming Developer communities/sites
PyWeek: Python Game Programming Challenge community with bi-annual challenges.
AltDevBlogADay: A daily blog with a lot of useful discussion on game design, development, marketing, etc. Very, very good.
GameDev.net: A game development community.
Gaming/Graphics Engines
Panda3D: F/OSS game and simulation engine originally from Disney and now maintained by Carnegie Mellon. C++ under the hood, but intended to be called from Python. Apparently very powerful with several successful commercial games using it.
CrystalSpace: F/OSS realtime 3D graphics SDK. Related is CEL which extends Crystal Space into the game engine realm and includes bindings for Python.
OGRE: F/OSS 3D rendering engine only. C++ based.
Bullet: Commonly used (within gaming industry)F/OSS physics engine with rigid body and soft body support as well as collision detection.
Other tools/Resources
Blender: F/OSS 3D content creation suite. Scriptable with, yes, you guessed it, Python. Related is the Game Blender, a game engine.
OpenGameArt.org: Community and repository for open access art resources. Also hosts the Liberated Pixel Cup.
ccMixter: Community and repository for Creative Commons licensed remixable sound and music pieces.
The Freesound Project: Like ccMixter, but only with sound samples.
Hackable Games
Games and simulators that are open source and useful to look at, perhaps.
Flight Gear: F/OSS flight simulator. Highly detailed, written in C++.
Frets On Fire: Mostly F/OSS music rhythm game built using Python and Pygame.
The Quake/IdTech Family: Open source releases of the game engines behind id's Quake family of first person shooters
Battle For Wesnoth: F/OSS turned based strategy game. Lively community and easily created campaigns plus scriptability (through Lua) and it's own mod community.
The Spring Engine: A F/OSS real time strategy (RTS) game engine and framework. Spring:1944 is one standout game built on the engine. Of note, the computer controlled enemies can be scripted with Python, C++, Lua and Java derived languages.
Widelands: A newer and slower F/OSS RTS game than the Spring derived games.
Cube 2: Sauerbraten: Another F/OSS FPS engine and game.
FreeCiv: Empire building turnbased strategy game
Note:
I've written the post in the Markdown, um, markup language. There are a variety of tools to convert Markdown into other formats, like HTML or PDF. I use pandoc. There's also a web based converter.
No comments:
Post a Comment