开发者

Is there a good alternative to flash for teaching game development to beginners? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 10 years ago.

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.


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.


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.


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.


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


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/


I'm using gamemaker in a computer programming club for kids. I've got kids from 3rd grade to 9th grade attending.

What is nice about gamemaker is that there are enough built in pre-programmed modules/events etc to be able to build simple games without any programming at all. There is a graphical interface and logic can be built using graphically represented pieces. There is certainly logic and process that has to be learned but mostly you need just basic computer skills to start.

I'm doing this with kids in Czech Republic who only have a rudimentary knowledge of english which makes it a bit tougher but they are getting it and learning some english to boot.

For the older kids that are interested there is the opportunity within this development environment to also do coding as there is a fairly rich coding environment available to those that want to create much more complex games. There are also lots of dlls available created by users and there is a basic 3d framework as well although it is limited.

I'm not a programmer by trade .. just a hobbyist ... just to put this in perspective.

There is a free lite version of gamemaker which will allow you to do a lot including creation of .exe files to play the games on most windows machines. There are advanced features that are not available in the lite version ... it's described pretty well on their website.


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.


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)


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 competing. Secondly source code 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 game types

  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 tile-based 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 viewer, 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. Turn-based (simple games where player makes a move, then AI or other player) requires less from the framework/hardware as delay does not 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 written using 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/wikis is like a maze game sometimes :-)

But perhaps you might need a little extra for the inventory part (bookmarks) (if no server-side, 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 tile-based games.

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


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.


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.


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/


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