Tutorial Project
From Cult of the Turtle Wiki
[edit] The Projects
[edit] The Rationalization
Over my 20+ years in the computer industry (not counting the time I spent tinkering as a teenager), I've learned a lot of programming languages. Most of them -- particularly these days -- are all very much alike, but I've worked with everything from command line BASIC, to C and C++, to Perl and PHP, with 4GLs like VB and PowerBuilder, to Java and, today, HTML and Javascript.
When I made the jump from just putting text on the screen to working with interfaces, I didn't quite understand how all those pieces fit together and worked, but what I realized was that there were a limited number of controls available.
I'd used "Hello World" programs in the past -- and those are good for making sure you know the basics, that your system is working and functioning properly. That told you everything was installed properly, and there weren't technical issues that were going to be problems -- anything beyond this was your problem, not the system's. This is valuable knowledge when you're debugging computer programs.
But each language and environment had their own way of doing things, adding the controls, working on windows designs, and messaging between those. Each piece was a bit different. So I created a standard program design -- in my case, one to roll RPG Dice, which had every one of the basic controls on it: text entry boxes, radio buttons and check boxes, a drop down selector -- in some languages I added a number rotator/picker if they were available.
You can see the design here (add this!) in standard HTML and Javascript. It's nothing fancy, but the design was hammered out and so I could focus on learning the tools and language quirks that let me get and validate input, and do output. Once I had that working, I could start working on the real logic behind the software I was writing.
I've mostly written business software so basic interface stuff (and later I added making database queries, as another go-round) was what I needed. Lately, I've been working on game and that's a different problem entirely, but there are still commonalities. Most systems have a game loop, and you need to work out the whole input->process->output thing that everyone has to do with "regular" computer programs.
I've been learning a lot of systems this year, Javascript-based things that are pure HTML, or that use jQuery; some that are HTML 5 compliant like Akhibahara. I've looked at Flixel and Unity.
Some of these things have okay tutorials, and some do not -- at least for me. My goal here is to produce a basic spec, and then work through the different languages producing a tutorial that goes to that spec. Some systems will work better than others, as they are tuned to a particular type of game. I plan to do several of these, at different levels of complexity, but the first will be simply a Tic Tac Toe Project.
It's trivial, certainly, but that's the point. We want to learn these game-writing systems, so that we can focus on game design, and not stumbling over the system's quirks and style. I've decided to post this here, in the hopes that others will see use in it.

