Ask Slashdot: Resources For Kids Who Want To Make Games?
Mr. Jones writes: My 11-year-old son is fascinated by games — game mechanics in particular. He has been playing everything from Magic to WarFrame since he was 5 years old. He seems mostly interested in creating the lore and associated mechanics of the games (i.e. how a game works). If it was only programming I could help him, but I am lost when it comes to helping him learn more formal ways of developing and defining gameplay. I really see a talent for this in him and I want to support it any way I can. Can you suggest any conferences, programs, books, websites, etc. that would help him learn?
There's no real formula to designing a game. Come up with an idea that's fun, and iterate on it to maximize enjoyment, getting feedback from others often. Be sure to implement your ideas in prototype form and play-test them, and have others play-test them as well. Discuss what works and what doesn't work.
Don't get a big head and cling to a feature that only you love. If nobody else likes it, it's time to let it go. :)
This is how the pros do it. 8-)
.. at ludum dare.
http://ludumdare.com/compo/
At 11, your best bet is probably to just let him keep on exploring. Formal stuff can come later.
http://www.gamedev.net/
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
Maybe you could look at modding existing games as a start. Take what is already there and change it, learning how it works and how things like game logic are implemented. Modern games have some pretty powerful tools that allow the designers to do what you son wants to.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
It's my go-to show for talk about game mechanics. They post new videos on Youtube every week, consisting of 5-10 minute lectures on a topic.
I think much of game design boils down to balancing actions within the system rules. Teaching spreadsheets would be a good start. Take a look at the wiki on game balancing Lots of references for literature.
Rather than asking the armchair gamers on Slashdot (myself included), read what some successful game designers say.
Here's Mark Rosewater, head designer for Magic: The Gathering, on game design 101: http://archive.wizards.com/Mag...
You need to send that kid to school so he can learn all about the war of 1812 and who invented the cotton gin.
Jesus christ, man, he's 11. Get him RPG Maker and let him figure out how to make a game with his own made-up story behind it.
http://scratch.mit.edu/
http://michaelsmith.id.au
Pure opengl for game development can be a little difficult and time consuming, so there exists some libraries especially for young people to start writing games, for example http://sivut.koti.soon.fi/~terop/GameApi.html has a easy-to-use high level opengl library for game development.
Apparently a beginner's HTML book and a "woe is me" attitude will make anyone into a "game developer"
Mark Rosewater (head designer of Magic: The Gathering) has a weekly column on the wizards of the coast website where he discusses game design and magic design specifically. The column has been running for over 10 years so there's quite a bit of content to be had there. Every year he has an article where he rates his own articles from the past year and links which ones he thinks are worthwhile and which aren't, so that might be a good start.
http://magic.wizards.com/en/content/making-magic-archive
The good news is that there's an actual university degree for his interest - greating games and game mechanics, as opposed to just playing them. Games design deals with creating game mechanics (among other things, probably of some interest to him). I used to live with some game designers and both have been employed for the last 5 year so I guess they've had success with the career so far.
Is there possibly any open course-ware for Games Design floating around?
I'm not sure if I'm understanding your question, but it seems to me he'd be interested in stories and story telling.
The key here is to help him explore what stories are powerful to the human mind. As a parent, Jung is your go-to guy for the reasons why stories have been retold for generations and should give you plenty of structure and direction for good material for your son to work with.
More simply, there are child friendly versions of Shakespeare, the stories told in Operas, and be careful getting a semi-authentic Brothers Grimm book. The original stories are a little graphic in places, but more powerful. There are also board games about story telling.
Hopefully, I haven't gone too far in the wrong direction. It just seems to me, good games always had good stories as structure.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
Cardboard, paper, scissors, felt-tip pens, friends to experiment with. You don't need a computer to develop and experiment game mechanics. ;)
I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
it's good enough for the purpose because you can make little changes in lua and immediately see them in action, which keeps a child motivated.
11yo may be a bit too early, but some kids could be up to the task.
We just did the Hour of Code at my workplace for the kids. Lots of tutorials for beginners on there. MichaelSmith above me also mentioned Scratch, and that's an excellent visual approach to learning procedural programming.
Game Maker. That's what taught me, and I started around that age too. It's powerful enough to teach real programming, yet it also isn't too hard or confusing.
http://www.gamasutra.com/
Game construction kits:
Stuart Smith's Adventure Construction Set
Racing Destruction Set
Pinball Construction Set
Arcade Game Construction Kit
Shoot'Em-Up Construction Kit
Garry Kitchen's GameMaker
Run them on a real Commodore 64, or run them in an emulator. Images are available online for all these software titles.
See also: http://www.lemon64.com/?game_i...
This planet is more and more converting into Gazorpazorp. Only missing thing now is gazorpazorpfield.
this site guides you to tools based on the type of game you want to make: http://sortingh.at/
http://www.generalcoffee.com/h...
This seems as a good a place to start looking as any. It allows you to make text-based games but expand into graphical adventure games. There's a free PDF book on there as well.
If you want a really pure and direct interaction with the mechanics that govern gameplay, D&D and related game systems are hard to beat. Humans are literally interpreting and implementing the rules of gameplay, and anybody who is literate can impose structure on an imaginary universe by understanding (and eventually writing their own) rulesets.
There are lots of different systems out there. Just getting him thinking about the rules of Risk vs Settlers of Catan (both arguably about conquest of a region, military or economic, respectively) would be a good way to start. D&D is obviously a standard (and 5th edition, which just came out, is excellent), but there are free and open source games out there (D&D 3.5 edition has all the rules available on the web, open-source style, and there are interesting derivatives like Legend from Rule of Cool) and they expose how games really work, and would help establish the kind of thinking that would be invaluable to someone looking to program game mechanics.
If you want something simple in that vein to start with, Settlers of Catan (as previously mentioned) is a great study for RTS-type game mechanics, and Mouse Guard is supposedly a simplified, kid-focused tabletop RPG.
Consider attending the WBC (http://boardgamers.org/) next summer.
This and "Just do it" (esp. by sharing the results with school-friends doing the same thing) are the best answers thus far. I'll add a third idea:
No-one has yet mentioned the importance of thinking about the nature of challenges, and so, what games fundamentally are, why they're enjoyable, why there are fundamental limits to that enjoyment in any one game, and how to push them. This book, A Theory of Fun, was extraordinary on those subjects. Might be worth leaving it lying around:
http://www.amazon.com/Theory-Fun-Game-Design/dp/1932111972
Just make sure he doesn't believe that copyrighting his game designs will yield money in the future.
Cloudiot: A person who does not see offsite storage as a way to lose control over access to his or her own data.
You could have him look at Inform 7 and its associated examples for interactive fiction. It uses a subset of English to express the game setting and logic, and exercises programming and small-to-large-scale writing skills. The (IMO) very nice UI also assists in organizing and testing the game structure and execution as well.
They may decide they want to develop video games for a living and end up working for EA. I wouldn't wish that on anyone.
Any insufficiently advanced magic is indistinguishable from technology.
He could make use of integrated learning
Check out this tutorial:
http://www.abc.net.au/abc3/goo...
Good Game Spawn Point is a TV show aimed at younger gamers (like the OP's kid) and the tutorial in question takes you step by step through the production of a simple game.
And once they have done this, they can start playing around with the Scratch! toolkit (a free game design tool produced by the fine folks at the MIT Media Lab aimed at getting kids into game development and coding) and producing their own games.
For a holistic look at games, game mechanics, game development and the game industry, Jesse Schell's The Art of Game Design is great. I wish I'd had a copy of this book when I was 11. The second edition just came out, so it's full of contemporary examples your son will probably recognize. As a companion piece, Brathwaite and Schreiber's Challenges for Game Designers would be a lot of fun to work through together - its board-game and card-game challenges are easy to start on at home, and are a great way to try out what professional designers go through when developing and evaluating mechanics.
Normally, I'd recommend Scratch, but in this case, I recommend: MMF2, by François Lionet and Yves Lamoureux. They really get it, and your son will learn a ton about programming, without deviating from working on games themselves.
The author's free to say whatever he wishes, but Debian doesn't have to provide a mouthpiece for him. The software in question has some interesting oddities in it, which are probably the reason that the packaging request was denied, and rightly so. To whit:
The subroutine "nowomensrights", which repeatedly prints out "Just Say No To Women's Rights"
An occasional section where "Return to Casino Men" has a different color than the continuation "u" (completing the word "menu")
Odd references to feminism, women's rights, the 19th amendment, etc that trigger the aforementioned subroutine to be run
Easy bugfix: Remove the political and sexist bullshit, and I'm sure that the software would be accepted. Seriously, what other software accepted by Debian contains obvious political speech? This isn't about the software being unavailable, it's about the author's unpopular opinions, and the fact that it's not the author's right to make someone else listen to what he says.
Gamasutra.com and all affiliates; Gamedev.net; roguebasin.com; Conferences: GDC and all sister conferences. Gamasutra.com is the best starting point.
Haven't tried it but I have a similar scenario and considering it
Look and seeif there's a CoderDojo near you, they do free weekly sessions for teaching kids technology, often involving game making: https://coderdojo.com/ For quickly getting kids making games, they tend to use the program Scratch: http://scratch.mit.edu/
Look at the source code of open-source games.
Fun way to learn.
nethack
quake
doom
etc
Uh, Linux geek since 1999.
Shamus Young (a columnist for the Escapist) recently wrote a small 2D game (almost completely) by himself called Good Robot and chronicled its development in a 30-part blog series:
http://www.shamusyoung.com/twe...
http://www.shamusyoung.com/twe...
Those are the first and last entries; they're all numbered and contain links to the next one in the series. He didn't finish the game (and doesn't know if he will), but he did produce a complete playable alpha. I don't know if it's exactly what you're looking for, but Shamus is a good writer (as well as a programmer) and cares a lot about mechanics and gameplay. Several of the blog entries are dedicated to those topics (power-ups, enemies, etc.).
"Return to Casino Men"
Clearly you get beaten bloody in a backroom if you chose that option.
Debian also removed the software "hot babes" years back because it offended womyn. Debian is an SJW organization, men need not apply.
They (Debian-women and allies) DID try to make the software unavailable before:
http://esr.ibiblio.org/?p=1310
They had it taken down from its host.
I know exactly where this kid is coming from! In high school, I filled notebooks with pseudocode for how I wanted some of my game ideas to work. Getting into Dungeons and Dragons was a helpful experience as well, especially in the Dungeon Master role. If you want to deal with lore or game balancing, there's the perfect opportunity! I know from experience that finding resources on game DESIGN, as opposed to game PROGRAMMING, can be difficult. I spent a semester at university minoring in their brand-new Game Design program that was exactly not that, and was highly disappointed. Fortunately since you seem to be talking about games in general and not just video games, there's a wonderfully accepting and active community of designers and playtesters at BoardGameGeek.com: https://www.boardgamegeek.com/... There are frequent design competitions there as well, and board games are certainly an easier jumping-off point than most video games in terms of complexity. There are tons of excellent game design articles on BGG, as well as at GamaSutra, Polygon, and yes, MagicTheGathering.com as mentioned above. It might also be enlightening to study the well-documented changes over time to the other long-lived juggernaut of gaming, World Of Warcraft, with over a decade of design changes for various reasons, but then again it may take more subject knowledge to really understand why that game evolved the way it did. MTG is a much more self-contained study, but I would say also less dynamic and interesting in its changes. The recent announcement to remove the summer Core Set and have 2 2-set Blocks per year is a good example of a thoughtful change, though. A big part of good design is finding what parts of your creation don't work as well as they could, then ripping them out and fixing them. Finally, the world's best prototyping tool for most games may well be Microsoft Excel. If you want to quickly see how ideas interact, finding a way to describe and model them mathematically can be very useful.
Around the time I could read & write I started running & modding these games. All text based so you can focus solely on game mechanics.
http://www.atariarchives.org/b...
http://www.atariarchives.org/m...
Graphics programming can come later.
Forget programming. Sit down with him and make a few board and card games.
Too many game designers these days look at the technology and the graphics and the monetarization and all the other crap and forget that first and foremost, there needs to be a game.
When you limit yourself to the bare essentials, you see the game for what it is, and learn to make games by focussing on what makes a game.
Assorted stuff I do sometimes: Lemuria.org
Before I posted this, I read through the roughly 60 posts that were here. If your child is interested in the lore and mechanics of gaming, I think the prime focus should be on creativity and writing. I don't think you can necessarily "teach" creativity, but I think you can encourage it. I would probably suggest a lot of reading of fiction from as great an expansive base of styles and genres as you can. Through exposure to a variety of material, they may find something they like and build/expand upon something they like. Very little is truly a brand new idea. Most fiction is an adaptation/twist/extension on a previous idea.
If your kid wants to both write the story behind the game and the code that makes it happen, large AAA games are not what you want to strive towards. There tends to be a strict separating of responsibilities.
If your child is insistent upon that, as far as development goes, a large number of people have already post some great links to development resources. A lot of those may be over the head of a child, though, let alone a seasoned non-game developer./p?
I made this video few years ago for some students who were interested in game mechanics. Specifically, how to make a character jump, with acceleration, or gravity. I use the language Scratch to explain it, however it could be applied to other languages too I suppose. Scratch is a great visual drag and drop language for beginners. It helps students to learn the power of what computer programming can do without having to memorize code. I find Scratch (scratch.mit.edu) and game mechanics are a great hook for getting kids more interested in advanced programming. I hope your son, or anyone reading this finds it helpful. https://www.youtube.com/watch?...
Meh, that honestly doesn't bother me. Their distro is solid, which is more than I can say about the programming style of that script. And if they're a "SJW organization", they hide it well. Not a single time have I seen a political statement while using their software. So, how goes the process of getting that same software into all the other Linux distros? What's the success/failure ratio? I'm going to guess 0:1. The author of the software seems like a troll, but a pretty shitty one, so it's pretty funny seeing anyone pretending to defend him. Some voices deserve not to be heard.
If you happen to live in central Texas, Game Worlds runs Summer Camps in Austin that teach kids how to make games: http://gameworldscamp.com/
The kids mostly use Construct2 ( https://www.scirra.com/ ), though we also introduce them to Stencyl and Unity.
Full Disclosure: my wife is the owner and director of Game Worlds, and I've developed and taught a lot of the programming curriculum
https://www.edx.org/course/introduction-game-design-mitx-11-126x#.VJTdLAM0N4
Most people want to write software, or play the guitar, or build a house.
That is, until they see it requires years of learning and practice to do it well.
BeauHD. Worst editor since kdawson.
Hey Mr. Jones, take a look at Construct 2, at: https://www.scirra.com/construct2
It's a very easy way to make a game with graphics and sounds, and a lot of built-in actions. Go through the first tutorial (it will take about an hour) and you'll see how it all works. If you look on their forums, you'll see that a lot of teachers use it with 11~13 year-old kids to teach game programming in a fun way. The free version is very generous, you can make a complete game and only use up 20% of the event limit.
All he needs can be got very, very cheaply - if he doesn't have most of them already.
Pencils, erasers, paper, a ruler, maybe some dice, and some friends to play test, plus some games to sit down and analyse - you're not going to learn much about game design if you don't analyse other people's games and see what works, what doesn't, and why it doesn't.
Game engines are for much, much later in the process. You don't design a game by implementing it, you work out much of the mechanics before you even touch a keyboard.
game moding is a good place to start, that way the framework is already set out, things like Garys mod have some pretty in depth features.
It's interesting, the asker asks for information about making games and the posters almost universally reply with information about making code. You guys do know these are two completely different activities? (And that computer games are only a small slice of the total gaming universe?)
I teach classes at a high school on game programming. My top 3 suggestions are:
1. www.Alice.org
2. Beginning Java SE 6 Game Programming (Paperback, 2011) by Jonathan S. Harbour
3. Buy a set of Lego Mindstorms (with the EV3) and a copy of www.RobotC.net - Use the CMU curriculum: http://www.education.rec.ri.cmu.edu/roboticscurriculum/index.html
Evolution of Cooperation. Axelrod
Seminal and quite readable story of the basics of game theory. Why games mater, etc, etc
http://www.stencyl.com/
They have
resource packs
sample games
functions
built in tutorials
custom extensions
And it's free!
While a game looks nice, it is hard to convey game making. I started teaching my 11yo nephew the Arduino. First a basic electricity course ( emphasizing the dangers and focusing on low voltage electricity ; using fluid characteristics as comparison), followed by a programming course on Arduino. While not a visual pl ilke Scratch (but C like), the Arduino makes every small change much more visible and entertaining through hardware (leds etc). That in itself is a huge motivation. Next step: let him program a robot car! (100 usd for components). Scratch was my starting point, but it turned out to be boring and thus a mistake: go arduino.
He's 11. In about 6 months or less he'll switch to other interests. Probably sooner as he understands what developing software - especially games - is. By the time he's an adult the industry will be completely different and he'll have to struggle hard to find a minimum-wage job and hold onto it for dear life anyway. Let him play with Warioware DIY and forget the rest. Want to do him a favor? Get him interested in professional sports. The competition is merciless and a busted knee pretty much spells the end but it's a way better bet. Besides, you don't want your son to become a nerd and be derided, shunned and dejected all his life.
Buy him a copy of minecraft and help him learn how to make Redstone circuits and Command blocks
gamesalad is probably in the same league.
Just show him the South Park episode "Freemium isn't free" and he'll learn all about modern game mechanics, along with a few lessons in economics and marketing. Before you know it he will be pushing his game in the school yard like a pro.
Live today, because you never know what tomorrow brings
You might want to read Rules of Play: Game Design Fundamentals. It's a book about game design and, more importantly, teaching game design. There are several exercises along the book taking on different aspects of game design. It's not a book about game programming, though, it's a book about game design. In the first chapters of the book the authors warn about the dangers of mixing game design with game programming, it's easy getting lost in media production (programming and assets) instead of focusing on what's really important: designing a game that's fun to play. There are plenty of good advice in that book, you might want to read it and challenge your kid with the different exercises proposed in that book.
Show him how to use google to figure out where to get the information he needs.
Haha, the mask slips. It's all about "journalistic ethics", remember, and not just an organised campaign of misogynistic abuse, amirite?
Here is a resource I came across a few years back, Invent Your Own Computer Games With Python. When I reviewed it back then it looked pretty good as a first starting point, but I don't have first hand experience. Might want to check it out.
http://handmadehero.org
Handmade Hero is an ongoing project to create a complete, professional-quality game accompanied by videos that explain every single line of its source code.
Its a really simple, fun, yet powerful visual game creation suite for beginner game creators.
http://www.3drad.com/
Your son can also expand into coding (angel script, C style) within the program when/if hes ready. Although, its not required as most items (waypoint system, plane, car, ai) are just a click away.
Heres an example game made in 3Drad:
http://www.freankexpo.net/533/...
Although the engine is now abandonware, there is a huge database of community tutorials/samples located here: http://www.3drad.com/forum
I'd highly recommend 3Drad as it simplifies everything, but it also gives you the ability to learn coding at your own pace, should you want to expand the game further.
And proof that the format works:
I started in 3Drad with only Qbasic programming knowledge from 15 years ago. I used the built in items first in 3Drad. After a time, i wanted to expand the game and started work tinkering with the programming (script object) side of 3Drad. Long story short, after 1-2 years in 3Drad, i learnt enough programming to move onto C++. 1 year later i coded this in c++ http://fuzon.co.uk/phpbb/viewt...
Give 3Drad a try, i'am sure your son will enjoy it.
In the last half year, I've met two people who impressed me with their study of games. They each had a slightly different approach, perhaps you'll see some wisdom in introducing both ways to your son.
The first person, learned everything he knows about video games from playing them. Not just the good ones, but the bad ones. Searching out gameplay that inspired him. He owns a very large collection of games. Almost every console and most of the games for each... since the beginning of the industry. And he's played most of them at least once. He is currently designing educational games.
The second person, he started with games when his father got a console and he watched his dad and his brother play all the time. When they got stuck, that was when it was his turn and he'd do whatever they couldn't. Eventually he owned a gaming cafe where he continued to watch how people play. When the cafe went bust he decided to make a game. He's currently got a fairly large crew working for nothing. Partnership with a national business which is also helping to fund his game for nothing.
Going about things as you are is great but if he ever tries to decide cs versus game design... convince him to go cs. I've met one guy (a real jerk) who knew quite a bit about computers, had a couple years experience programming games, had a degree from a decent university in game design (programming track) but he is stuck in a job teaching because he didn't get his cs degree which would have paid him another $20-$30k a year minimum at his level of knowledge.
I am writing this as AC as I do not want to register for writing this single post.
I am teaching compulsory school kids programming. They are in 8:th grade (14 years old), so they are a couple of years older than your son. I have used two ways for teaching them how to make games:
Scratch
Go to scratch.mit.edu and register there. This is easy programming where you just pull blocks by mouse in place. This is an easy start for developing some game logic.
Quil
Quil is a Processing library written for Clojure. Clojure is easy to grasp even though it is a lisp variant. Quil makes it really easy to make graphical games. In just a few lines you have "Snake" or any other small games made.
Of all languages I have used (everything from x86 asm to Pascal, C and other compiled languages to scripting languages), nothing has come close to the ease of Clojure + Quil when it comes to making games with a "real" programming language.
My 9 year son really liked using the gamestarmechanic.com site. It's basically a game level designer disguised as a game.
Also, modding Minecraft might be something to look into.
Dont hate the media, become the media.
In a related but definitely separate question, what are some resources for kids who are interested in creating the graphics for games? Are they all horribly complicated or are there some good starter tools that kids can use to bridge the gap between utterly awful and years of profesional experience?
Hi Mr. Jones,
I started learning to code early last year via CSCircles Waterloo (Python) online lessons and started programming games (JS and C#) at the end of the year. This year, I started teaching a game making class series through Women Who Code. We use Unity3D to make a variety of 3D and 2D games; I think it's an excellent free engine to use, though it takes patience and perseverance. Luckily, there are a ton of resources out there for this engine. If you and your son are in the Bay Area, feel free to attend in person :http://www.meetup.com/Women-Who-Code-SF/events/218859080/, but I'll also be posting my video lessons before the class starts.
I would like to add that I agree with another commenter that making table top games is perhaps one of the best ways to work on game design and mechanics. In fact, one of my games started out as a card game in its development.
My 10-year old son is hooked on Minecraft. We signed up at www.youthdigital.com for their games programming class for kids. Basically, interactive ways to learn Java and make fun modules for Minecraft and more. They have other stuff including some things oriented more at girls. I have three younger girls so we haven't started yet.
My son and I are just getting started and doing some things on Kahn Academy too that are fun and we get to spend time together. we're also in a Lego league where we get to use the visual programming software to program Lego's EV3 to do things. It's interesting as the kids started making it do stuff within minutes of using the software.
Chance favors the prepared mind.
Perfect is the enemy of good.
To write games, you'll use all your high school math, science, and English class knowledge so focus on school now because high school builds upon what he's learning now. Slack off and fail to get a solid foundation and he'll have problems in high school. Have problems in high school, college will be harder. And even if he tries to get in to game design without college, not having the high school knowledge absolutely will harm his chances and make it hard to do well if he does get into the business.
https://www.thegamecrafter.com is a great resource for making custom board and card games.
A easy 2D fixed Scene Toolkit allowing nice games.
You should take a look at http://codecombat.com/ it is an interactive website where you can learn to code by playing a game. I excuse in advance if someone else already suggested this site, I read a few answers and couldn't find any reference to it. Because I think it's a good resource and the target age is in line with your kid's age I'm taking the risk to annoy with redundancy
From what you describe, I would look at Board Game Designers Forum (www.bgdf.com). It has a lot of information on the design process, helpful for both boardgames and computer games. And keeping with practice makes perfect, they have a monthly design competition. Take a look and see what you think.
AgentCubes online features an hour of code tutorial that allows you to make a 3D game in a browser. This is the first 3D browser based programming environment and includes making your own 3D shapes. The CS EdWeek / hour of code tutorial is about a 3D Frogger game but you can build a huge spectrum of games ranging from simple 1980 arcade style games to sophisticated AI SIMS-like games: http://sgd.cs.colorado.edu/wik... Proof that this is simple to do (Fox New 31 TV Anchorman makes a game with AgentCubes): http://kdvr.com/2013/12/10/kid... AgentCubes online is used in many schools and has been funded by the National Science Foundation.
Computational Thinking Patterns is a framework to explore and describe game play in ways that is independent from programming language. These patterns are based in phenomenology. These patterns are used in the Scalable Game Design project and mentioned by teachers are one of the most important abstractions that help student to analyze and build games. The same patterns are used to also build STEM simulations. Through theses patterns there is transfer from game design to STEM simulation building: http://sgd.cs.colorado.edu/wik...
http://www.societygames.com/youcode. It's incomplete but it's a fast, interactive introduction to "real world" programming. Rather than just focusing on coding concepts, it teaches how to solve problems like engineers would.