views:

150

answers:

12

I have been asked to research teaching a module in game development to beginners (no programming skills) of the age group 18-30, at a secondary school level. The course will run for roughly 8-10 months and each student would probably get 3 hours of teaching time per week.

My initial thoughts were to propose using Flash, since the student could make a simple but functioning game with little knowledge of programming. The budget is tight though, and I thought it wise to look into some alternatives in case the budget doesn't stretch far enough.

I know there are FOSS flash builder applications out there such as AJAX Animator but having never used them I am worried that they won't be able to deal with variables and such, even at a simple level, to handle scores, lives etc.

Does anyone have any thoughts on some good alternatives or different approaches? Students must develop some kind of playable game by the end of the course.

A: 

There is always Silverlight, and Microsoft makes a free version of Visual Studio called Visual Studio Express.

Silverlight is Microsoft's take on Rich Internet Applications, which is the same class of applications as Flash applications.

Jason Whitehorn
+2  A: 

You could look into alice, http://www.alice.org/

Orbit
+2  A: 

Unfortunately they will almost assuredly have to develop at least an extremely basic knowledge of variables (etc) and simple programming logic, or else the most you can do is let them interact senselessly with something on screen.

I personally would have suggested Flash; have you looked at their education licensing? I don't know what it is off the top of my head, but it ought to be significantly less expensive than licensing Flash for commercial/regular use.

When you get into alternatives like using HTML/Javascript you really start running into more complication, as you have to worry about servers, browsers, HTML, CSS, Javascript, etc, versus being able to draw/import to a canvas and write minimal logic to support it.

mway
Yeah, I did some more research and it turns out the Flash licenses are very cheap. I think the budget will cover it after all!
edzillion
+2  A: 

You can build Flex for free using the open source Flex SDK. Flex is build with MXML and ActionScript 3, the same language used to program in Flash. You can use Flex to make flash apps. Flex is much better suited for teaching programming than Flash in my opinion because you don't have to deal with movies or key frames or any of that. You can also mix Flex SDK with Adobe Air to build simple desktop games.

Aptana Studio is a free Eclipse based editor which supports both Flex and Adobe AIR development.

None of this will cost you a dime.

apphacker
I wouldn't say Flex is better than Flash for beginner programming. Flex is a framework and thus an additional overhead to learn. There is no need to worry about key frames with Flash, that's only if your using the Flash IDE and coding dodgy stuff on the timeline. Other than that I agree so +1 :)
Allan
You don't have to use the Flex framework, you can do pure AS3 projects with the open source Flex SDK. Flex is really not geared towards game development.
PatrickS
+1  A: 

Unity is a pretty sick program for making games. It can make games on alot of platforms, but needs some coding experience. http://unity3d.com/

Thediabloman
agree, not an easy start for a none-programmer, but cool results are possible.
BerggreenDK
A: 

I learned (and also helped teach a class of college Freshmen) using VPython: http://vpython.org/ ... it's very simple to use, yet also pretty powerful.

Matt Caldwell
+5  A: 

