Slashdot Mirror


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

237 comments

  1. Best suggestion is Kodu by InterestingFella · · Score: 4, Informative

    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

    1. Re:Best suggestion is Kodu by InterestingFella · · Score: 0

      you see instant results so beginners love it.

      (somehow Slashdot cut end of the post)

    2. Re:Best suggestion is Kodu by aretae · · Score: 3, Informative

      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.

    3. Re:Best suggestion is Kodu by Anonymous Coward · · Score: 1

      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.

    4. Re:Best suggestion is Kodu by Canazza · · Score: 3, Informative

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

      --
      It pays to be obvious, especially if you have a reputation for being subtle.
    5. Re:Best suggestion is Kodu by Rhalin · · Score: 2

      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.

    6. Re:Best suggestion is Kodu by hawguy · · Score: 2

      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.

    7. Re:Best suggestion is Kodu by Anonymous Coward · · Score: 0

      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.

    8. Re:Best suggestion is Kodu by poly_pusher · · Score: 2, Informative

      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.

    9. Re:Best suggestion is Kodu by fermion · · Score: 1
      I would say it depends if you want to teach coding or use of game engines. I would say in either case, unless students have taken a couple years of high school programming, some basic techniques would first have to be taught. Unless they know OO design, structured development, functional programing, and the like, that will have to taught these basics first. The average high school students does not have a strong relationship, with, for example, variables, strict procedure, and following rules. For instance some students are going to have difficulty differentiating something like i=j++ and i=++j in C++. This is one reason why C++ is such an unpopular language, it requires a level of thought that is expensive.

      A few summers ago I taught a class using python. I gave each student an account on a remote web server, and they wrote python using a line editor. By the end of the month they were able to put together a simple text based game played in the web browser. It was kind of fun and taught basic skills. I suspect that the same thing could be done using Flash with graphical games. The point is that if one does not want to get bogged down in the vagaries of programming, then one is going to have to go with something really high level.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    10. Re:Best suggestion is Kodu by Anonymous Coward · · Score: 1

      He might have a good point, but he follows the same pattern as this interesting fella (who recently stopped posting, and before him there was CmdrPony) - pop up in a minute or few after the article goes live, post something touting MS products (or denigrating Google's products, depending on article's content).

      While Kodu might be good, what ticks me (and that AC) off is the fact that this comment has unfair advantage - with subscriber hidden in shadows and probably others with mod points on the ready. Some just prefer ads marked as ads.

      Anyways, there's surely better tools not locked to MS platform, like Unity or Stencyl.

    11. Re:Best suggestion is Kodu by gregrah · · Score: 1

      Kodu looks to be a little too simplified for high school students. In my opinion, it would be a disservice to college-bound high school seniors who are interested in software development to teach a course like this without giving them some exposure to actual "code".

      In my first year high school programming class we learned to program in BASIC by creating games. We started off simple with games like black jack and bingo, but by the end of the year some of the more advanced students had progressed to the point where they were creating some relatively complex games such as Tetris.

      The games were simple and ugly looking but that didn't matter to us in the least. We were proud of our creations and proud of the fact that we had become "programmers".

      My point here is that if time is limited, the students would be better served by reducing the complexity of the end goal (to something as simple as Tetris) rather than abstracting away the nuts and bolts of real programming.

    12. Re:Best suggestion is Kodu by Lawrence_Bird · · Score: 2

      I think a bigger disservice is in fact focusing on code. Instead focus on what are the elements that make a good game? What makes for a good user interface? Physics (ie, reality) based or fantasy based and what are the difficulties of both? It is always better to think first (a lot) on what it is you want to accomplish than to jump in and start coding.

    13. Re:Best suggestion is Kodu by DRJlaw · · Score: 1

      While Kodu might be good, what ticks me (and that AC) off is the fact that this comment has unfair advantage - with subscriber hidden in shadows and probably others with mod points on the ready. Some just prefer ads marked as ads.

      "Unfair advantage?" Whatever gave you the idea that third party comments posted under a Slashdot article should be expected to be fair? What is your definition of fair?

      Anyways, there's surely better tools not locked to MS platform, like Unity or Stencyl.

      Oh. I see your definition of fair. Nobody should suggest a Microsoft product, because you're disqualifying them as "the evil." Meanwhile...

      Article posted at 11:32, Kodu post up at 11:34, Unity post up at 11:36, Javascript post up at 11:36, Scratch post up at 11:37...

      AC shill accusation up at 12:12... more than a half hour later.

      Are the other linked posts shill posts with unfair advantages? I mean, why should two minutes be the cut-off and not five? Or is it solely the content of the post that defines its shill-y-ness? Since mere timing indicates a conspiracy of Microsoft supporters (paid or unpaid), that same timing and up-rating phenomenon must indicate a conspiracy of Unity supporters... Javascript supporters... and Scratch supporters. Arcane, shadowy societies with mod points at the ready.

      Excuse me now while I barricade my door and prepare to defend myself from four different wetwork cleanup squads. Lucky you, you only have to deal with one...

    14. Re:Best suggestion is Kodu by arth1 · · Score: 3, Interesting

      I say you start in the wrong end. When I was younger, high school kids made demos in assembly language. Quite impressive ones too. Without toolkits, IDEs, or any kind of pre-chewed food.

      IMNSHO, schools should always teach low level fundamentals, never high level implementations, no matter what classes. Because the latter will change, while the fundamentals will still be valuable ten years from now when they hit the job market, as they can be applied to any high level implementations.

      This teaching kids solutions that will be outdated by the time they graduate, and not the background needed for them to derive answers themselves, is, I believe, part of what's wrong with schools today.

    15. Re:Best suggestion is Kodu by Caesar+Tjalbo · · Score: 1

      Python works. I wouldn't recommend a line editor however nor text based games. PyGame (SDL for Python) let's you make 2D games fast and learn programming.

      --
      "I'm not much interested in interoperability. I want substitutability. I want to be able to throw your software out."
    16. Re:Best suggestion is Kodu by Anonymous Coward · · Score: 0

      Shills and their predictable apologists. News at 11

    17. Re:Best suggestion is Kodu by Anonymous Coward · · Score: 0

      Mods, god damn, pay a bit of attention. Posting AC for good reason, here.

    18. Re:Best suggestion is Kodu by dolmen.fr · · Score: 1

      I depends on what fundamentals you find the most important to teach.
      If this is game design and UI design, teaching assembly is not relevant. Programming super-optimized code is not the only skill required to create a good game. Even far from it.

    19. Re:Best suggestion is Kodu by biqut2 · · Score: 1

      I agree 100%.

    20. Re:Best suggestion is Kodu by vawwyakr · · Score: 1

      I would think the purpose here is more to stir interest and get some basic concepts out there than to teach programming. Taking a bunch of kids used to watching pixar movies and playing xbox games and showing them some basic text on a screen after some hours of work will probably not impress them all that much.

    21. Re:Best suggestion is Kodu by Toonol · · Score: 1

      One more anonymous coward has lost it, given in to the paranoia... seeking the comfort of the belief that everybody who disagree with them must be paid to do so.

    22. Re:Best suggestion is Kodu by Anonymous Coward · · Score: 0

      I teach using Scratch for 7th/8th graders and Python for high school level students. Kodu is a little too kiddie probably for teens. There are also platforms like Gamestar Mechanic (web-based) that focus on elements of a game rather than coding. I find my students not taking the time to think through what makes a good game first and then their code is a mess whatever they're using. Even a game engine platform will teach the logic necessary both to code and create good games.

  2. Unity3D by claytongulick · · Score: 5, Interesting

    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.
    1. Re:Unity3D by noelbon70 · · Score: 1

      I second Unity3D.

      --
      Founder: OxbowSEO.com
    2. Re:Unity3D by claytongulick · · Score: 2

      Boneheaded malformed link. *sigh*. Here: Unity

      --
      Drinking habits can be dangerous. You can choke on the cloth and the nuns will wonder where their clothes are.
    3. Re:Unity3D by Anonymous Coward · · Score: 0

      I third.

    4. Re:Unity3D by Anonymous Coward · · Score: 0

      i third this

    5. Re:Unity3D by NoSleepDemon · · Score: 5, Interesting

      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 :)

    6. Re:Unity3D by Canazza · · Score: 2

      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.

      --
      It pays to be obvious, especially if you have a reputation for being subtle.
    7. Re:Unity3D by Canazza · · Score: 1

      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.

      --
      It pays to be obvious, especially if you have a reputation for being subtle.
    8. Re:Unity3D by Anonymous Coward · · Score: 0

      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.

    9. Re:Unity3D by spaceplanesfan · · Score: 1

      So, even the name for that horrible Unity3D of Ubuntu, was stolen? Doh, and I used ubuntu for so long, and miss it so much.

    10. Re:Unity3D by trinity93 · · Score: 1

      Na i think Open Simulator is far more useful in a classroom setting

      --
      We substituted the coffee Slashdot normally drinks with "Sandoz Crystals", Lets see if they notice the difference
    11. Re:Unity3D by Anonymous Coward · · Score: 0

      It is cross platform

      Quite an achievement to run on two platforms.

    12. Re:Unity3D by Anonymous Coward · · Score: 0

      I third it. Unity3d is your best option.

    13. Re:Unity3D by NoSleepDemon · · Score: 1

      Yep their system of building metadata files for every single asset seems more like a bandaid fix than anything else. It wouldn't be such a bitch if Unity would just attempt to reconnect broken associations for you, or list them in a nice way and let you fix chunks of them at a time, but right now, once you have "missing" where a script name should be you're pretty boned. One of the devs suggested we package things up and put the packages into version control, but the problem with that is that then we'd be relying on each dev updating their packages correctly and not accidentally slipping in some superfluous stuff and causing collisions, not to mention that merging packages on a semi regular basis would make our lives pretty difficult. metadata it is then, for now.

    14. Re:Unity3D by Bangz · · Score: 1

      I am a professional video games developer, I have worked on many triple A console titles, mainly working in C++. But for the past year I have been using Unity professionally, at our company we investigated different tools and engines in which to prototype game concepts, and Unity stood out from all the rest.

      I believe Unity is a fantastic tool for an introduction to game development, I'm perhaps very heavily biased but that's only because I love it so very much :)

      1. Its fast and easy to see the changes you're making, be it to code or art. You save your texture, or model and tab back to unity, its straight away updated. With code you make your changes and press Play, no complicated build steps.
      2. It's very little code (well technically, no code!) to get up and running, and very little code to do what you want. The libraries they have provided are really quite good.
      3. The way they have an object hierarchy, with objects containing components (scripts you write) makes its easier to visualise what's going on. In most other game engines your code would have to create and manage all these objects and the main view into this world is from the code, but with unity you can see your code and your objects interacting.
      4. There is a large support community (official unity forums, unity answers), and good documentation.
      5. They can export their games to a web page, which will be playable from any browser with the Unity plugin installed (they are soon to add a Flash export option to make it playable through the Flash plugin).
      6. It's free, you only have to pay for it for the more advanced features, external source control, real time shadows, post processing effects etc...

      Theres been quite a few games written with Unity , it's good for kids aspiration, what they could achieve. Using something like Kudo, you could not release a product with that, but with Unity you have both simplicity, and no limits! The only thing Unity has working against it for the purpose you have stated is that it will require the kids to write JavaScript, or C#. But if that's the point of the exercise, then Unity is a great sandbox for them to do that in.

    15. Re:Unity3D by Bangz · · Score: 1

      This video will give you some kind of idea of how Unity works, if you don't always know.

    16. Re:Unity3D by Anonymous Coward · · Score: 0

      unity is a good idea but seems a bit under polished to me. It keeps in crashing, and though it may be due to the third party libs it impossible to work with.
      I would go with a C++ engine with a scripting capability

  3. javascript tetris by larry+bagina · · Score: 4, Insightful

    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.

    1. Re:javascript tetris by localman · · Score: 1

      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.

    2. Re:javascript tetris by Anonymous Coward · · Score: 0

      perhaps something like craftyjs

    3. Re:javascript tetris by todrules · · Score: 1

      Agreed. This is what I first taught my 10-year-old nephew, and he picked up on it right away. I just started real simple and gradually got more and more advanced. The best thing is that there's no compiling and no required IDE. I actually started off just showing him in Notepad so he could see how easy it really was to create a webpage. I think that would allow the students to be able to easily continue using it on their home computers after class. The students might not be able to setup a complicated IDE with version control, nor have the money, such as with the Unity3d Pro version.

    4. Re:javascript tetris by Anonymous Coward · · Score: 1, Interesting

      I tried this once, it is hell. You are teaching HTML, CSS, JavaScript, JavaScript interaction with CSS, and possibly jquery as well. I was not successful.

    5. Re:javascript tetris by keith_nt4 · · Score: 1

      I agree with the JavaScript/HTML approach. I would also point out the some what language similarities between JS and the likes of C++/Java.

      I was also going to mention there's a HTML developer-oriented editor already included with office that few actually know is even there, called Microsoft Script Editor. Default located at:
      "C:\Program Files\Microsoft Office\OFFICE11\MSE7.EXE"

      It's actually pretty good even if it does seem to default to VBScript for some reason. It's kind of like Visual basic (drag buttons/elements around then put in the event-based coding). Just has the HTML coding instead. Even create HTAs (does anybody remember HTAs? Doubt it!)

      --
      "UNIX is very simple, it just needs a genius to understand its simplicity." -Dennis Ritchie
    6. Re:javascript tetris by Anonymous Coward · · Score: 0

      I agree, HTML+JS is an open playground to free your mind. Me and my eleven years old daugther made a pacman with animated gifs in almost no time (4 hours in total in two weekends).

  4. Games are pretty much complex PROGRAMS by Anonymous Coward · · Score: 1

    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!?!?

    1. Re:Games are pretty much complex PROGRAMS by InterestingFella · · Score: 4, Insightful

      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.

    2. Re:Games are pretty much complex PROGRAMS by Alex+Belits · · Score: 1, Insightful

      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.

      --
      Contrary to the popular belief, there indeed is no God.
    3. Re:Games are pretty much complex PROGRAMS by Anonymous Coward · · Score: 0

      ...Please take over the Computer Science department of my local community college!
      They can not even conceive at all, of what you just said.

      I remember being in CS100 and the teacher [in charge of the whole CS dept.] was asked by a student about how to create a GUI for a program... She looked puzzled and replied "That's not your job? That's what the graphic designers do?"

    4. Re:Games are pretty much complex PROGRAMS by flaming+error · · Score: 1

      Certainly technical knowledge is important, but I don't see how learning it for its own sake is better than learning it on the road to creating something.

    5. Re:Games are pretty much complex PROGRAMS by Alex+Belits · · Score: 1

      You can't create anything worthwhile if you don't have the knowledge. And you can't obtain such knowledge by chasing a goal that is both narrow and unoriginal. How much accomplishment was provoked by hundreds of millions of kids' dream to become an astronaut? And what kind of people ended up developing spaceships, or even flying on them? Not ones who thought it would be cool to float around in a spacesuit.

      --
      Contrary to the popular belief, there indeed is no God.
    6. Re:Games are pretty much complex PROGRAMS by Anonymous Coward · · Score: 0

      Then they might not have the aptitude to be programmers. That's fine, not everyone is born with such gifts (just like not everyone is born to play sports). They'll find something they're good at eventually.

    7. Re:Games are pretty much complex PROGRAMS by Simon+Brooke · · Score: 1

      This is more or less bollocks. We all started somewhere. People of my generation didn't learn from experts, because there were damn few experts. The college I went to had been given four Commodore PETs, but none of the teaching staff even knew how to turn one on, and until I and two other students wrote some, there were no programs.

      Of course what we wrote was pretty simple and probably pretty bad, but it worked. We created magic. We made the machines do stuff. And for me that staeted a love affair with software that's lasted all my adult life and given me a good career.

      Of course

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    8. Re:Games are pretty much complex PROGRAMS by Hognoxious · · Score: 1

      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.

      Do you think Jimmy Page played Stairway To Heaven the first time he picked up a guitar? Shakespeare saw a typewriter for the very first time, flopped himself down in front of it and banged out Romeo & Juliet? Dürer picked up his Rotring on day one at art college and in 5 minutes drew a rabbit so detailed you could almost taste it?

      Instant gratification. Nobody's prepared to put the spadework in these days.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    9. Re:Games are pretty much complex PROGRAMS by Anonymous Coward · · Score: 0

      Shakespeare saw a typewriter

      wat?

    10. Re:Games are pretty much complex PROGRAMS by jekewa · · Score: 1

      And that can lead to some pretty bad programming habits. There are exceptions, and I'll give you the benefit of the doubt that you're one of them.

      You might not need to know the details of an internal combustion engine to make a hobby around driving a car, but you do need to understand the complexities of lift and drag and such to fly an airplane. Software's at least as technical as flight, even in many pretty simple games.

      If one knows nothing of data structures, control statements, and even error handling, then one is likely to write inefficient, unresponsive, and even faulty software.

      Certainly it isn't as much fun learning the technical details right away, but writing software is a technical undertaking. If one is going to skip the technical bits, then one's going to end up doing it wrong. It might become easy with practice, but it's pretty heady, technical stuff, and some people won't get it and will be driven away from it.

      That said, these kids don't need to start out understanding heuristic pointer manipulation in C/C++ or inline assembly. However, they should properly learn some basics like for() and if() and how to create and handle structures or classes, like what it means to pass those as parameters. Even a simple game of rock-paper-scissors requires conditionals and input handling. If you want to make a "simple" Pacman or Asteroids or Tetris clone will require knowing where many things are on the playing field, many of which are moving, most of which will interact with each other and game controls. That's a lot of "make it up as you go" that has opportunity to learn some good data handling and coding practices along the way.

      Given that Blender is in the list, the easy assumption is OP has some idea of writing a 3D game, and that's going to require some rather technical understanding, whether just for the modeling, or if including kinetic skeletal animation. Even if a library does the hard bits, some understanding of matrix-based multi-dimensional math will be required; how's that for needing some basics for ya? Blender makes that kind of easy with its game engine requiring scripting in Python.

      --
      End the FUD
    11. Re:Games are pretty much complex PROGRAMS by Lodragandraoidh · · Score: 1

      If by typewriter you mean a quill pen and ink -- then yes he saw a typewriter. http://en.wikipedia.org/wiki/Shakespeare
      On the other hand, he may have had some means of trans-locating through a wormhole to 1870-ish, to bang out McBeth on one of the first commercially produced typewriters. http://en.wikipedia.org/wiki/Typewriter

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    12. Re:Games are pretty much complex PROGRAMS by Anonymous Coward · · Score: 0

      Unfortunately your statements are not reflected in the game industry. Video games don't exist in the realm of fluffy academic ideals of good software, they exist in the grit and demand of business.

      And just about any professional will encourage students to self-direct their learning through small games. The technical details can always follow after, when given proper context -- to the chagrin of the aging draconians who are convinced one must learn "good practice" (read: the way they learned) first.

  5. Scratch? by Anonymous Coward · · Score: 0

    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.

  6. Scratch (scratch.mit.edu) by andi75 · · Score: 4, Informative

    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.

    1. Re:Scratch (scratch.mit.edu) by Anonymous Coward · · Score: 0

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

    2. Re:Scratch (scratch.mit.edu) by Anonymous Coward · · Score: 0

      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.

    3. Re:Scratch (scratch.mit.edu) by Anonymous Coward · · Score: 0

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

    4. Re:Scratch (scratch.mit.edu) by Anonymous Coward · · Score: 0

      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.

    5. Re:Scratch (scratch.mit.edu) by Kane+Devaid · · Score: 1

      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.

    6. Re:Scratch (scratch.mit.edu) by Anonymous Coward · · Score: 0

      It is the single most awful development environment I have ever used. It is also non-free.

    7. Re:Scratch (scratch.mit.edu) by Maria+D · · Score: 1

      You are thinking of something else. Scratch is free and open source. It's very accessible for newbies. A good path for a group is to start with Scratch, where you can make a little arcade game in an afternoon without any prior programming experience. Then some kids can move to more advanced platforms, like Pygame, but some will be happy to stay with Scratch for a while, in my experience.

  7. Unity by Anonymous Coward · · Score: 0

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

  8. Unity3D by Anonymous Coward · · Score: 1

    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.

  9. No good ideas - by scribblej · · Score: 1

    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.

    1. Re:No good ideas - by Anonymous Coward · · Score: 0

      Agreed!

    2. Re:No good ideas - by houstonbofh · · Score: 1

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

    3. Re:No good ideas - by vlm · · Score: 1

      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.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    4. Re:No good ideas - by InterestingFella · · Score: 1

      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.

    5. Re:No good ideas - by plover · · Score: 1

      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.

      --
      John
    6. Re:No good ideas - by plover · · Score: 1

      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.

      --
      John
    7. Re:No good ideas - by InterestingFella · · Score: 1

      So why not start with an open source game? Start with ioquake, or now the new iodoom3? http://www.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.

    8. Re:No good ideas - by Richard_at_work · · Score: 2

      The Visual Express versions have no "can't sell" limitation.

    9. Re:No good ideas - by houstonbofh · · Score: 1

      There are a lot more than fps games. http://www.playdeb.net/ Pick your type, and get your source.

    10. Re:No good ideas - by Hognoxious · · Score: 1

      decide if you're going to merely provide low level vocational training or provide (higher?) education. Its difficult/impossible to do both

      Tommy rot. I've known a number of people with both - who did apprenticeships and/or vocational training at 16-18 and a few years later went on to university. Late bloomers, if you like.

      Did you get that from the same book that says intelligent people have no common sense?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    11. Re:No good ideas - by houstonbofh · · Score: 1

      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.

      Really? So you jumped from nothing to high level coding without ever looking at anyone else's code? Wow! That is amazing! I don't know anyone like that. We all learned from looking at other code...

      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.

      You do know that ioquake and iodoom3 run all the quake and doom3 mods, right? And mod editors, and so on? So you can do all the stuff you want without having to buy a half life for each student, or resorting to pirating it.

    12. Re:No good ideas - by dhasenan · · Score: 1

      It's a lot easier to understand something that you've taken the past three days to write than to understand what forty other people took three years to write.

      Throwing half a million lines of optimized C/C++ at someone who's new to programming is a way to scare them off forever.

    13. Re:No good ideas - by rabbit994 · · Score: 2

      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.

    14. Re:No good ideas - by Old+Wolf · · Score: 1

      Disagree, the first time I saw C code I was struck by how simple and logical it was

      You actually had 'AND' and 'OR' type operations that worked like they should.. using boolean logic in micros BASIC was pretty iffy.
      And you can improve on GOTO 180*(i=1)+240*(i=2)+280*(i=3)+....+5420*(i=72)

  10. Construct by jemtallon · · Score: 1

    I'm really liking Construct (http://www.scirra.com/construct2/) 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/)

    1. Re:Construct by empty_other · · Score: 1

      I second this. At my first try i made a Break-Out clone in 15 minutes (including graphics).

  11. Blender & Unity are a great starting point! by Anonymous Coward · · Score: 0

    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.

    1. Re:Blender & Unity are a great starting point! by Steauengeglase · · Score: 1

      Probably this. Blender itself has a steep learning curve, but BGE (Blender Game Engine) is pretty easy when it comes to setting up in-game logic. The real downside is that it is kinda, well, painfully slow, but you do get a lot of bang for your buck (in this case effort you put into it).

      You can even get a very, very rudimentary FPS up and running in a half-hour.

  12. GameMaker by Anonymous Coward · · Score: 0

    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

    1. Re:Gamemaker by Bucky24 · · Score: 1

      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.

      --
      All the world's a CPU, and all the men and women merely AI agents
    2. Re:GameMaker by Anonymous Coward · · Score: 0

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

    3. Re:GameMaker by freezway · · Score: 1

      I third this, My highschool has classes that use this and it works great. Its simple enough to start using with zero programming knowledge, but powerful enough to make decent 2d games. It allows you to start out without writing any code, but it leaves the option open.

    4. Re:Gamemaker by Anonymous Coward · · Score: 0

      I second that. That's where I learned game programming when I was 10 years old. Game Maker v5 lol.

    5. Re:Gamemaker by blueseraph · · Score: 1

      I used Game Maker a few years ago to create a few games for fun. It is bit of a resource hog but it is easy to use. GM comes in 2 flavors lite (free) and pro ($39.99). The lite version should do everything you want but $40 is not bad for full functionality. GM is drag and drop but it does have a script object. All my game I used the script object for 95% of the functionality. There are very few things that the drag and drops are needed for (bouncing off objects). I hate drag and drop since it does not teach you anything. The other thing you might want to looking into is finding a freeware or a cheap game that allows for modding. In the early 90's I modded the hell out of Red Alert. The rules.ini file is editable in notepad. Now you can just download Tibedit and have a GUI for modding. I have heard (but not seen for myself) of a mod that turns RA2 into a space game. I have also recently d/l Aquiria http://www.bit-blot.com/aquaria/ . The website says you can mod and change graphics too. I have been thinking of recreating one of my GM games using the Aquaria engine. Modding is a bit of a side step but it will allow your kids to use an already developed engine and it may give a better foundation for understanding how a good game works before they actually decide to make one themselves.

  13. Unreal Engine and Crytek engines by nhat11 · · Score: 1

    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?

    1. Re:Unreal Engine and Crytek engines by Creepy · · Score: 1

      My head would explode if this were my intro to game creation. So much of this depends on variables that aren't known, so it is hard to recommend anything, but I'd need to know
      a) what level of programming skills do the kids have, and in what languages
      b) what level of graphics programming skills do the kids have (2D, 3D, do they understand collision detection, etc)?
      c) what potential do these students have (are they average high schoolers, or future MITers)?
      d) is this a team project or a class project? A class project can be larger, but requires everyone to buy in and help somewhere they can help. Team projects are usually smaller and more specialized.
      e) is this just in class, or are you going to expect homework? A motivated teen can develop a lot of code week-to-week, but computer availability could be a factor (does the school require laptops?).

      I'm guessing they have no AI skills, but for a first game you may want to avoid AI.

      I've never worked on a triple-A title, but I have worked on a title that sold around 50000 copies created by a small team (varied from 8 to 22 over the course of the project, but really the last 10 or so fall in the category where a mother tries to give birth in 1 month by divvying the work between 9 people). It was 3D, but it took about a year to develop and it didn't really make the jump from demo code to game until about the last 2-3 months.

      Anyhow, my point is I strongly recommend avoiding 3D for a first game. More advanced students can use 3D graphics, but even then it probably should be kept to planar (for instance, pinball) for a first game to simplify difficulty. Also it doesn't necessarily have to be a game - creating animations are excellent for learning and use many of the same skills (think cutscenes or scripted events). It isn't impossible - I wrote a first person shooter by myself my first year in college (sadly, it was IRIX only, not networked and had horrible AI, which I never finished - it was always either too good or too bad, but the graphics, movement, and collision detection were all done).

  14. Kids These Days by Anonymous Coward · · Score: 1

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

    1. Re:Kids These Days by Altrag · · Score: 1

      That's an odd remark since one of the first tasks assigned when teaching programming to new students is usually the classic higher/lower game.

      Its terribly rudimentary, but its a game nonetheless.

  15. Gamemaker by mrbill1234 · · Score: 2

    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!

  16. first principles by Anonymous Coward · · Score: 0

    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.

    1. Re:first principles by nessus42 · · Score: 2

      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

    2. Re:first principles by Anonymous Coward · · Score: 0

      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.

    3. Re:first principles by Anonymous Coward · · Score: 0

      Yeah, well...you're special. This guy's HS workshop participants aren't likely to be a smart as you.

    4. Re:first principles by Anonymous Coward · · Score: 0

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

      It's right up nessus42's ass. I sometimes think the fucktard can't read properly.

    5. Re:first principles by nessus42 · · Score: 1

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

      No such argument was provided because no such assertion was made. I said that learning to program is best done by doing. That means the focus should be on the doing first and foremost. At any given time, the best tool for accomplishing a task might be a tool that was invented many years ago, or it might be one that was invented yesterday, but it will, almost by definition, be one that makes it as easy as we know how to make it to get things done. People who argue that things should be done the same way that they did things back in the day are the same sort who think that kids should have to walk to school uphill in the snow both ways, because that's how they did it when they were kids. More particularly, focussing on coordinate frame transformations, the theory of Phong shading, GPU optimizations, etc., is almost guaranteed to turn off the typical high school student from wanting to program ever again.

      First get them interested, and later you can send them off for a Stanford education.

      |>ouglas

    6. Re:first principles by nessus42 · · Score: 1

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

      It's right up nessus42's ass. I sometimes think the fucktard can't read properly.

      Anonymous cowards apparently can't think properly.

      |>ouglas

  17. Slashdot def of "game" by vlm · · Score: 2

    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
    1. Re:Slashdot def of "game" by oneiros27 · · Score: 2

      My first thought when I saw this was the Adventure Construction Set.

      And wasn't Myst originally written in HyperCard?

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

      --
      Build it, and they will come^Hplain.
    2. Re:Slashdot def of "game" by vlm · · Score: 1

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

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:Slashdot def of "game" by Anonymous Coward · · Score: 0

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

  18. Hero Engine by Anonymous Coward · · Score: 0

    http://www.heroengine.com/

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

  19. Construct by Lindan9 · · Score: 1

    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.

  20. Python + Pygame by sharp3 · · Score: 3, Informative

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

    1. Re:Python + Pygame by Anonymous Coward · · Score: 0

      After a lot of research I settled on Python. I used Pygame last semester with a bunch of grade 11's who had never programmed before. This is the ideal learner's programming language. C# is not a beginner's language and neither is Java--there is too much they need to know in order to write a Hello World program. In one semester we went from nothing to working games. There is a ton of free resources for Pygame. There are free books and tutorials for Pygame. There's not question this is the way to go.

    2. Re:Python + Pygame by Anonymous Coward · · Score: 0

      And for 3D games i would suggest to try out Panda3D
      You can make pretty decent games fairly quickly with tutorials from sites like: MyGameFast

    3. Re:Python + Pygame by Anonymous Coward · · Score: 0

      I will second this one. A couple of people in my Python class used this for their final projects and the results were quite good. This was an introduction to programming class for non CS majors, so it was quite accessible. Pygame will not bog you down in the basics, and it makes it quite easy to build some of the classic 2D games. If you want something more basic try the CS1Graphics module for Python, also free It is by NO means the best graphics module for Python, but it gives you the ability to draw shapes and do the basics. Its advantage is that it is supper easy to use, and it provides excellent examples to illustrate major programming topics (functions, classes, class inheritance...) while still being understood completely by someone just starting out.

      On the other lurking topic I would agree that programming games is likely not the best way to start programming, but the point is not how you start, but if you start at all, and nothing beats games for peaking a student's interest. Something tells me the "databases and search algorithms" club would not be very popular.

  21. Have a look: by LoRdTAW · · Score: 1

    Have you looked at Unity? ahref=http://unity3d.com/rel=url2html-1549http://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.

  22. Android by Anonymous Coward · · Score: 0

    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.

  23. whatever you do.... by Anonymous Coward · · Score: 0

    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"

    1. Re:whatever you do.... by dingen · · Score: 1

      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.

      --
      Pretty good is actually pretty bad.
    2. Re:whatever you do.... by FictionPimp · · Score: 1

      I all but scream this at the people where I work. We have two intro to web design classes. One art based with dreamweaver, and one IT based that teaches the exact same thing, only explains some of the HTML. The problem is they both count as the pre-req for the later IT classes. Nothing like someone thinking they know the basics of web design from an art class.

  24. Not sure about how easy it is to teach by Georules · · Score: 1

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

    1. Re:Not sure about how easy it is to teach by RobertLTux · · Score: 1

      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.

      --
      Any person using FTFY or editing my postings agrees to a US$50.00 charge
    2. Re:Not sure about how easy it is to teach by Animats · · Score: 1

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

      True. If you haven't encountered Blender, imagine a user interface for 3D designed by someone who likes EMACS. The condensed hotkey reference is 19 pages.

      Blender's game engine is interesting. Programming is done by wiring together blocks in a graph. You can write new blocks in Python if you want. It's a nice demonstration of the fact that graphical programming does not scale well. I once wrote a program to simulate LIDAR processing for a mobile robot using the Blender game engine. This was Not Fun.

    3. Re:Not sure about how easy it is to teach by Georules · · Score: 1

      Good point. I also personally think that learning blender doesn't do a whole lot for learning game development or programming in general. However, the tools it comes with for free are pretty great. Not just for game programming, but also for modeling. If one wants to do a game development course for High School I think it would be good to show and share some demos and let students see what they can do with it. Drop it if it doesn't stick anywhere. A survey of many development frameworks and technologies would probably be more practical than actually trying to develop a fully functional game 1 day a week for ~10 sessions.

  25. Try Game Maker...www.yoyogames.com by Anonymous Coward · · Score: 1

    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.

  26. XNA by ZeroSerenity · · Score: 1

    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.

    --
    For those who seek perfection there can be no rest on this side of the grave.
  27. UDK by Dishwasha · · Score: 1

    Although I wholeheartedly agree with all the people who are going to recommend Unity (which is also the platform I prefer), you might be better served with UDK 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).

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

  28. ALICE by kj_kabaje · · Score: 1

    http://www.alice.org/

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

  29. DarkBasic by Anonymous Coward · · Score: 0

    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.

  30. Racket: Bootstrap by drb226 · · Score: 1

    The project you are looking for is Bootstrap.

    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.

  31. Love2d by Anonymous Coward · · Score: 0

    Love2d.org

    1. Re:Love2d by Osgeld · · Score: 1

      no love, reasons why

      1) Its in a constant state of broken, want simple box collision? use a fucking physics engine that no one around the project can explain properly, hell even their wiki states that you shouldnt use it

      2) lua, no matter how much lua people tell you this that and the other, its the modern basic, if you want to do anything useful with it learn C to bind it, then your just subjecting you self to a wonky language no one serious uses

      3) support, there are a few grumpy people bitching about posting twice in the same thread and a wiki that tells you that love.function does love.function, utterly useless lots of times

  32. Corona SDK by FictionPimp · · Score: 1

    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.

    1. Re:Corona SDK by Anonymous Coward · · Score: 0

      Lua is also used for World of Warcraft add-ons (usually with XML for defining interface components, but sometimes by itself). Since there's a fair chance that some of them already play WoW, that would provide them with something they could continue to use for their own stuff outside the class, along with a look at modifying components of a game's interface, while keeping from having to worry about teaching them multiple programming languages.

  33. How about 50 bucks? by roman_mir · · Score: 2

    In fact $49.

    It's called 'impact' and games like this are made with it.

  34. Processing by MatthewNewberg · · Score: 1

    Processing can be a lot of fun for small projects: http://processing.org/discourse/yabb2/YaBB.pl?num=1222641158 Pros: Cross platform, java based, simple IDE, supports keyboard/mouse input, 2D/3D. Cons: Only downside is limited audio support.

  35. Re:Python + Pygame (& Harvard's free videos) by nessus42 · · Score: 1

    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

    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

  36. Gamemaker by Anonymous Coward · · Score: 0

    I see no reason for any other tool.

  37. Javascript - for both Unity3D and HTML5/Webkit/CSS by j-stroy · · Score: 1

    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.

  38. Real Programming for Kids by Anonymous Coward · · Score: 0

    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.

    1. Re:Real Programming for Kids by Kamoo · · Score: 1

      That poor, poor child. My sympathies.

  39. Use any other game engine by mapuche · · Score: 1

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

    My advice is to go for Unity.

  40. Re:Javascript - for both Unity3D and HTML5/Webkit/ by Canazza · · Score: 1

    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.

    --
    It pays to be obvious, especially if you have a reputation for being subtle.
  41. gamemaker and kodu by Anonymous Coward · · Score: 0

    Gamemaker is awesome, but Kodu is a good first step

  42. Whatever else...this is a great idea by dtjohnson · · Score: 1

    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.

  43. Ogre by znigelz · · Score: 1

    http://www.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.

  44. It just so happens by Mr_Blank · · Score: 1

        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.

         

  45. Why not Blender? by Dracos · · Score: 1

    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.

  46. Game programming is complex by Hentes · · Score: 3, Insightful

    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.

    1. Re:Game programming is complex by alteveer · · Score: 2

      +1 to this, start small with simple mechanics in a 2d space. Flashdevelop is a great, free tool that is easy to setup and use.

      If you want to try using a Flash game framework, try something like Flixel.

    2. Re:Game programming is complex by Anonymous Coward · · Score: 0

      Not every game has networking, a scripting system and databases!

      He isn't trying to write the next Skyrim.

    3. Re:Game programming is complex by Anonymous Coward · · Score: 0

      +1. Flash's AS3 is an easy to use language, similar to C# and Java, and will have graphics up on the screen pronto. FlashDevelop is a nice free GUI and if you use something like http://www.societygames.com/codealong/ you don't even need to install FlashDevelop to get the kids programming.

  47. How about how to play games? by Anonymous Coward · · Score: 0

    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.

  48. GameMaker by Pvt_Waldo · · Score: 1

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

  49. What skills are do they have initially ... by Anonymous Coward · · Score: 0

    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.

  50. Game Maker (free) by UnknownJoe · · Score: 1

    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.

  51. Re: Unity version control by j-stroy · · Score: 1

    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)

  52. Irrlicht. by Anonymous Coward · · Score: 0

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

  53. Multimedia Fusion by Anonymous Coward · · Score: 0

    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.

  54. Alice.org by Anonymous Coward · · Score: 0

    http://www.alice.org/

  55. Why not HTML5? by Anonymous Coward · · Score: 0

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

  56. Did the same for Middle Schoolers by cowtamer · · Score: 1

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

  57. Pygame by marcosdumay · · Score: 2

    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.

  58. Monkey by DruggedBunny · · Score: 1

    Take a look at Monkey; it's $120, but they can be very flexible if you contact them to explain the situation.

    However, the demo provides an unlimited (non-commercial) HTML5 target for free, so coupled with a decent modern browser, you could teach them all for nothing. (The same code can later be compiled for XNA/Android, etc, in the full version.)

  59. AGS by Anonymous Coward · · Score: 0

    http://www.adventuregamestudio.co.uk/

    Pretty easy to use, and an active community last I checked. There are also some good youtube tutorials. Not so good for action, but VERY easy to get started.

  60. Inform 7 by WWWWolf · · Score: 1

    Inform 7. The good thing about text adventures is that they don't necessarily require gigantic graphics and sound budget - you can focus entirely on storytelling.

    Inform 7 is also a good example of how programming can be extremely unintimidating. Inform is one of the few "natural language" programming languages that actually accomplish the goal of being an usable programming language and not making programming too verbose.

    I think I7 would be a good platform for introductory games from a pedagogical point of view, at least - it lets you focus on creating puzzles, internal logic and story, which to my non-expert understanding are probably fairly important topics when you actually sit down and design games. =)

  61. Python, PyODE and Pyjamas by lkcl · · Score: 1

    if you want a physics dynamics engine, you want ODE. if you want a small amount of code (a high bang-per-buck ratio for the students i.e. they get results fast), use python. ODE has python bindings, so you win both ways. there are plenty of example recipes for python-pyode with OpenGL and pygame, which you don't entirely have to "understand", just copy cut/paste just like any other programmer would, and it gets the job done.

    now, if you're looking for web-based, i cannot recommend "pure javascript". it's too much like hell on earth: you'll be teaching the kids the wrong lessons (namely: stay the hell away from web development).

    i _can_ however recommend pyjamas. we have 3 or 4 example games already done: one uses SVG Canvas, it's "asteroids". then there's minesweeper, hangman, lightout and i also wrote a sudoku game a year ago. not one single one of those examples is over 1,000 lines of code. i think the asteroids one is about 600. http://pyjs.org/examples

    the nice thing about pyjamas is that you don't have to "mess about" setting up the libraries. you just go straight in. thus, the bang-per-buck ratio (lines of code required to achieve a particular goal) is very very much higher than average.

  62. Lua and LÃ-VE (2d cross-plarform) by kittenslietome · · Score: 1

    I've personally had some luck with something that's not on this list yet: Lua and LÃ-VE. Yes, it's 2d; but it's cross-platform, simple, and very very easy to use. As a bonus, it uses Lua, which has some traction other places in some games.

    http://love2d.org/

    1. Re:Lua and LÃ-VE (2d cross-plarform) by Osgeld · · Score: 1

      "which has some traction other places in some games"

      Name them, here I will even get you started, the GUI editor for WOW, love to see your list

      Fact is lua is not really anywhere, and its existence is shrinking quickly, it promotes bad coding habits, and its syntax is like no other system, you might as well be teaching them 8 bit basic

      and love is a royal pain in the ass with its callbacks, its cute when your making pong but other than that all it makes you do is split up your thoughts into subsections meaning you spend most of your time hopping from section to section hunting down bugs and making duplicate functions cause you couldn't finish a thought within a certain callback. Or, try making a simple "if blah" state system in love and you will quickly find yourself duplicating code over callback apon callback apon callback, truly an exercise in wasting your time.

  63. Student with some personal experience here by Anonymous Coward · · Score: 0

    Back last year during my final year, I made the mistake of taking a "Video Game Programming," class that one of m favorite teachers was offering.

    She taught the first semester using Flash (CS4). All I can say that it was a disaster. Out of a class of 15 people, I was the only one who had programming experience. I saw so many of my peer struggling to keep up with the "assignments," which were just 10-page packets of "Click this, then this, set to this value, and type this...". They showed us how to do things in Flash, but they didn't explain anything of what was going on. It wasn't too bad for someone like me (who has prior experience both in Flash and programming), but everyone else just didn't get it.

    Lo and behold, the second semester rolled around after January, everyone else except for me and seven other dropped the class. I found this semester much worse, mainly because of the tool that we were given to use, Alice. Supposedly it was considered much easier to use, but I found it to be one of the biggest pains in the ass. It was bug ridden, very strict for what it would allow you do to, and just made no sense. I found it to be a nightmare because of its "drag n' drop programming" nature. I felt it even robbed many people in the class of what real programming concepts were. NEVER USE ALICE!

    But for your class, I suggest using DarkBASIC Professional:
    http://www.thegamecreators.com/?m=view_product&id=2000

    I started out programming with BASIC, it was very easy to use and understand for a newbie like me. DBPro has most of your standard BASIC syntax, but with a lot of added commands for 2D and 3D game development. There is an active community surrounding it, tons of sample code out there, two or three books about the language, and best of all, it's not free to use!

    What you could also do is first teach DBPro, then slowly move into C++. Why? Because the makers of DBPro, also make a library called DarkGDK, which is very similar to BASIC brethren. You might run into a few issues here, since when I used the library, it wasn't documented as well as DBPro was, and most of the community's focus was on DBPro as well. Us using DarkGDK were on our own, but hey, we figured it out.

    If you go through on this, I hope your class goes well. Just two more things:
    1. Focus more on programming than game design. Whatever kids do actually take an interest in this stuff, it will benefit much more later on.
    2. Explain concepts (as well as other things). If there is one main issue I saw with my "Game Programming," class, or my current CS classes at college, is the teacher/professor not fully explaining how things are working. Don't right of the bat use abstractions, use a few examples first.

    I wish well, and good luck!

  64. Don't. by Alex+Belits · · Score: 1

    Game programming is a very complex kind of software development, prone to errors (all professional game programmers write hideous, insecure, unportable code with utterly broken networking), and requires massive amount of effort placed into non-programming-related parts of the project (art, music, story).

    Teaching something that complex in high school will inevitably degenerate into mucking around with pre-made templates, with no educational value whatsoever. If someone really wants to teach kids programming, he first has to give them an idea about true breadth of software. Most people, including adults, do not realize that there is software other than games, MS Office, Photoshop, web browser, and whatever hideous custom-made crap they use at work. I am not sure if they even know that web sites run on servers.

    --
    Contrary to the popular belief, there indeed is no God.
    1. Re:Don't. by Georules · · Score: 1

      I agree that it will likely turn into hacking some premade code. However, for a 1 meeting course a week for a couple of weeks, this seems more like a survey course where the only educational value that can possibly be expected is just awareness of the tools and some guidance using them. You're not going to make a programmer, but you may inspire a few kids to be one.

    2. Re:Don't. by Alex+Belits · · Score: 1

      awareness of the tools

      That's just marketing and seeding the biases, not education.

      --
      Contrary to the popular belief, there indeed is no God.
    3. Re:Don't. by Georules · · Score: 1

      Agreed again, but what we are talking about is not a educational course. ~10x1 hour meetings over a semester is just a fun seminar. Seminars in general are just exposure. In my opinion, to avoid bias, you're going to want to survey as much as you can that's out there. Is this just something a sufficiently motivated student could simple google? Absolutely. I believe the only goal that can be hoped for with this kind of set up is guide a talented but maybe less motivated student to find something new that they may want to explore.

  65. UDK and a few other options by Tronster · · Score: 2

    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!

  66. python+pygame by Anonymous Coward · · Score: 1

    You don't need this to be complicated. Python w/pygame will do just fine for 2D PC games.

    It might interest you to know that a least 1 developer I know of(Notch) has made videos of himself making games for Ludum Dare. He does it in Java but it might be worth making the students watch.

    http://www.twitch.tv/notch

  67. StageCastCreator by Skewray · · Score: 1

    A local after-school program my kid was in used StageCastCreator. It is $50 for each license.

  68. Google Sketchup + Source SDK by Anonymous Coward · · Score: 0

    The thing is, you don't want to have to re-invent the wheel for this project (models/textures/etc), and you sure as hell don't want a steep learning curve for the toolset.

    Using Google Sketchup in combination with Valve's Source SDK might be a good option. You do have to purchase a game to get the SDK, but these can be had on Steam for as little as $2.49. I'm not a programmer, but I followed this comprehensive how-to, and I was able to build a decent Left4Dead map in 3-4hrs a day over the course of a week. (I built a map of our home that my nephews gleefully cleared of zombies last Halloween)

    Props to you for taking on such a project. Good luck!

  69. hapypfuncoding.com by Anonymous Coward · · Score: 0

    A good place to start is with a web-based Javascript environment like happyfuncoding.com. See the tutorial videos that are part of the site.

  70. forplay by Anonymous Coward · · Score: 0

    check out google forplay

  71. You're asking the wrong question by Anonymous Coward · · Score: 1

    Why waste your time? Use "building games" to motivate some _actual_learning_, both in serious software engineering and in algebra. http://www.bootstrapworld.org

  72. Env3D by batkid · · Score: 1
    The Env3D engine (http://env3d.org) is an open-source education focused 3d engine. It is made for learning Java at the first year university level, but has been successfully used in high schools as well. Since it is focused on education, it abstracts away many of the technical details of traditional 3d engines. It currently creates web applets and applications that run on PCs (windows, osx, and linux), but the plan is to have applications deploy on andriod also in the near future.

    Full lessons and demo programs can be found on the env3d website.

  73. Re:Javascript - for both Unity3D and HTML5/Webkit/ by Anonymous Coward · · Score: 0

    Javascript is what you should teach them.

    Teach them a little bit about "objects" and then using .CSS and an HTML5 / Webkit browser with extensive documentation...

    Lots of gui events and behaviours are handled by the .CSS objects. Strap it together with a bit of Javascript....

    The result will work cross platform depending on the various implementations of webkit....

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

    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.

    Wow. All that stuff would be great if he was teaching a programming class. He isn't. He's conducting a video game development workshop.

  74. AGS by Rutulian · · Score: 1

    Surprised nobody here has mentioned Adventure Game Studio yet. It's free, runs on Windows. Ports are available for linux and mac. Some pretty great games have been made with it, including the excellent Sierra classic remakes by AGD Interactive. If you want something more old school, there is also ScummVM. It's mainly used to run old games by enthusiasts, but it can probably be used to develop new games as well.

  75. Have high expectations! by Anonymous Coward · · Score: 0

    I don't really agree with the nay-sayers who seem to think that students aren't capable of creating something as complex as a computer game. Exactly what are you implying about high-schoolers?

    Look, I worked in game development a while back (and I'll eschew my commentary about sweatshop labor for the moment). Yes, it's very complex. Yes, there are lots of interrelated tasks. But if you have motivated kids - and you're willing to put in a crap-load of hours yourself - it might very well be the sort of intellectual nourishment that a lot of kids are starving for in this day of "no child left untested"-style teaching. Seriously, motivated kids just needs enough skills to get started and someone who's passionate about the subject matter to keep them focused on the final "product". Many kids thrive on complex problem solving and semi-real-world project-oriented school work (and I don't mean posters and powerpoints).

    If you are not that person, or you think the kids will see this as just another bull*it make-work project, then I'll back away from my initial disagreement. But if that's not the case I'd say it's time to get to work.

    There are, by the way, many open source game development platforms. Choosing the right one is really more about deciding what sort of game you want to create. Here are a couple that meet your criteria, although without knowing the genre of game you want to build it's tough to choose appropriately:

    http://love2d.org
    http://www.pygame.org (already mentioned by previous posters and easy to use)

    Or maybe you want to go "old school" and create a text adventure ("You are in a maze of twisty little passages, all different..."):
    http://www.tads.org/

  76. some tips... by TemporalBeing · · Score: 1

    1. To make it interesting, it must be something that they will be able to use at home, not just in a school setting.
    2. You also need something that will enable them to learn how to communicate while doing the work - and if it's interesting enough, they'll work on it more than just in your allocated time, and possibly even do their own things too (see #1).

    As a result, it is probably best to use something that is open source. From that perspective, you have a few options:

    1. Python - easy to program, and you get GUIs using PyQt or PyGtk.
    2. Qt or Gtk coupled with any other language, though C++ would be a good one if you're willing to teach it; otherwise see #1.
    3. Android Development Kit, and I'd suggest setting up a local "in-school" AppStore as well and showing them how to side-load apps. The "in-school" thing would let you have some control over the project you're directly, while the side-loading would let them do their own thing on their own devices. You could even have some folks work with the Arduino-based USB Kit too for doing extra controls if you like.

    $0.02

    --
    Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
  77. AIR by Anonymous Coward · · Score: 0

    AIR (Adobe Integrated Runtime). With very little prep work you can get to animations and events which are at the heart of all modern GUI systems. I'm using it to develop a game on a Macbook Air. :)

  78. lol - trolling the fineprint by j-stroy · · Score: 1

    LOL this entire submission is better suited for April 1.. Read the fineprint in it, and then check all the threads. No body has read it all or fulfills it all. Each of the threads ignores the part of the submission that excludes their suggestion re: specific platform support, specific tools, etc. Its doubtful there is actually an answer.

    A workshop that meets weekly and they "actually create a game, start to finish" without programming, but programmers can work on it.. Platform specific, but excluding most dev tools for those platforms.. without skills but has to be a skillful task. Perhaps the only solution satisfying all that is a checkers game using everyones smartphones as the gamepieces.

    1. Re:lol - trolling the fineprint by Canazza · · Score: 1

      In what way? Unity's been recommended by a whole bunch of people and fulfils everything

      It will be open to would-be programmers, designers, artists, etc.

      Unity is designed with the Programmer and the Designer in mind

      The requirements are that it has to be one of either Windows/XBox or Android,

      out of the box it works on Windows, and with the Dev license and the Android Build license it does XBox and Android (granted, that's ALOT of cash though)

      It has to be relatively simple for the kids to get up and running quickly,

      During installation it includes MonoDevelop IDE and incorporates it in the GUI, although it's possible to use any IDE, (I use VS 2010 at work) so you can start developing straight off the bat.

      It needs to be as close to free as possible.

      Indie version is totally free. Has a MADE WITH UNITY splash screen and they won't stop you making money off it either.

      Teaching them to use stuff like Blender, C#, C++, Java, XNA, OpenGL and the Android SDK is probably a bit much.

      While yes, this is pretty much cutting out a MAJOR part of developing a game, Unity can fulfil his (frankly tight and stupid) request. Since it has it's own Asset store with loads of free models (and really cheap models) no blender needed. Hell, so long as you can export to FBX you're sorted. You could even use AutoCAD.

      You can programme using a variation of Javascript which I HOPE he's willing to teach the kids. Frankly if you can teach them JS you can teach them C#. With any competent IDE with some form of auto-complete you can pretty much just teach the syntax and let them discover the libraries themselves.

      --
      It pays to be obvious, especially if you have a reputation for being subtle.
  79. Measurable Learning Outcomes: Scalable Game Design by the+agent+man · · Score: 2

    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/

  80. Unity has a lot by Slur · · Score: 1

    It gives immediate results and not only shows an idealized programming space, but one that game and sim developers actually use. It allows you to program in JavaScript also, which is the new intro programming language in CS 101.

    --
    -- thinkyhead software and media
  81. HeroEngine by Anonymous Coward · · Score: 0

    www.heroengine.com
    Free, except for the art tools. (3dsMax or Maya)
    Immediately get into object oriented and functional programming. The extensive wiki has some great tutorials.
    First lesson: server side script via chat command.
    Second lesson: client side instancing an object, attaching a class to the object which has class methods handling mouse inputs
    Third lesson: replicating an instances object over multiple clients
    Fourth lesson: GUI design
    etc
    etc

    You probably will not have a functioning game by the end of the year, but those that do well in the first semester could move up to working on something that the advanced students work on year after year. Coordinate with the art department to have a class cranking out 3d assets with Maya... free work force for your game. The students keep their developer accounts after they graduate (those who want to) and when you've got something that is good enough to get some VC funding, you hire them as actual developers and start on a new game with the students.

    One thing I've learned while teaching High School. Never underestimate a motivated high school student.

  82. Darkbasic (?) by Anonymous Coward · · Score: 0

    http://www.thegamecreators.com/?m=view_product&id=2030

  83. alice.org by Anonymous Coward · · Score: 1

    I suggest using Alice.org. I teach the same thing to college freshmen, and Alice's UI is so easy to use that it gets them started programming from day 1.

  84. Why not use a freely available SDK? by Anonymous Coward · · Score: 0

    I don't see it mentioned much previously, but why not use a freely available (for non-commercial use) SDK from a popular AAA title, such as the Half Life 2 SDK (Source Engine), or the various Crytek SDKs?

    Crytek's especially is super-easy to get started with and gives the kids immediate, tangible results rather than miring them in months of boring coding that will turn them off to programming or graphic design forever. In five minutes, they can have a basic map created and they can run around in it. I think the SDK itself is even available without the game itself.

    I personally got into game design initially with the original Half-Life SDK, then the Deus Ex SDK. If I'd had to start out learning how to program BEFORE I had something immediate and tangible to work with, I never would have touched a single line of code (even to this day, I don't much like programming, I do it because I have to)

  85. Basic4Android by Anonymous Coward · · Score: 0

    I've been developing some Android geocaching games using Basic4Android which might be described as a greatly updated flavor of Visual Basic. It compiles into Android type Java before compiling. The few applications I've done work as expected and the learning curve is greatly less than than doing Java.
    Best Tom B.

  86. Scheme by Anonymous Coward · · Score: 0

    I bravely/foolishly enrolled in a CS program at UBC last September. In Intro to Programming we used DrRacket (Scheme) and How to Design Programs (online). Both totally free I'm sure. Here is all the course content online:

    https://sites.google.com/site/ubccpsc1102011w1a/syllabus

    Lab 5 was Snake and Lab 12 was PacMan.

  87. go 2d with sdl or allegro by Anonymous Coward · · Score: 0

    Used both when I was starting out, and it's easy to get things up and running. Granted its 2d, but truth be told adding the extra dimension makes it much tougher starting out.
    http://www.libsdl.org/
    http://www.allegro.cc/

    The other thing I used was graal online (http://www.graalonline.com/). May not be the same as yesteryear, but when I fiddled with it it was easy enough to create zelda-esque game worlds (think link to the past).

    Finally, if you're stuck on 3d, I know at least USC's interactive media division uses Gary's mod. If I remember correctly, getting an academic license (annual fee) is relatively reasonable and you get access to alot of valve's games.

  88. paper by Tom · · Score: 2

    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
  89. That is video game development by SuperKendall · · Score: 1

    Apart from the VCS stuff, learning about objects/events/behaviors is very much part of a video game development workshop. You cannot develop games without at least understanding some aspects of these...

    Unity is by far the best choice because then it will not matter if his students have Windows/Macs/iPhones/Android. I mean seriously, what is he going to do when he starts and XNA class and find that 80% of the class do not have the hardware needed?

    It's either Unity or pure javascript/HTML5 canvas...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  90. Pygame! by AtomicDevice · · Score: 1

    I see a lot of suggestions on how to avoid coding which seem silly to me. High schoolers that are interested in making games are probably smart enough for a little coding, and it'll do them a lot of good. It certainly doesn't even rule out other people (visual and sound design, etc) as often the design takes as much or more time than the coding.

    I really like pygame, it's:
    a) python
    b) fairly straightforward
    c) engine-less
    d) cross-platform
    e) free and requires only a text editor (I like komodo edit for python, it has the best python auto-complete I know of)

    It's not really the thing for a 3d game, if that's your goal (which seems out of the question) you'd need an engine probably. It does a great job of 2d games, and has no inherent 'game engine', which I like, because kids will learn about a lot of the things that an engine is doing under the hood. Have some kids design sprites and levels and sound effects, have others code up games. Writing little platformers and rogue-likes is pretty straighforward.

    --
    Ze Atomic Device! It iz Ztolen!
  91. GameMaker by Anonymous Coward · · Score: 0

    Have you tried gamemaker 8 ,its free at yoyogames.com, i use this to produce games that give great demos of technology and the community are great alongside the documentation.

  92. Look at programming boot camps by transporter_ii · · Score: 1

    Look at programming boot camps or summer camps for kids in the same age range, and then see what software they are using:

    http://www.internaldrive.com/courses-programs/video-game-camps/

    The above is a two week course aimed at kids: 7-10 | BEGINNER – ADVANCED

    Software: Arcade or Platform game using Clickteam® Multimedia Fusion 2 Developer® and Adobe® Photoshop®. Build custom characters in Spore Creature Creator and import them into your game. Take breaks with supervised outside play, sports and techtivities.

    If that isn't the right age range, find some that are.

    Might also look at:

    DarkBASIC 3D Games Creator
    The Games Factory 2

    They get really good reviews, teach the basics of game programming, but probably aren't so hard as to scare the kids to death.

    Python and Pygame (already mentioned).

    And on Amazon, check out:

    The Game Maker's Apprentice: Game Development for Beginners (Book & CD)

    It comes with a CD with some free software, and it is supposed to be good. I got a copy of it for my son for Christmas, but I haven't had time to look at it yet.

    --
    Doctors destroy health, lawyers destroy justice, universities destroy knowledge, religion destroys spirituality
  93. Renpy! by Anonymous Coward · · Score: 0

    Renpy is built on pygame, but much easier to use. It's especially suitable for creating visual novels and can be learned easily by people without programming experience. While you have the full power of python (and pygame) at your fingertips, you can already get impressive results without fully knowing any of the underlying technologies. It has a super awesome one-button distribution builder for all of windows, linux and MacOs (building distributions for a given system can be done on any other system). It's super easy to mix graphics, music, animation, text together and get something awesome.

    http://www.renpy.org

  94. Autodesk Software if free for Students by Anonymous Coward · · Score: 0

    Disclaimer: I work for Autodesk. Students and faculty can download pretty much everything Autodesk makes at http://students.autodesk.com including 3ds Max, Maya etc. There are lots of free tutorials and other resourses on area.autodesk.com as well. Hope that helps!

  95. Neverwinter Nights by Anonymous Coward · · Score: 0

    on sale through Jan 2 for just 4.99 per copy - DIAMOND edition with both expansion and the best game toolkit around ... find it at

    gog.com

  96. UDK by Anonymous Coward · · Score: 0

    I haven't seen this mentioned yet, but I also only skimmed the comments. Check out UDK. It is the engine that powers the games the students are playing, full featured, free, and pretty easy to learn. I've worked at ASU's CampGame over the summer for a few years now, and we take a new group of students through the game dev process (using UDK) over the course of 6-8 weeks every summer. At the end of it they end up with a game "prototype" (pretty much a demo version of the game. All the game play is there, but it needs more levels and polish before I would call it a full game.)

    Here's the link to CampGame: http://games.asu.edu/campgame/
    And the link to UDK: http://udk.com/

    Hope this helps someone.

  97. Free Legos by ratail · · Score: 2

    Contact lego. They might even sponsor the school. The game is Soccer

  98. JumpCraft by Anonymous Coward · · Score: 0

    Many schools are starting to use JumpCraft (http://jumpcraft.com) for this purpose. JumpCraft is designed to make 2D games, and has its own Triggers/Actions programming method similar to that in the StarCraft campaign editor, and has the ability to write scripts in Visual Basic.

  99. Starting with the classics. It is pitch dark... by Anonymous Coward · · Score: 0

    http://inform7.com/

  100. Codea by Anonymous Coward · · Score: 0

    I was a developer for Codea. Its an iPad app for rapidly prototyping games using Lua, similar to Processing's model. We have found many people are using it to teach their kids how to program as well.
    http://twolivesleft.com/Codea/

  101. Pygame by Anonymous Coward · · Score: 0

    I'm sure its been said somewhere already but Pygame is awesome and simple.

  102. OpenSimulator by Doug+Merritt · · Score: 1

    "OpenSimulator lacks support for many of the game-specific features of Second Life (on purpose), while pursuing innovative directions towards becoming the bare bones, but extensible, server of the 3D Web."

    Sounds cool, but not for the purpose at hand.

    --
    Professional Wild-Eyed Visionary
    1. Re:OpenSimulator by trinity93 · · Score: 1

      It supports everything sl supports and more you just have to add them from third parties if its not there by default. Its sorta like you have to do with content management systems. there are add ons that people in the community make. and did i mention its all free. Another thing to consider is how many 3d apps are multi user and can be shared in a geographically dispersed way? There is a reason several major collages and universities use this tech right now to do what the OP was looking for.

      --
      We substituted the coffee Slashdot normally drinks with "Sandoz Crystals", Lets see if they notice the difference
  103. Getting started with Unity.. by Anonymous Coward · · Score: 0

    As pointed out it sounds like Unity is your best bet- full disclosure I used to teach for 6 years at a UK university and during a masters in education I ended up focusing on developing my unity classes further. This eventually led to http://unity3dstudent.com and an invitation from unity to speak at their conference. I now work for Unity and working on defining our educational output so anything I can do I help you out please get in touch using will at unity3d dot com. Good luck with the course!

  104. I'd say by Tibia1 · · Score: 1

    Paper and pencil.

  105. Construct 2 by Anonymous Coward · · Score: 0

    Tom here from Scirra! We make Construct 2 (http://www.scirra.com) which is an HTML5 game maker.

    We have an extensive free edition available which people make a lot of games from and is perfect for teaching with.

    We think HTML5 is the future of web games (most people know Flash really is on it's way out) and we think Construct 2 can offer you and your students a lot. Check out our beginner's guide which has been viewed 120,000 times!
    http://www.scirra.com/tutorials/37/beginners-guide-to-construct-2

  106. Funding for your project by Anonymous Coward · · Score: 0

    If you need funding for a project check out donorschoose.org.

  107. FPSCreator by Anonymous Coward · · Score: 0

    Requires no coding (but you can do scripts). I beleive there is a free version, but I can not remember off hand and can not get to the site from work, it is pretty cheap though. The system is designed for 3D games, but does not have to be the so called "Shooters". They contain stock media and models so you dont have to hunt those down. But there are a lot of sites around with freebies. Last time I checked had a pretty large following and there are two versions. One for dx8/9(i beleive) and one for DX10(no longer being developed from last time I was on the site.) . They also have other game making tools and also a basic language wrapped around DirectX. I suggest this, because if fits your needs. Kudo is nice, but to child like. If this was elementry or middle/jr school then maybe, but you are talking almost adults, treat them as such. Another plu with this system(FPS Creator) it compiles to native code and can be ran with just the executible. Only the latest DX needs to be installed. The source code is availible as well, this will satisfy your possible programmers. It is written in Dark Basic their flagship product. They have a free version of that as well, and I think FPS Creator will compile in that, but you must check the docs for that. I used this for a long time for making quick layouts for games and such to mess around in. You can make a one level game in an hr or a more detailed one with a bit of effort. The editor is WYSIWYG with a view for making small ajustments, for lighting and such.

    1. Re:FPSCreator by Anonymous Coward · · Score: 0

      www.thegamecreators.com forgot the web address lmao

  108. python visual by Anonymous Coward · · Score: 0

    While not really made specifically for games, rendering and manipulating shapes on the screen is really easy with vpython aka visual python. I have made some extremely simple 3D games with it with my son.

  109. jMonkeyEngine by jcfandino · · Score: 1

    Maybe you can try jmonkeyengine. It's a engine for java and open gl, has a complete environment based on netbeans, physics engine and also works with android.

  110. Completely agree! by LostMyBeaver · · Score: 1

    Unity3D meets many different needs... you can code pretty much any type of game, but think of Unity3D as the Visual Basic of game design. It has nearly everything you need in a single IDE which also has full C# language support. If you wanted to teach the kids things like game programming theory like rendering and shading... well that's something else altogether. If you want to teach them how to make an actual game... use an engine like this.

    Unreal Engine 3 is also nice, but I don't think it's nearly as intuitive. A bit out of reach even for really bright teenagers.

    I do however recommend trying to convince the kids to read a book on game/3D programming as you go along... like a homework assignment. There are a few really good ones which cover the math involved in the first few chapters and if you help them a little, you can teach them about the power of matrices... which needless to say is pretty much the entire underlying foundation of game engine programming.

    Also, writing a game without an engine is total insanity when teaching if for no other reason but audio synchronization. I have used months at a time in the past just coding high granularity, event based audio code. That topic along is far beyond the scope of when you could teach in a 1 day a week course to kids. Stick to a premade engine.

  111. Try this one. by Anonymous Coward · · Score: 0

    A nice little open source game making program

    http://game-editor.com

    Might be of some use and comes with some tutorials as well on the site.

    I have not used it so do not know how well it works just came across it one time but could be worth a look.

  112. Construct by Anonymous Coward · · Score: 0

    www.scirra.com Consturct classic is free and Construct 2 is cheap and you can make html5 games with it.

  113. BASIC? by Goldsmith · · Score: 1

    It may not be marketable (and may date me a bit), but my HS programming class was in BASIC, and the final was to make a game. I don't know what the equivalent would be today (java?), but it was quite useful learning the basics of good programming first and getting an idea of what was easy and what was hard in writing software.

    I don't know that a workshop is going to do that.

  114. Been there. Done that. by Anonymous Coward · · Score: 0

    When I was in 9th or 10th grade, I took a programming class in BASIC. One of the group projects we did was a Tetris clone (We called it Leftris because the blocks fell to the left...to avoid plagiarism, of course). The teacher diagrammed each routine/function as an IOP (input-output-processing) diagram. Two of us worked on each routine, and the teacher did the graphics subroutines. It was pretty awesome. He then gave us a few 'free' days to tweak it however we wanted, which included summoning a straight piece on command (so we could get a high-scoring Leftris).

    The point is this: Don't focus on fancy 3D-engines and texture mapping. Focus on letting them do something fun without realizing how much they're actually learning. The second-level class could be on building a portal engine...there are books that will lead you through it (didn't the HeNe tutorials do so as well?).

  115. Piece of paper and a pencil by Anonymous Coward · · Score: 0

    Chess, Checkers, Monopoly, etc. are some of the most successful games of all time. And they do not require a computer to design or play, and at the very least if you cannot design a decent game on paper, how could you ever hope to make a truly great game with the extra work of programming a computer? I'm not saying some games don't require computers to design them at some point (i.e. fps), but nerf guns can simulate an FPS in real life and equivalently football/baseball/etc are very popular 3d real life games not requiring a computer to design.

  116. Re: by Anonymous Coward · · Score: 0

    He relies a lot on trial and error (which is of course a bad thing) but so did I at that age.

    On the contrary most of our society is built up on trial & error, trial and error or "mistakes" are good, because they are all part of the learning process (http://en.wikipedia.org/wiki/Learning#Types_of_Learning) the only bad thing is not learning from the mistakes.

  117. UPT Digital/IT Hothouse for Games Dev in Schools by Renea+Mackie · · Score: 1

    Go for it! Your goal is definitely possible. I know because that's what we've been doing at our school for the past 18 months. Games development was a real interest point for many students so I started talking to people in industry and academia about the best way to approach this. No one really had any answers but we were given a few more problems to solve: "There are not enough skilled IT teachers so you need to address that problem at the same time" and "You need to find a way to attract more females into your classes." In the end I thought 'what the heck, I'll just run a class and we'll figure it out as we go.' I guess the most challenging aspect has been the fact that I'm not a teacher, or a programmer, or a graphics person, or a mathematician, but I thought if I could find a way to support the learning then anyone could do it. To cut a long story short, I got the class to "brand" their class and they really took ownership of it, and that was key. The students work alongside me and help to make the decisions. We tried all sorts of things then we'd sit together and decide what worked and what didn't. I'd actually been testing the pre-release of Kodu with the students so our first mentor was Mark Finch at Microsoft Research. We also had a guy visit that used to work at RockStar Studios. He talked to us about structuring our group like a games development company. Because we were constantly seeking advice from industry people, mentoring became a huge part of our model. Rather than writing a novel about it here, you can check out the model we came up with here: http://www.uptdigital.com/ There's a video of our Microsoft TechEd 2011 presentation on the front page and also a description of how it all works on this page: http://uptdigital.com/mod/resource/view.php?id=6 Our site is a bit of a mess. It has been a challenging year for us as we were right in the city during the earthquakes and had to be relocated (without our PC lab). We spent most of 2011 developing our concept and doing promotional work. In 2012 we're welcoming our first test pod in another school (John McGlashan College in Dunedin). UPT Digital students will help to mentor that pod. And, we're bringing NCEA assessments into the picture. One of our students did the Computer Science STAR course at Uni this year and got A+ and A-. In 2012, we have 5 students doing the STAR course. I won't lie, this is chaotic, mind boggling, very challenging, and definitely not for the faint of heart, but it's inspiring, exciting, fun, empowering and WORTH IT!! We're creating a site called IT Hothouse at the moment. It might take us a while because we're learning as we go, but it's a generic brand we've created so other schools can manage their pods and connect together to support this kind of learning, and it will be free. We'd like to help and collaborate with other schools. Feel free to contact us. My contact details are on our website. We'd love to help if we can, and I'm pretty sure you could help us too! :)

  118. RPG MAKER by Anonymous Coward · · Score: 0

    Rpg Maker 2003. It is completely free but requires no programming skills. It is in 2d so it could be done in the time required. It also helps students get a feel for what making a game is like but in a non threatening way.

    Check out rpgmaker.net, they also have other game engines as well.

  119. Panda3D is an option by Gibgezr · · Score: 1

    Panda3D supports Python or C++ development. My school has used it for a couple of game development related courses and the students loved it. I'm just mentioning Panda3D in case you feel the need to start out in 3D: we actually start out in 2D with something like SFML and C++, but that is part of a 2 year college program that leads to C++/OpenGL development. Panda3D with Python might work for a HS class. From the website: "Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is Open Source and free for any purpose, including commercial ventures, thanks to its liberal license." http://www.panda3d.org/ Also worth looking at might be Alice, if Panda3D/Python is too much for them. Alice has versions for middle/HS, and lots of teaching aids. "Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience." http://www.alice.org/

  120. haxe by Anonymous Coward · · Score: 0

    I'd go haxe (http://www.haxe.org/) if I was you. It's as easy to learn as JS / AS3, is completely free and open source, and compile to whatever the hell you want! There's no 3D right now (not easily) but if you're teaching someone how to make games all you need is some simple sprites.