Wednesday, June 13, 2012

Some Learning Programming Via Videogames Links

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

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.

The Python.org Tutorial and

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

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.

Learn Programming

General Programming

Game Development Reddit

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