Ask Slashdot: Tools For Teaching High School Kids How To Make Games?
First time accepted submitter nzyank writes "The other day I bravely (foolishly?) volunteered to conduct a video game development workshop at my boys' HS. This in Smallsville, Vermont with an average graduating class size of about 20. The idea is to meet once a week and actually create a game, start to finish. It will be open to would-be programmers, designers, artists, etc. I worked on a bunch of AAA titles back in the '90s, but I'm pretty much out of touch nowadays and I'm trying to figure out the best approach. The requirements are that it has to be one of either Windows/XBox or Android, since those are the platforms that I am current on. It has to be relatively simple for the kids to get up and running quickly, and it needs to be as close to free as possible. Teaching them to use stuff like Blender, C#, C++, Java, XNA, OpenGL and the Android SDK is probably a bit much. I was thinking of something like the Torque Engine, but they want $1000 for an academic license, which is never going to happen. I simply don't know what's out there nowadays and could really use some suggestions."
For programmers best suggestion would be XNA and C# as it is really powerful while still being to program with, and you get support to all Windows, Xbox360 and Windows Phone 7. However, you noted that even XNA is probably a bit much.
However, MS Research also has come up with Kodu which is basically XNA and C# in even more suited package for kids. It's really easy to use and you can actually modify your game a lot. It's fully interface based, so there is no need for coding, but it is still fairly powerful and the best of all, you see
Unity is pretty much the best option. It is cross platform, easy to develop in, and has everything you need to get started fast. The documentation is excellent, the community is supportive and the entry-level version is free. Unity
Drinking habits can be dangerous. You can choke on the cloth and the nuns will wonder where their clothes are.
HTML 5 canvas + javascript runs everywhere that matters. Old basic games (cards, gorillas, donkey, snakes, etc) should be a good target.
Do you even lift?
These aren't the 'roids you're looking for.
Check out http://scratch.mit.edu/. It sure looks like kiddy stuff at first glance, but its awesomeness cannot be described, you have to try it yourself.
Since scratch takes care about all the nitty-gritty details, you can focus on actually *designing* good games, which is awfully hard.
http://www.yoyogames.com/make
There is a free version - and paid for. You can code via their visual tool - or on the command line. My 11 year old son makes fine games using this!
The dominant /. mindshare definition of gaming is that it is exclusively 1:1 mapped to 3-d FPS.
If you're willing to break out of that ultra-narrow mindset, there is a possibility of RPGs, text adventures, maybe hex based wargaming, (semi)numerical simulations... A whole world of human computer interaction exists, but only for the open minded.
Reimplement Oregon Trail as a flash game? (try not to get sued)
Supposedly HS kids like vampires and zombie books, so write a text adventure fanfic in the anne rice or twilight universe (try not to get sued). Make all your game lines less than 160 char and play over twitter?
Stock trading game using real stock market data? Or YetAnotherRealWorldFuturesMarketImplementation? Maybe give it a modern twist by implementing it over text messages or whatever?
Hex based wargamer vampire vs zombies? or plants vs zombies? (again try not to get sued)
Actually, "try to write Fing anything without getting sued for copyright and patent violations" might make an interesting and informative meta-game?
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
No, because that isn't fun and will just drive them away from programming. Nobody picks up a hobby or starts learning about something because of the technical details of it. They start doing it to accomplish or make something they want. Coding some fun little games (and tons of unfinished ones!) is the best way for kids to keep interest in programming. When I was a kid and also as teen, I really didn't care about algorithms or making myself think about programming as logical way. I wanted to make fun stuff. Everything else came later, after I've already established that programming was fun and I wanted to learn more about it. This included tons of reading and learning which I wouldn't had done without the initial spark in it.
Pygame is a pretty nice little package for quickly building 2D games. Fairly decent documentation and best of all, free! http://pygame.org/
In fact $49.
It's called 'impact' and games like this are made with it.
You can't handle the truth.
You don't teach mathematics by finding out the most popular calculator of the day and making sure your class knows how to use it, do you? Advanced courses change with the times, but fundamentals settle as a field matures.
This is completely wrong of course. Programming is best taught by doing .
So is math, by the way.
|>ouglas
Game programming would be the last thing I would teach to novice kids, as it has several different parts, from low-level hardware-oriented code to networking, high-level scripting, databases and map design, not to mention a non-programming parts like the graphics.
If you really want to create a standalone game I would suggest something simple using Flash. But if you want to get them into game programming (and teach them actual techniques that it needs) get them into modding. There are many games designed to be easily moddable, the instant feedback and success will be a great motivation, and the kids will learn plenty of stuff they can later use.
I think it would be advisable to start with something 2D, that is simpler to understand and to code. On their first game the kids will have too much to learn, so not making them learn analitic geommetry, lightining, all the tools you'd need for 3D, and lots of other stuff (like "why is my game that slow?") is a good thing. First focus on general programming and basic I/O.
Now, if you take that advice, you'd need a good library for general I/O that is available in a good language for novices. Well, here I can recomend Pygame, on Python.
Rethinking email
The Visual Express versions have no "can't sell" limitation.
Speaking as a current indie & AAA gamedev who has built game-related curriculum for 3 schools (middle school through college)...
Because of the diversity of student types (artist vs game designer vs programmer, etc...) I recommend teaching EPIC's Unreal Development Kit (UDK).
The tools are mature and will immediately offer something to every role on a game project.
As for yourself, the UDK uses Unrealscript which is based on a C++/C# syntax.
There is a wealth of knowledge via books and internet tutorials. (e.g., Just typed in "UDK tutorial" in YouTube and received over 4500+ results!)
A nice bonus is that learning UDK is something the kids can actually put on a resume and/or help them get an internship.
Milage will vary with other pre-built gamedev environments.
Below are a few all-in-one-solutions that have editing features, based in a Windows environment:
App Game Kit (AGK) - http://www.appgamekit.com/
Construct2 - http://www.scirra.com/construct2
Game-Editor - http://game-editor.com/
Game Maker - http://www.yoyogames.com/make
Game Salad - http://gamesalad.com/
Scratch - http://scratch.mit.edu/
Good luck!
Most people speculate about motivational and educational benefits of certain tools and programming activities. We actually measure them. Scalable Game Design, using AgentSheets, teaches kids how to make games starting with simple 1980 arcade games such as Frogger and them gradually move on all the way to modern SIMs like games including sophisticated AI. With middle and high schools all around the US we have a close to 50% participation of girls. And don't think this is just for K-12. The curriculum + tool includes activities for ugrad and grad level education as well.
- Don't think this is possible? See some teacher tranining in action: http://www.9news.com/news/local/article/202987/222/Teachers-play-video-games-for-science-
- check out research data: http://scalablegamedesign.cs.colorado.edu/
Do you want to teach games or programming?
If you want to teach games, the first one should not be a computer game. Make it a board game, a card game or something else that you can create with paper and pens.
Anything beyond that adds complexities that distract from the game design itself. There is very little design-wise in a computer game that you can't have in a board game.
And yes, I am a (hobby/indy) game designer. I've made some board games, a card game, a play-by-mail game, two pen&paper roleplaying games and a bunch of computer games. Largely in that order.
Assorted stuff I do sometimes: Lemuria.org
Contact lego. They might even sponsor the school. The game is Soccer
Actually, there is nothing in Visual Studio Express licenses that forbid programs being developed in it being released using any license, open source/free/commercial.