×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: Tools For Teaching High School Kids How To Make Games?

timothy posted more than 2 years ago | from the motivation-is-step-1 dept.

Education 237

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."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

237 comments

Best suggestion is Kodu (4, Informative)

InterestingFella (2537066) | more than 2 years ago | (#38503750)

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 [microsoft.com] 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

Re:Best suggestion is Kodu (0)

InterestingFella (2537066) | more than 2 years ago | (#38503764)

you see instant results so beginners love it.

(somehow Slashdot cut end of the post)

Re:Best suggestion is Kodu (1)

Anonymous Coward | more than 2 years ago | (#38503998)

I ran a games programming workshop for my Uni for 8-12 yr olds using Kodu. The kids didn't take to the idea until I made a Pac Man clone in under 20 minutes while they ate their lunches.

Re:Best suggestion is Kodu (0)

Anonymous Coward | more than 2 years ago | (#38504606)

I think this is a very good idea. The first session should be whipping up some kind of extremely simple game before their eyes. Maybe some kind of Doodle Jump clone? That's probably far better than 10 sessions of code before they ever see any result.

The second session should be design for a somewhat grander project. Maybe give an initial 20 minutes on different _types_ of games (with plenty of pictures from history) and then split the group up into 2/3 to come up with what type of game they want (strategy, FPS, adventure, whatever). Then do a vote or be the final decision maker. Then decide on a setting (sci-fi, medieval, pirates, magic, whatever). Probably nothing with an AK-47 or you'll have front page in the local news.

From there the coding and prototyping should seem a lot more interesting to them.

Re:Best suggestion is Kodu (3, Informative)

Canazza (1428553) | more than 2 years ago | (#38504020)

You get the same thing out of Unity3D + C#. with the added bonus of it working on OSX, and it's free.

Re:Best suggestion is Kodu (2, Informative)

poly_pusher (1004145) | more than 2 years ago | (#38504652)

Unity: As well as working on IOS and Android if exporters are purchased. Want to get a kid interested? Tell them that they could put it on their phone and/or sell it in the app store...

It is by far one of the most straightforward applications for game development. The demo scene loads a fully completed level. Press the play button and the map is playable. Press pause and you go back to editing mode. Move some stuff around add or delete lights and press play again to see your changes. There are start to finish level design and mechanics tutorials, a great community, and it is highly intuitive.

This is perfect for teaching a kid how to make games.

Re:Best suggestion is Kodu (3, Informative)

aretae (1631299) | more than 2 years ago | (#38503944)

I've been teaching programming for a bit...For kids' learning there's a pretty clear top-of-the-list set Kodu -- XBox -- my 5 & 7 year old enjoy making these games a lot. -- Scratch -- My teen has used it. Logo -- I loved it as a kid, and it has fabulosu learning, but low video-game capabilities Lego Robotics -- Very good for learning programming, less so for video games. Android programming seems pretty easy for kids (My teen)...can use any dev environment you like. Eclipse, Android SDK, Java, you're ready to go. And you can put the results on your phone immediately.

Re:Best suggestion is Kodu (2)

Rhalin (791665) | more than 2 years ago | (#38504038)

I have to second Kodu. Very minimal learning curve, easy to make relatively fun games in a short amount of time. Options like Unity, Torque, and XNA are reasonable if you have the time to invest in teaching them programming on top of teaching them how to make a game (or need the advanced features, such as cross platform dev, which it sounds like you don't).

With Kodu, you can focus on the game development and/or production, rather than the programming behind it. There are some limitations, such as being stuck with the 3d models and assets Kodu gives you (unless this has changed recently), so consider that when making a decision.

Re:Best suggestion is Kodu (-1)

Anonymous Coward | more than 2 years ago | (#38504230)

How much does Microsoft pay you? Considered getting a real job?

Re:Best suggestion is Kodu (2)

hawguy (1600213) | more than 2 years ago | (#38504398)

How much does Microsoft pay you? Considered getting a real job?

What is your point? It seems that he made a very good suggestion, it sounds like Kodu is just what he's looking for:

Kodu lets kids create games on the PC and XBox via a simple visual programming language. Kodu can be used to teach creativity, problem solving, storytelling, as well as programming. Anyone can use Kodu to make a game, young children as well as adults with no design or programming skills

And there's a free download. If you have a better suggestion, go ahead and suggest it, but don't claim he's a microsoft shill by pointing out that MS has a product that does exactly what he asked for.

Unity3D (5, Interesting)

claytongulick (725397) | more than 2 years ago | (#38503766)

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 [slashdot.org]

Re:Unity3D (0)

Anonymous Coward | more than 2 years ago | (#38503834)

i third this

Re:Unity3D (5, Interesting)

NoSleepDemon (1521253) | more than 2 years ago | (#38503938)

I agree with this, the University I work at runs a game development workshop for 12-17 year olds(ish) that runs for an entire semester, we bring in a lot of big guns from the industry to give them talks as well and next year we're thinking of giving some of the better developers internships at our studio. We've found that Unity3D is a pretty excellent tool for people learning to program, it's also a pretty excellent tool in general, and we use it for our commercial projects as well. I do of course have some gripes with it, for a start the interface is pretty awful (prefabs aren't at all intuitive and nesting them doesn't work right) and source control is a NIGHTMARE - you pretty much need to have the pro version which allows you to turn on the "make my unity project not cause my version control system to tear its eyes out" option or your project's associations will break each time you distribute a new build. - most of the youngsters won't care about that but you're almost guaranteed that one of them will :)

Re:Unity3D (2)

Canazza (1428553) | more than 2 years ago | (#38504068)

I *work* with Unity3D. I love it.
For our 3D projects in the past we've been the long suffering slave of Shockwave 3D. Now all of a sudden our portfolio doesn't look like it's stuck in 2001. Plus, with Pro, (And about $2000) we can port to Droid/iOS in no-time, using 99% of the same source code.

Re:Unity3D (1)

Canazza (1428553) | more than 2 years ago | (#38504078)

oh, and yeah, Source control is a bitch, even with pro. Most of my time is spend ensuring our last commit didn't screw over our prefab associations.

3.5 is supposed to give better SVN Control though.

Javascript - for both Unity3D and HTML5/Webkit/CSS (1)

j-stroy (640921) | more than 2 years ago | (#38504168)

Javascript is what you should teach them. Not the high fallutin everything about it, just the code ganking basics. That way they can use both Unity(free) and make simple and neat HTML5 / Webkit CSS stuff (free). Get their feet wet fast & give them real life skills and a subject they can geek out on in their own time.

Teach them a little bit about "objects" and then using .CSS and an HTML5 / Webkit browser with extensive documentation.. such as Safari *ahem*. It really can do some amazing things without a lot of overhead. If you've missed developments there, then go look. This will also let them make cool web projects that aren't so interactive for the lower achievers.

Build something simple using a browser. Lots of gui events and behaviours are handled by the .CSS objects. Strap it together with a bit of Javascript. Check online.. lots of little demos for you to find and use for your curriculum. The result will work cross platform depending on the various implementations of webkit.

Then for the real deal, Unity. Its great. Altho you'll need more of a structured programming plan and an understanding of how unity is auto-magically "helping" you and where you need to take over and make your own event handlers.

Unity supports both Javascript and C#. To get around project-build / version control problems: export all your modules as a package and submit that into your version control. Then to get the newest version into your project, update your packages & then just re-import that package into your project.

Re:Javascript - for both Unity3D and HTML5/Webkit/ (1)

Canazza (1428553) | more than 2 years ago | (#38504216)

In my experience, code is fine with Unity, I've not had any problems with it mangling that. It's the Textures/Prefabs/Scenes/Shaders and the way they link to the in-game objects that gets mangled by source control. So after a botched commit you might end up with those new objects you added being untextured, or having the components unlinked.

Re: Unity version control (1)

j-stroy (640921) | more than 2 years ago | (#38504484)

Since packages can include all those components and relationships. If you make a "hierarchy" of packages that you import and Unity project folders that contain things that you sellect & export packages from in their entirety, that can work around most of that suffering. (ie click on your scene, select dependencies, uncheck common things you don't want in the package and export)

Re:Unity3D (0)

Anonymous Coward | more than 2 years ago | (#38504098)

Another vote for Unity.

Unity3d is in all honesty your best option. It's most like what the big studios like EA, Ubisoft, and Activision are using these days for the game and content creation (though most still do it in C++ not C#), and the completeness of the Unity3d package means that you'll be able to actually complete a project of some sort in a reasonable amount of time frame.

And lets face it completing something is what's important in one of these type of workshops as most projects that get started never get finished.

I wouldn't bother with Torque or the other things you've mentioned, teaching someone C++ alone would take more time that you are likely to have never mind SDK's like OpenGL, DirectX, and the like.

javascript tetris (4, Insightful)

larry bagina (561269) | more than 2 years ago | (#38503774)

HTML 5 canvas + javascript runs everywhere that matters. Old basic games (cards, gorillas, donkey, snakes, etc) should be a good target.

Re:javascript tetris (1)

localman (111171) | more than 2 years ago | (#38504166)

Right on. HTML+Javascript is a great place to start. It's simple enough that you can see results right away. You can put it online and then play it anyplace to show friends and family what you're making. You can easily tinker with it after the class is over. 2D games will give a far quicker reward for their efforts. The problem space is far smaller so experimentation is more likely to have understandable results. Scripting/running is more straightforward than compile/debug. These all result in maximizing fun over tedium, which I think is important in the early development of a coder.

Re:javascript tetris (0)

Anonymous Coward | more than 2 years ago | (#38504214)

perhaps something like craftyjs

Games are pretty much complex PROGRAMS (1)

Anonymous Coward | more than 2 years ago | (#38503776)

Shouldn't they think first about how to program basic stuff and to iterate thru steps in a logical way....then start to create their first Read-Eval-Loops, to then create a smallish turn based game to then create some proper games!?!?

Re:Games are pretty much complex PROGRAMS (4, Insightful)

InterestingFella (2537066) | more than 2 years ago | (#38503914)

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.

Re:Games are pretty much complex PROGRAMS (1, Insightful)

Alex Belits (437) | more than 2 years ago | (#38504712)

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.

Good!

Then people who should not program would not program.

Scratch? (0)

Anonymous Coward | more than 2 years ago | (#38503778)

http://scratch.mit.edu/ might be too simple, although people have stretched the limitations of it more than I would have originally expected. Drag-and-drop logic blocks and a graphic/sprite-based canvas that reminds me of Hypercard makes me think this is at least worth some investigation.

Scratch (scratch.mit.edu) (4, Informative)

andi75 (84413) | more than 2 years ago | (#38503782)

Check out http://scratch.mit.edu/ [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.

Re:Scratch (scratch.mit.edu) (0)

Anonymous Coward | more than 2 years ago | (#38504104)

Mod this up . . . Scratch is it. Complex enough to make ray tracers. Easy enough for a 4-year-old to make something.

Re:Scratch (scratch.mit.edu) (0)

Anonymous Coward | more than 2 years ago | (#38504340)

Agreed. My 10-yer old nephew picked it up right away. It didn't give him the games that he wanted to make (e.g., Crash Bandicoot, etc.), but he really got into making simple graphical games. It kept him interested and as he matured in his knowledge, his games got better. Simple development environment and even tracks source code.

Re:Scratch (scratch.mit.edu) (0)

Anonymous Coward | more than 2 years ago | (#38504500)

Seconded. My friend uses Scratch at the Boys and Girls Club and the kids just eat it up. They surpassed his (modest) skills in it within a week, and are still tinkering with it, making games that just blow me away for the time it takes them and their age. I imagine some of them will want more, and move on to Unity or try their luck at C#/XNA. Its really a fantastic platform for teaching or learning programming concepts (game design included).

Re:Scratch (scratch.mit.edu) (0)

Anonymous Coward | more than 2 years ago | (#38504614)

scratch is too limited. You can't make a real game with it. You certainly can't make anything 3D with it.
Try Irrlicht, Ogre, or Kodu.

Re:Scratch (scratch.mit.edu) (1)

Kane Devaid (1339253) | more than 2 years ago | (#38504628)

Definitely this! My 13 year old nephew showed it to me yesterday. It allows you to write procedural code but without any typing. Everything is done with drag and drop blocks so you can't cause any kind of syntax errors. This allowed him to see instant results and play about until he got the effect he was after. He showed implicit understanding of concepts like variables, loops, branching etc. He relies a lot on trial and error (which is of course a bad thing) but so did I at that age. The fact is he was getting results and kudos from friends without having to learn OO, memory models, frameworks etc. Whether he will transfer this to real languages remains to be seen.

Unity (0)

Anonymous Coward | more than 2 years ago | (#38503786)

This seems like a perfect match for Unity [unity3d.com]. It has a free version which does not have many restrictions and is reasonably easy to use.

Unity3D (1)

Anonymous Coward | more than 2 years ago | (#38503826)

http://unity3d.com/

Multi-platform, simple to use. It can use blender, 3ds max, etc, etc for objects. All of the scripting can be done in JS or C# using built in Mono.

Full networking support, good asset pipeline... and most importantly, free for the basic version that can deploy to the web or as mac or pc standalone clients, or xbox360.

Annual Education licenses are available for the Pro version @ $99, $200 for Android or iOS deployment support, $300 to deploy to anything. Perpetual licenses are $750... but unless you're making a very sophisticated project to deploy, you don't need anything beyond the basic version. In fact, you can create everything you want under the basic version, then migrate to pro for release if you really wanted to.

No good ideas - (1)

scribblej (195445) | more than 2 years ago | (#38503832)

But you can't use something that must be licensed for them. These kids need to learn a skill they can go home and practice - if any of them are going to use the skills they learn from you, the tools required had better damn well be Free and Open to them.

Re:No good ideas - (0)

Anonymous Coward | more than 2 years ago | (#38503898)

Agreed!

Re:No good ideas - (1)

houstonbofh (602064) | more than 2 years ago | (#38503902)

So why not start with an open source game? Start with ioquake, or now the new iodoom3? http://www.iodoom3.org/ [iodoom3.org] YOu start by analyzing a existing game, and then build on it. The whole concept of open source...

Re:No good ideas - (1)

plover (150551) | more than 2 years ago | (#38504142)

That's a good suggestion if the goal is to teach them what it takes to combine artwork, levels, and puzzles into compelling gameplay.

Of course it has a first-person shooter bias, and won't be suited to a sudoku or Tetris type of game. And a zero-tolerance school board may frown upon creating a shoot-em-up in class.

Re:No good ideas - (1)

InterestingFella (2537066) | more than 2 years ago | (#38504362)

So why not start with an open source game? Start with ioquake, or now the new iodoom3? http://www.iodoom3.org/ [iodoom3.org] YOu start by analyzing a existing game, and then build on it. The whole concept of open source...

So you really want to bore them to begin with? Analyzing someones existing code is a really tedious work for even existing programmers. On top of that they wouldn't get to imagine and make what they actually do want to make. Your whole suggestion is terrible.

If you want to "build upon it", there are far better solutions, like modding Valve's games. Garry's mod is really fun too. Yes, they aren't open source, but do you really want to draconically push such views on newcomers? Because if you do, then congratulations, you just ruined all the fun from starting programming.

Re:No good ideas - (1)

vlm (69642) | more than 2 years ago | (#38503940)

if any of them are going to use the skills they learn from you

Now that, that right there, is where you have to decide if you're going to merely provide low level vocational training or provide (higher?) education. Its difficult/impossible to do both, and both are going to have radically different plans, and results. Decide that first. Then pick your toolset.

Re:No good ideas - (1)

InterestingFella (2537066) | more than 2 years ago | (#38503970)

But you can't use something that must be licensed for them. These kids need to learn a skill they can go home and practice - if any of them are going to use the skills they learn from you, the tools required had better damn well be Free and Open to them.

I really don't see how licensing would play any role in this. Those kids aren't making games (or apps) to sell them, not yet. Licensing mostly applies to that only. Hell, now a days even Microsoft offers Visual Studio for free if you don't sell the programs created with it.

Re:No good ideas - (1)

plover (150551) | more than 2 years ago | (#38504080)

Most environments offer academic licenses that range from "steeply discounted" to "free as in beer" to "free as in speech". Money shouldn't be the only factor to take into account.

Construct (1)

jemtallon (1125407) | more than 2 years ago | (#38503840)

I'm really liking Construct (http://www.scirra.com/construct2/ [scirra.com]) at the moment. It's an HTML5 game engine that's easy enough kids should be able to pick it up and it has the added bonus of being free for non-commercial use. If you want to see it's capabilities, I threw together a little game in around 5 hours of work to learn it's functionality and it turned out ok. You can view it here (http://jemjensen.com/caversrevenge/ [jemjensen.com])

Blender & Unity are a great starting point! (0)

Anonymous Coward | more than 2 years ago | (#38503862)

Well Blender for content creation is your best bet. Aside from being free it also has a game engine built into it, cutting out the export process. Also it has a simple "node" system for setting up game logic. A fair amount can be done with it. The downside is that the "node" setup is limited. I'm REALLY glossing it over. But I taught a gaming course using only Blender and was able to get the main concepts across. If your looking for a full engine with a polished pipeline between it and your DCC tools Unity is a great option. The basic version is free & can do Win/Mac builds, plus builds for online. Other build modules exist for both Iphone, Android, and consoles.

Between those two tools you can easily have enough content to teach WAY beyond intro stuff & open doors for your students to create content after the class has been finished.

GameMaker (0)

Anonymous Coward | more than 2 years ago | (#38503866)

You can use GameMaker. It's free, has a sprite creator and has a programming language built in that is similar to C++. It allows you to teach only game elements in a non-programming format or you can dive deeper into the language and require the students to not use the easy tools and do everything with the coding engine. It also has a lot of free resources online. Here's a link:
http://www.yoyogames.com/make

Re:GameMaker (0)

Anonymous Coward | more than 2 years ago | (#38504672)

I really agree with this. I'm not a programmer. I tried learning many times, with several languages, but I just don't get it. Game Maker helped me understand the basics of programming (proper use of 'if - else', 'and', variables, etc.). It's basically programming with a graphical interface. Instead of writing all the code, you use icons that represent all those 'if', 'and', 'else', 'stop' etc. things. Collision detection is also made easy, and many other things are simple to do.
You can still write scripts if you want to, as AC above me said. I can't stress how simple it is. I never got around to completing a game but that's because rather than start with the basic stuff like pong I went straight for a complex game. I still got pretty far IMO, at least further than I ever did with Action Script, C++ and PHP. Really, for people who aren't sure programming is something they'll like, Game Maker is great. It helps you learn the basics in a more interesting way than scripting the whole thing. Now if you know you want to learn to program no matter how boring it can be to learn at times, then you might want to skip Game Maker and go straight to a programming language.

I would recommend buying a license for the full version. The free version isn't complete but lets you do quite a few things. I don't think a license would cost as much as $1000. The game maker website also features a few games that come with their source code so your students could use that if they can't figure out how to do something. There's also a forum where you can get a great deal of help (one guy gave me quite a complicated script I needed. When I couldn't adapt it to my game, he helped me with that too).

Unreal Engine and Crytek engines (1)

nhat11 (1608159) | more than 2 years ago | (#38503870)

I thought the Unreal Engine and Crytek engines were free to use for academic use? Anyways why not use one of those Mods that even the original half-life and starcraft have? I think it's a good introduction to game design but yet simple enough that anyone can pick up?

Kids These Days (1)

Anonymous Coward | more than 2 years ago | (#38503872)

Starting programming from game making is like starting physics from relativity. It makes no sense whatsoever.

Gamemaker (2)

mrbill1234 (715607) | more than 2 years ago | (#38503874)

http://www.yoyogames.com/make [yoyogames.com]

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!

Re:Gamemaker (1)

Bucky24 (1943328) | more than 2 years ago | (#38504452)

I second this. Used it for years (ironically enough right up UNTIL yoyogames bought it out). It is rediculously simple to make basic games using drag and drop stuff, and the basic engine takes care of all the window creation, image loading/drawing, ect, and there's also a C-like language (I think it's loosely based on Python actually, but doesn't really look like it) that is quite powerful. It's an amazing beginners tool, and was actually created by a professor to teach game design.

first principles (0)

Anonymous Coward | more than 2 years ago | (#38503884)

Every good game producer knows, say, about the event-driven model, coding efficiently in space and time, creating a 3D engine which cooperates with GPU primitives... he may use prebuilt tools which do the job with more optimisation and fewer bugs than anything he has created, but he knows how to use those tools well only because he understands something of how they work.

And every good game writer knows, well, how to write creatively - he is well-read, imaginative, and willing to learn from the successes and failures of others. He doesn't just draw another warehouse and sketch differently coloured aliens to run around within it.

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.

Re:first principles (2)

nessus42 (230320) | more than 2 years ago | (#38504146)

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

Re:first principles (0)

Anonymous Coward | more than 2 years ago | (#38504358)

This is completely wrong of course. Programming is best taught by doing .

Where's the argument that "doing" necessarily means "learning how to use the latest toolkit"?

The first 3D game I wrote involved nothing more than C and the Win32 GDI and event APIs. I was in my mid-teens, i.e. high school level, and I combined my knowledge of mathematics with some tutorial on the nascent public Internet. It started with glorious wireframe and I slowly added shading, lighting, redraw optimisation, etc. That was the correct form of "doing", but it only happened because I already knew enough programming and geometry. Learning by doing alone is for dogs and other lower order beings. Humans benefit from both trial and understanding.

Slashdot def of "game" (2)

vlm (69642) | more than 2 years ago | (#38503910)

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?

Re:Slashdot def of "game" (2)

oneiros27 (46144) | more than 2 years ago | (#38504144)

My first thought when I saw this was the Adventure Construction Set [wikipedia.org].

And wasn't Myst [wikipedia.org] originally written in HyperCard [wikipedia.org]?

If you're looking at writing text-based games, there's MudOS [mudos.org] and other MUD/MOO/MUSH engines out there, most of which are free.

Re:Slashdot def of "game" (1)

vlm (69642) | more than 2 years ago | (#38504220)

Maybe you could implement a "choose your own adventure book" style adventure entirely in a HTML editor. "click here to go north" links to rm6342.html etc.

Not exactly meeting the degree requirements for AI implementation, but ...

Re:Slashdot def of "game" (0)

Anonymous Coward | more than 2 years ago | (#38504224)

"Reimplement Oregon Trail as a flash game? (try not to get sued)"
http://www.thuleroadtrip.com/thule_trail/thuleTrail.html
(captcha was "comeback")

In regards to the thread at large: Making any video game is going to require programming. If your kids aren't interested in programming, they're not going to want to make video games. It's going to scare them away at some point regardless of how you start.

Hero Engine (0)

Anonymous Coward | more than 2 years ago | (#38503920)

http://www.heroengine.com/

Free to use, only take money on profit, powerful and easy to learn.

Construct (1)

Lindan9 (2465020) | more than 2 years ago | (#38503926)

Unity perhaps. Construct (the first one, not construct 2) by Scirra (Scirra.com) is free and open source it doesn't teach "real" programming but it has an object object oriented built in language. It could help the kids learn the basics of logic and a really visual representation of how programming for video games work. There are even some tutorials that you could use or make a lesson plan based off of that make a whole game.

Python + Pygame (3, Informative)

sharp3 (1195261) | more than 2 years ago | (#38503930)

Pygame is a pretty nice little package for quickly building 2D games. Fairly decent documentation and best of all, free! http://pygame.org/ [pygame.org]

Re:Python + Pygame (& Harvard's free videos) (1)

nessus42 (230320) | more than 2 years ago | (#38504112)

I was also going to suggest PyGame. I don't know a whole lot about it, but I do know that Python is a great programming language for writing small to medium size programs quickly. It's also relatively easy to learn. I also know that PyGame has a thriving community, and even a zine dedicated to it.

Also, all of the lectures for Harvard Extension's 3D graphics programming class are online for free:

        http://itunes.apple.com/us/itunes-u/csci-e-234-introduction-to/id428958018 [apple.com]

It's a bit mathematical, but nothing beyond what a smart high school student can handle. IIRC, however, it assumes some knowledge of C. It's probably worth having the students watch these lectures anyway--at least for the ones who are interested in doing so.

|>ouglas

Have a look: (1)

LoRdTAW (99712) | more than 2 years ago | (#38503982)

Have you looked at Unity? ahref=http://unity3d.com/rel=url2html-1549 [slashdot.org]http://unity3d.com/>

Its free and a lot of the complex underpinnings are taken care of and hidden away. A simple to use scripting language is used to create the game mechanics. I have never used it but I have seen it used for the Global Game Jam.

I would keep away from teaching programming unless the students already have programming skills which I doubt is the case here. Keep it simple.

Android (0)

Anonymous Coward | more than 2 years ago | (#38503986)

The kids here (high schoolers) are interested and willing to learn the SDK. So design the game to the capabilities of the programmers. All these kids need something good for their resumes and Android will look much better than almost anything else.

whatever you do.... (0)

Anonymous Coward | more than 2 years ago | (#38504008)

MAKE SURE THEY ARE NOT LEARNING THIS IN ART CLASS.

I had to fight tooth and nail at the local tech school as a consultant to get them to realize that computer programming is NOT a drawing class. Finally after 3 years, we developed a program that allowed computer programming and it let those kids WORK, alongside the kids in the art classes to develop a project. There are a few programmers who are also good artists and vice versa, but not ALL of them.

Computer Programming (web sites, games, etc..) should not be taught between "still life charcoals" and "how to work with water paints"

Re:whatever you do.... (1)

dingen (958134) | more than 2 years ago | (#38504194)

Sadly, this view isn't limited to schools. Lots of design shops started doing websites next to their traditional paper offerings (posters, flyers etc). A lot of people seem to think creating an image of software is not so different from actually creating software.

Not sure about how easy it is to teach (1)

Georules (655379) | more than 2 years ago | (#38504024)

but Blender (blender.org) is free and open source. It has a great community behind it.

Re:Not sure about how easy it is to teach (1)

RobertLTux (260313) | more than 2 years ago | (#38504302)

the biggest problem with Blender is its VERTICAL learning "curve"

If any of y'all think you are a Blender Guru then email me with the subject
BADWOLF BLENDER

and i will send you back a few questions i need answering from somebody that really knows blender.

Try Game Maker...www.yoyogames.com (1)

Anonymous Coward | more than 2 years ago | (#38504032)

The "lite" version is free and pretty robust and uses a modified C++ engine...problem with Kodu is that if you run in a secure education environment, your kids won't be able to save their games as Microsoft screwed the pooch on how the engine writes files to the computer and the game code will be inaccessible to students from secure computers in a network setting (even if they have admin privileges,) It's also pretty limited in what you can do and high school students get pretty frustrated with it.

Game maker is great...lots of good tutorials, basic functions are icon driven. Some of the other engines (Unity, Unreal (which is now free by the way) are going to require some pretty new equipment or pretty high end equipment which your school may or may not have. If you are like the rest of us, you are in the "may not" category and probably running on P4's with video controllers instead of video cards. Game Maker can run on lower end equipment without lots of upgrades.

Also check out the Microsoft DreamSpark program if you are interested in xna. Microsoft will give your students the whole kit and kaboodle (Visual Studio, Server 2008, Kinect beta software development kit, etc) for free. (It's what my advanced gaming students will be using this semester.

XNA (1)

ZeroSerenity (923363) | more than 2 years ago | (#38504034)

You already largely answered this question. Tons of tutorials, samples, labs and whatnot are available specifically for making games. While you're teaching them that, you can also pander to the paticular strengths of students and have them work on one big project.

UDK (1)

Dishwasha (125561) | more than 2 years ago | (#38504036)

Although I wholeheartedly agree with all the people who are going to recommend Unity [unity3d.com] (which is also the platform I prefer), you might be better served with UDK [udk.com] when demonstrating to students. I'd say that Unity is a 3d game engine/platform made for programmers whereas UDK is a 3d game engine/platform made for level designers with support for programmers. You can get a lot of mileage from both platforms without much programming, but UDK is specifically designed so you can create an entire game without one stitch of programming (i.e. Jazz the Jackrabbit [udk.com]).

Also, I highly recommend the free training videos from 3dbuzz [3dbuzz.com], here [3dbuzz.com] are the ones for UDK and here [3dbuzz.com] are the ones for Unity.

ALICE (1)

kj_kabaje (1241696) | more than 2 years ago | (#38504058)

http://www.alice.org/

this always seemed to get reviewed highly... I haven't used it as my kids aren't old enough yet.

DarkBasic (0)

Anonymous Coward | more than 2 years ago | (#38504066)

You can try checking out DarkBasic Professional by The Game Creators. I believe they have a free non-commercial license that you could use. It's a very simple but powerful language, that can be used to develop Windows games. Also the App Game Kit by the same company may be of use as well.

Racket: Bootstrap (1)

drb226 (1938360) | more than 2 years ago | (#38504082)

The project you are looking for is Bootstrap [bootstrapworld.org].

Bootstrap is a standards-based curriculum for middle and high-school students, which teaches them to program their own videogames using purely algebraic and geometric concepts.

Bootstrap uses Scheme/Racket and focuses on the algebraic/functional aspects of programming. The teaching materials are freely available online. They even sell "I program my own videogames" T-shirts.

Corona SDK (1)

FictionPimp (712802) | more than 2 years ago | (#38504092)

I suggest the Corona SDK. It uses LUA, supports Box2d Physics and it's easy to work with a tilemap editor like tiled to put everything together. Plus, you only need to buy it if you want to publish or sell your app.

Gamemaker (0)

Anonymous Coward | more than 2 years ago | (#38504150)

I see no reason for any other tool.

Real Programming for Kids (0)

Anonymous Coward | more than 2 years ago | (#38504176)

Check out Real Programming for Kids at http://www.realprogramming.com/ My son took this years ago and in his first summer course programmed a version of Donkey Kong and learned Visual Basic in the process.

Use any other game engine (1)

mapuche (41699) | more than 2 years ago | (#38504198)

Most game engines are free nowadays, specially if you're a small studio or an academical institution.

My advice is to go for Unity.

gamemaker and kodu (0)

Anonymous Coward | more than 2 years ago | (#38504226)

Gamemaker is awesome, but Kodu is a good first step

Whatever else...this is a great idea (1)

dtjohnson (102237) | more than 2 years ago | (#38504244)

Don't know what to suggest as tools but...at least the question is being asked. High schools today teach kids to be...users, not creators. Their idea of 'tech ed' is to teach kids to use a recent version of MS Word or Excel. Even the old English class standby has become more about reading stuff that someone else wrote and answering questions about it and much less about writing something new. The high school yearbook class has become all about snazzy software to present graphically-attractive pages rather than the content within. So...when someone wants to actually have kids work on creating a new video game, they are really swimming upstream against the current thinking. More power to 'em.

Ogre (1)

znigelz (2005916) | more than 2 years ago | (#38504294)

http://www.ogre3d.org/ [ogre3d.org]

Ogre is a 3D rendering engine with a very large community based around it. We used it for a proof of concept for a real-time simulator, and there were few limitations we faced in using it. It might not be as clean as unity, but it has more flexibility in licensing, as long as you don't might copy left, which in your situation you shouldn't. Actually, I just looked and it seems they made the switch to the MIT licence.

The proof of concept was actually a major improvement over the production simulator, but of course business politics always wins in the end.

It just so happens (1)

Mr_Blank (172031) | more than 2 years ago | (#38504300)

    I am teaching my nephews how to program during their week off from school. I went with a platform that all households had readily available: Excel. Excel VBA is robust enough to create fun games from the Atari generation, forgiving enough to keep new programmers from being frustrated quickly, and the skills learned will carry my wards into many business environments for years to come. Even if Excel goes away, learning to manipulate data, graphics, and data in a spreadsheet program will be useful some day.

     

Why not Blender? (1)

Dracos (107777) | more than 2 years ago | (#38504304)

Since you have previous pro game dev experience, you should know the entire crew is divided up into teams by task. Assuming some sort of 3d platform, not all the kids will have equal interest in art, modeling, testing, coding, rigging, etc. Break them up into teams.

Also, don't dismiss the allure of 3d... it pretty much is the main reason we don't all spend countless hours playing sidescrollers anymore, but aside from phones its the only scenario these kids likely know. Even if you just recreated an old 80's Atari game with minimal 3d, it would seem cooler and engage the kids more.

Blender can be a pain to learn, but once you do it's actually a very efficient workflow. The 2.5/2.6 releases are capable of some pretty amazing effects.

Even better, all scripting in Blender is Python. Much easier to learn than Java or Android SDK.

My second suggestion would be Scratch, but high school kids might turn their noses up at how child-friendly it is.

Game programming is complex (3, Insightful)

Hentes (2461350) | more than 2 years ago | (#38504328)

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.

How about how to play games? (0)

Anonymous Coward | more than 2 years ago | (#38504364)

How about teaching kids how to play games? Only a couple generations ago kids played together, outdoors. Today we live in some kind of Asimov's Foundation world where kids either play alone in their backyard or go to karate class or horse riding class. In Canada a school has banned ball games because they are too dangerous. Playgrounds are covered in rubber so kids don't get hurt. In Paris, France, playground hours are 9:00 - 5:00 and they are surrounded by spiked fences so that nobody can get in when they are locked up.

GameMaker (1)

Pvt_Waldo (459439) | more than 2 years ago | (#38504384)

As someone who's also been roped into the "teach game development" trap, my advice is to stay the heck away from programming and 3D and any other component that requires specialized skills. If you want the kids to actually finish something, then do what you can to make that happen. Not all of them will be programmers or artists, and you don't want to spend all your time teaching those skills. Plus, it's also pretty common for those that can't program (or model) very well to have really huge ideas that far outstrip their ability to actually deliver - which translates into never finishing.

And to that end, my recommendation is GameMaker, from http://yoyogames.com/ [yoyogames.com] There's a free version, it runs on PC and Mac, it's friendly to non-programmers and programmers alike, and easy to use. Tons of free resources available as well (from good to bad).

If you DO want to move up to the higher production gaming style, consider modding. You can pick up a copy of FarCry for DIRT CHEAP, and it's a very modable game engine with lots of good documentation. Or consider modding Valve's Source (Half-Life 2) engine.

What skills are do they have initially ... (0)

Anonymous Coward | more than 2 years ago | (#38504396)

I've used Scratch for children, but I think that Alice is a similar product that is more appropriate for teenagers.

The advantages of these environments is that syntax error become an impossibility, so you can focus upon programming structures. At the same time, they maintain the notion of programming as a language. The programming blocks use words that are similar to the those found in languages like C or Pascal. They also provide a rich library of graphics and sound resources, so you can focus upon the games programming aspect.

Of course, that advice makes certain assumptions. One is that they enter with no programming skills and only a meager concept of what programming is. I am also assuming that you don't have the time to go into depth (for programming) or to cover the full breadth (programming, graphics, audio, etc.) since learning how to program well takes about a year (basic software design, language, data structures, and algorithms). Of course, all of those assumptions may be wrong.

Game Maker (free) (1)

UnknownJoe (1690214) | more than 2 years ago | (#38504440)

Game Maker - cost: $0 for the free version

While it isn't programming by writing code (it's drag and drop actions, though you can use typed code later if you'd like to teach them that), I think it's the best way to teach game development. It's simple to use and quick to learn, but is still capable of creating pretty much ANY video game. Almost any other suggestion will involve knowing a decent amount of programming beforehand and will thus not really work. You'll be limited to 2D unless you want to do serious code, but for a beginner's game you'll most likely limit yourself to 2D anyways.

I started with Game Maker, and from it eventually moved to 100% AS3 Flash game programming, so the skills involved in creating a Game Maker game really do transfer over to other environments.

Pros:
Really easy to learn - no programming knowledge required
Great for rapid prototyping - development is generally much quicker than other environments

Cons:
Limited to Windows (might not apply now, they've been working on it. I think it does HTML5 now.)
Limited to 2D unless you want to teach typed code
In order to do some things, you have to buy the full version (though it's in the $20 per copy range). You probably won't need to buy it at all though.

Irrlicht. (0)

Anonymous Coward | more than 2 years ago | (#38504498)

Irrlicht.
http://irrlicht.sourceforge.net/

Multimedia Fusion (0)

Anonymous Coward | more than 2 years ago | (#38504544)

My introduction to game programming was Multimedia Fusion (http://www.clickteam.com/eng/mmf2.php). It uses an event-based logic system that's quite easy to grasp as a beginner.

Alice.org (0)

Anonymous Coward | more than 2 years ago | (#38504674)

http://www.alice.org/

Why not HTML5? (0)

Anonymous Coward | more than 2 years ago | (#38504696)

Several publishers have produced recent books on HTML5 game authoring. Perhaps this would work well?

Did the same for Middle Schoolers (1)

cowtamer (311087) | more than 2 years ago | (#38504702)

I did the same thing for a group of middle school students back in 2005 and after evaluating a bunch of graphics and sound libraries, we settled on Basic4GL [basic4gl.net].

Basic4GL is everything BASIC was, except without line numbers and with all the GLUT functionality built in (minus the initialization cruft). It also supports sound, loading a bunch of texture formats, and has the NEHE tutorials ported to it, and runs on VERY low end hardware. Download and run the demos -- you'll be impressed.

The kids did exceptionally well. We got a classroom full of (failing) middle school students to understand the idea of a coordinate system, and use this to design their own spaceship (using only a piece of graph paper and their own derived x,y coordinate pairs). We then guided them through animating this spaceship with key press events (and in the process they learned about coordinate transformations).

Our goal of having them design their own textures and sound effects never quite panned out, since we ran out of time -- but our ultimate goal was a classroom produced game where every student had a piece of the production workflow.

Afterwards, I found myself using Basic4GL for OpenGL prototyping since it does away with so much of the initialization, etc.

For example, the following is a whole Basic4GL program to draw a triangle

glBegin(GL_TRIANGLES)
        glVertex3f(0, 10, -30)
        glVertex3f(8, -4, -30)
        glVertex3f(-8, -4, -30)
        glEnd()
SwapBuffers()

This was, of course, several years ago. You may find something better now (I'd recommend looking into Processing [processing.org]. I'd stay away from anything that a kid can't set up on his own (i.e., combination of multiple libraries)).

For the classes, you want to emphasize the basics while at the same time giving them something they can sink their teeth into from Day 1. I started with having them type in a very simple program in the first class and then run it themselves. I went from there to what the coordinates mean, etc. You will find that some kids are faster than others, and some of them might surprise you. You will also find that they'll do really well teaching each other.

Good luck!

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...