I'm a primary (elementary / middle school) school teacher - so the things we've done are pretty basic, but here's what we've played with:

  • Alice (as per @orbit) - I found it a bit cumbersome for our kids, but it's certainly got potential. (Free!)
  • Kodu for looking at game logic and focusing on playability and processes (not programming / variable stuff, but certainly logic). (Free - at least for us on the beta - you've got to buy an xbox controller tho).
  • Game Salad looks like it has a lot potential too, but I've only had a brief look. (Free).
  • Scratch is a pretty neat starter for variables / logic. I've used it with 8 year olds up to 13 year olds. (Free!)

Sounds like a fun course to teach! I hope it goes well. I'd probably have a good look at GameSalad for that age group - particularly since the iPod Touch / iPhone is pretty trendy / exciting at the moment.

glenstorey
I have a friend who took a class on game development specifically (At our university there are two or three classes where professors choose any subject they want to teach, so sometimes there are really cool classes available). They worked primarily with Alice.
steven_desu
A: 

My son learned Squeak when he was 7 or 8.

Squeak is a smalltalk environment with a graphical programming layer - called eToys - layered on top. eToys is aimed at grade school-aged kids but is fun and rich enough for adult beginners to enjoy too.

The canonical first program in Squeak has the child building a racing car that follows a race track and races cars made by other kids. No variables!

It's free and open source. There is a large community of teachers that support it.

There is a demo on the front page at http://www.squeakland.org/ and a showcase of apps built by kids (and, sometimes, their teachers) at http://www.squeakland.org/showcase/featured/

Kevin Lawrence
A: 

I'd strongly recommend Scratch, especially for non-current-programmers. Lots of examples, visual and not syntax-oriented, and games are a primary target. There's also an app builder for Android based on Scratch.

jesup
A: 

When I was younger I made a few games with RPG Toolkit.

It's primarily intended for over-head 2-D role-playing games that work on a grid-based world, akin to many older NES or Gameboy games. Final Fantasy 1 through 6 and you've got the idea.

It isn't the prettiest way to make a game, but I found it was one of the easiest. It makes much more sense than many rich application platforms like Flash or Silverlight, and it lacks the complexity of 3 dimensions that you find in Alice. Since a computer screen is two-dimensional it's very easy to understand not just what you're drawing, but how to manipulate it. In three dimensions you sometimes think two objects are side by side and find that their z-parameter is miles off.

More importantly, it has a very powerful scripting language for adding your own features. This lets you go from a battle screen (like Final Fantasy) to fighting on the main map (like Zelda). It also allows you to code "save points", "item shops", etc.

The newest version of the toolkit even allows for creating simple multiplayer games.

It won't teach them too much, so I wouldn't spend all 8 months focusing on it, but it can give someone a few general concepts. Mainly that most modern games aren't built entirely in code, but rather a developer platform is coded which allows you to create worlds and write scripts. This is how the Unreal Engine and Havok engine work. I think it's also how the Endorphin engine works. Mind you these engines were the geniuses behind hundreds of games (Ok- the last link was a stretch. NaturalMotion doesn't include a list of games using their engine on their own site)

steven_desu
A: 

Depending on the quality of the result, I would recommend different solutions.

I doubt that most people can learn programming + learn do make a game within the tight timeframe and budget you say, but if we lower the expectations "something" should be possible.

First of all, I think groups learn faster if competeting. Secondly sourcecode of a solution should be open to others on the course.

I learned to program back when I was 14-15 years old. Together with a friend of mine, we wrote a little piece of code each, then demonstrated our idea and the other one learned from it.

Later on we formed a "small group" with more friends, and started to build small games and compete to see who could come up with the best idea and build a small game with a few levels. We got inspiration from every game we liked at that time (Commodore 64) and tried to build something similar with BASIC.

It was a challenge as we had no teachers, no skills, internet, just friendship and bragging about how we did something cool - and then showing our code to the friends, so they could learn this too.

I've learned that to start developing a game would require something different than a "language/platform" from a start. The idea/plan/goal is much more important than selecting a tool.

A game needs logic and rules to follow. So you'll have to decide what kinda game, before choosing the platform/tool.platform/tool.

Ideas for gametypes

  1. PAC-MAN games (collect things in a maze, avoid monsters) needs some map or collision logic to work

  2. Platform games (run sideways, jump, duck, shoot) needs a tilebased platform, these has to be coded right to work

  3. Shooters (things crossing the screen, points for hitting) needs a mouse input, some collision detection

  4. Simple adventure (multiple scenes, inventory with object you pickup/use, objects with state) needs a 2D viwer, a little click action

  5. 3D FPS, needs a real 3D engine (Unity3D or similar frameworks will make this possible, but far reach for newbie programmers) - perhaps a map/level for an existing game such as Quake or better might be more fun to make.

  6. Turnbased (simple games where player makes a move, then AI or other player) requires less from the framework/hardware as delay doesnt hurt the game itself. Very possible with HTML/javascript.

Advise:

I would go for some simple game made with HTML5 and whats possible with that. You have Canvas object if you need vector. You have Javascript for interaction/movement. You have sound for effect, but the best part is that it can be writting with NOTEPAD if needed and EVERYONE on the course can learn from each others coding.

If you want to design a simple adventure, HTML could do much of the trick itself. Just finding my way around the internet/wikipedias is like a maze game sometimes :-)

But perhaps you might need a little extra for the inventory part (bookmarks) (if no serverside, you might need some sort of pre-made objects) so the course is more about designing a game and using a framework, than learning to program in Javascript.

If the idea is to learn game-design, more than coding, then I would go for simple editors like Gamemaker 8 which uses a graphical editor to produce loops and events. Very easy for new designers + able to do tilebased games.

Again, depending on ambitions and time/effort - go for the right type of assignment and choose tool from that.

BerggreenDK
A: 

just an FYI, Adobe is giving away free copies of Flash Builder 4 Standard to students and teachers: http://www.adobe.com/devnet-archive/flex/free/?sdid=GXVTO&PID=1225267

although there's no timeline development in FB4, so it wouldn't be as easy as using Flash CS5 or Flash Catalyst CS5.

TheDarkInI1978