A Modern Day '101 Basic Computer Games'? 69
pcraven asks: "Back when I learned how to program, I found a book called 101 Basic Computer Games by David H. Ahl. This book had a lot of simple programs that I could type into the Apple //e. It made programming interesting. I'm not sure I would have started a career in programming without it. Today I haven't found any recent equivalent to this book. I want a bunch of sample computer games that students can program that they will find fun and interesting. Something that a CompSci 101 graduate could type in and run. Does anyone know of a book or web site like this?"
Different times (Score:2)
Nowadays, I certainly hope any programmer with half a brain should know damn well how to come up with an implementation of tic tac toe, pacman, or any of the crappy old games I used to play in the 80s. And y
Re:Different times (Score:3, Insightful)
Ah yes... I remember and look back on those times with a mixture af happy and desperate thoughts. I remember buying one of the many (!) monthly magazines with computer game code listing and spending an after
Re:Different times (Score:2)
Being able to hack the "source", say, LET lives = 5 instead of LET lives = 3, also greatly contributed to my learning experience.
But the raw typing in of code is of little importance. After you've gone through CS 101, you've seen enough code to have a general grasp of programming,
Re:Different times (Score:2)
If you're typing them in with interest in what's happening, you have to concentrate on the source for minutes or hours, depending on how good a typis
Re:Different times (Score:4, Interesting)
But anyway, not only did I learn the art of debugging, but taught me how to effectively read someone else's code, and it also taught me to 'optimize' (those programs were written in very generic basic, but I could replace a few of the generic lines with GW-BASIC specific lines). Logic building was essential, and new tricks as in "Hmm, what he trying to do here? Ah, wow, you can do it thatway too?!?"
Children's programming books have also vanished.. (Score:5, Interesting)
Nowadays, it seems that there are almost no "fun" programming books, that don't try to go to nasty details, but simply give you something to play with.
It might partially be that modern operating systems don't provide such easy environments to start programming as the BASIC interpreters used to be in every imaginable computer, and modern operating systems are somewhat more complicated to deal with.
Another possibility is that expectations of wannabe programmers are so much higher, that the only option is to write the book to look professional. No idea. I've wondered your question and mine for quite some time now, and don't see a reason. Could write an easy programming book for some of the scripting languages ofcourse, maybe something with simple text-adventures or something..
There are really really simple books ofcourse, but those usually give you simple constructs, and no example code to play with. One nice thing was when I found an old LISP book from the local library, from about the era you describe. Even if it was this kind of "what LISP is about book" it had source code for meta-circular stuff and all. (Have to add that SICP ofcourse does have that too, but SICP is not at all that simple book for a kid to read, but instead more of academic book.)
Anyone any ideas? Is it just that programming languages today are so hard that the people who used to write those nice books with example programs and all have lost their clue about programming?
Re:Children's programming books have also vanished (Score:2)
and anyways, programming 101's(local equivalents here) usually include a game or two as practice work(usually something quite simple, like some
Re:Children's programming books have also vanished (Score:4, Insightful)
My theory, however, on the reason you don't see kids programming books anymore is that computers are no longer toys in themselves. When these books were "hot" (actually they never were, so let's say when they were being published) home computers were a relatively new phenomenom and a largely unexplored frontier. Now they're ubiquitous, and the joy of puttering around on the computer isn't really so interesting to most kids as tinkering with something already on the computer.
An updated LOGO type of language with 3d graphics instead of turtles, that might inspire interest again. At least something that can allow kids to create something as eyecatching and appealing as games from 5 years ago. Or just update some of these old saws to modern standards: Imagine rocky's boots on a modern 3d engine. Kids aren't interested because all the educators are still pointing them at computers and saying "this is a COMPUTER billy, can you say COMPUTER?", while the kid's thinking "please, I bet it has less than a gig of RAM and it's not even DDR".
Re:Children's programming books have also vanished (Score:4, Informative)
While lots of people designing stuff in Flash are wannabe graphics artists, some of them are digging into the ActionScript and are learning some programming skills. There are a few sites out there with countless little flash apps that are nothing more than simple programming exercises and simple little games. Check out Orisinal [ferryhalim.com], although the art is as good as the programming in this case.
Re:Children's programming books have also vanished (Score:1)
Re:Children's programming books have also vanished (Score:4, Informative)
Well, you still have a turtle (but you can change it's graphic), but MSWLogo [softronix.com] has 3D support (however, much of the 3d stuff needs some CPU power - your generic old P75 rig won't work very well), and it's GPL to boot.
Re:Children's programming books have also vanished (Score:2)
Hypothesizing, back in the day, kids who owned an Apple, or a C=64, were either the children of geeks, or geeks themselves (already, before they got the computer). Thus they would have either had geek books cramed down their throats, or actually wanted them.
Well, it least in significantly higer porputions then kids today.
Re:Children's programming books have also vanished (Score:1, Interesting)
I typed in STARTREK.BAS into my TRS-80 Model I, but soon afterward I found a superior version that had Galaxy Maps and even a cool animated ASCII-art talking alien. The canonical version of the program was pretty much spagetti code anyway, so it's not like it taught you that much.
If you look back at the COMPUTE, etc magazines, almost none of it was teaching kids how to do BASIC programming -- instead it was all machine-specific assemb
Re:Children's programming books have also vanished (Score:1)
Try Processing [proce55ing.net]
It's still alpha, and it needs Java, but it's pretty nice...
Re:Children's programming books have also vanished (Score:1)
try the Blender GameKit (Score:4, Informative)
Re:try the Blender GameKit (Score:4, Informative)
I intend on getting my brother (20) to learn programming with this.
Re:try the Blender GameKit (Score:1, Funny)
My god man, 20 brothers??!?! Your parents were Catholic, weren't they?
Tcl Games (Score:2)
Are games that easy? (Score:2, Interesting)
That said, look at libsdl.org and some of the toolkits that go with it
Re:Are games that easy? (Score:2)
Logo was very much a "kids" programming language and the one that a lot of kids in the 80s started with.
Re:Are games that easy? (Score:2)
PRINT "hello"
FOR N%=1 TO 10 : PRINT "hello again" + N% : NEXT
(I haven't used BBC BASIC for about eight years so I probably have some syntax wrong
It was very easy for even the most uninterested person to make something of their own, even if it was simply asked a person their name and then said "hello Edward" or the like. Programming a game is a much more comp
Online version? (Score:4, Interesting)
Very educational...
Daniel
Re:Online version? (Score:2)
Several reasons why these books are disappearing.. (Score:5, Interesting)
1. Machines are much more complicated than they used to be. DirectX isn't the same thing as messing with BASIC on an Apple IIe or QBASIC in MS-DOS (both of which I did).
2. Expectations are higher. Much Higher. Everyone likes to think he or she doesn't need that 4-line "Hello World" program. You don't. What you need is the surrounding pages of discussion, tips, and tricks that tell you how to set up your compiler and the other "little" things that can be a huge barrier.
3. It's harder to get excited about a neat program you wrote that runs in a command console when you can see all sorts of flashy things going on elsewhere...
You know, literally as I typed that last phrase, it occured to me that we (as established programmers) might be looking at this the wrong way. Why not teach a budding "programmer" flash?
You'll learn the same concepts, won't you? It's visual, so you get immediate feedback, and it's also what every idiot with a computer seems to be churning out anyway on the WWW. Obviously a person won't learn how to write a linked list, or the exact syntax of C, but he or she will learn how to break apart a problem, and start thinking about it in the right manner. By the way, I do mean an interactive flash movie, like a "space invaders"-type game or beyond.
What other sorts of graphical programming packages are there, aside from Flash and Director that are accessible?
Re:Several reasons why these books are disappearin (Score:1, Insightful)
I could see a book devoted to "101 JavaScript Games" that would be just as fascinating to kids.
Javascript is almost just like the old BASIC environments -- very little setup needed, you can see the results immediately, and very simple things go a long way to impress people. (think of the Google page yesterday
Re:Several reasons why these books are disappearin (Score:1)
Well ... I think flash is a bad programming language ... it encourages the goto frame mentality ... which leads to spaghetti codes with all the usual problems ...
Re:Several reasons why these books are disappearin (Score:2)
Keep it simple and readable (Score:4, Insightful)
I faithfully typed in C=64 programs for years never minding that I wasn't learning much from such densely packed, often unreadable code. BASIC wasn't necessarily the problem, rather that memory restrictions and magazine space issues prevented most people from organizing code well. Comments were lost, multiple statements crammed onto the same line, etc.
I agree with whoever said that kids wouldn't be interested in such things today. We have to accept that interests have changed and web page building has replaced classic programming in the minds of novices. The biggest obstacle to a "fun" programming book is the appalling lack of built-in or bundled programming languages with new computers. As much as I enjoy using languages like PHP and Java I think they are much too complicated for the newbie. We should either bring back traditional BASIC with tighter syntax requirements, popularize a version of LOGO with hooks to graphics routines and the ability to build a complete clickable app or popularize some other similar easy to use language for first timers. Only then might we see a renewed interest in learning how to program.
That's not the book I remember.... (Score:3, Funny)
Trivia -- I remember it well, the first few lines of SeaWar asked for the user name, and if the named typed in was "chris" it would jump to the end and say "Game over." What was up wit dat??
Re:That's not the book I remember.... (Score:2)
Re:That's not the book I remember.... (Score:3, Informative)
Narrow your search terms, please. (Score:5, Interesting)
Let's see...
And then you say you're looking for...
I still have my copy of 101 Basic Computer Games which I went out and bought with allowance money when I was twelve. The only game in there which might have been a bit over-the-top for someone that young was Star Trek (for sheer length), but I was already a Trekkie by then, so I typed every last line of code in so I could play it.
I guess my question is, Are you looking for something on the level of 101 Basic Computer Games, or are you looking for something appropriate for college students?
As an aside...
Those of you who are saying that typing in the game doesn't teach you anything, I'd like to offer myself as a counter-example. After I played 2-3 games of Star Trek, the very next thing I did was to go into the code and add a "self-destruct" option to the library computer. I made sure it asked you for all three of the codes, too.
Then, I decided that wasn't good enough. I played with nested for loops and the locate statement to display a 30-second countdown in (approximately) real-time. I made use of my rather limited understanding of graphics to try and show the Enterprise exploding when the counter reached zero (very crude, but it got the idea across). Then, I wanted to let the player change his/her mind, so I learned how to use inkey$ so the player could abort the countdown (at 5 seconds, though, it was too late (Oh, and you needed to know the abort code)).
I still keep Star Trek on my hard drive, although currently it's written in Java. Every time I want to learn a new language, I use Star Trek as a measuring rod: if I can successfully re-implement it in the target language, it means I've got all the fundamentals down. Next up: Python.
Re:Narrow your search terms, please. (Score:2)
Entering in a bunch of uncommented code didn't teach much, but trying to understand all the code and then expand upon it so you could modify/subvert/hotrod the program was the learning experience. Thing is, it takes a certain kind of personality to wan
Share the source! (Score:2)
Re:Narrow your search terms, please. (Score:2)
I played it on Syracuse University's mainframe during a 7th grade computer summer camp. It got me hooked. I found a book that had source code to Star Trek. It was several pages of photocopies of an Altair basic version.
There were areas which I could not fully read the code and I had to translate some of the code to make it work on the Apple 2e. It was quite a learning experience in filling in the blanks and debugging the code.
My point is that one can learn a
Re:Narrow your search terms, please. (Score:2)
Actually, the Checkers game has a really bizarre learning algorithm. Pretty nifty for an 8K machine or whatever you had. There's a 6-pawns game in there too that had some complexity.
Try Lego Mindstorms (Score:2, Interesting)
Try to program something different instead, I suggest Lego Mindstorms. You can find several fun programming books to help you eg. "Core LEGO MINDSTORMS Programming: Unleash the Power of the Java Platform", "Lego Mindstorms Interfacing" and "Creative Projects with LEGO Mindstorms".
It's the ideal combination - You get to play with lego and build cool rob
Many Options . . . (Score:1, Informative)
A lot of the adolescent code-diddling scene has moved to php and cgi scripts.
Gnu == old school (Score:2)
Maybe it's the availability of many, small, free programs -- which is a contrast to the windows pay-for-every-crappy-utility world. Maybe it's the large number of similar historie
Squeak and the state of computing (Score:5, Interesting)
Which isn't to say that old-school BASICs don't exist anymore, they do. They are plentiful and free. There is no reason that a kid today, or in 10 or 20 years from now couldn't pick up one of those books, start typing and have a good time learning. There are BASIC implementaitons natively for Mac OS, Windows or Linux that emulate classic BASICs like AppleSoft's or Microsoft's GWBASIC/BASICA. There is also the opton of emulating an Apple ][, Commodore, etc.
But perhaps you want something flashier, something more modern.
One system I'd reccomend is Squeak Smalltalk. [gatech.edu] Unfortunately, one of the things Squeak really lacks is documentation, especially in book-form. This has a lot to do with the way most folks learn Smalltalk (by doing, rather than reading) as well as aspects of the community and other factors. If you download Squeak (see here [squeak.org]) and run it, there are a bunch of demos there to be played with, as well as some tutorials. They make for a great start for someone with a little (or even no) programming experience or formal computer science knowledge.
One of the neat features for Squeak (that you get when you download the version with all the libraries) is an implementation of Alice [gatech.edu], which is a scriptable 3D environment for world-building and games. A lot of fun to move that bunny around, especially if you're a kid who likes to see a direct correlation between what you type and what goes on on the screen.
In addition to this, Squeak also comes with a scripting environment called eToys. It
For an example of how to use the Squeak eToys scripting system to make a more traditional application, see this Rolodex tutorial [gatech.edu]. or, for something a little more fun, check this out. [consultar.com] introducing yourself to Squeak [gatech.edu] makes for a great starting point for experienced folks and newbies alike. Of course, there is also tutle graphics [gatech.edu], which even I've used in more "grown up" applications, for modelling dynamic system.
Best yet- Squeak is totally Free. It is free down to its core, the system being open in a way that C, C++ and Java have no analogous structure. Smalltalk has been open since the beginning in almost every way you can think of. Even commercial implemtations, you still have the power to see pretty much all of the source, and changing if you so desire. In addition to being open source and free, Squeak Smalltalk runs on more than 20 platforms, including Linux, Mac OS X & Classic, Windows and pretty much every Unix one could imagine. Unlike what people sometimes experience with Java, it truly is write-once, run-everywhere, with your entire app being encapsulated in just two files- the virtual machine and the image. Even if your target platform doesn't have a VM installed already, it's just a matter having it zipped up in your installer or archive- just one extra file, often less than even a MB.
I meant to say a little, but that is a lot to chew in one mouthful!
Re:Squeak and the state of computing (Score:2)
Once you get past the "look i can drag widgets in and tweak their properties" playground, squeak leaves you absolutely aimless and adrift, with an absolute lack of any API documentation whatsoever on real applications.
And frankly the squeak object b
Re:Squeak and the state of computing (Score:2)
Indeed, the default look of Squeak is pretty bad. But the issues you mention are fixable, and fixed pretty easily in SqueakMap. Anti-aliased true-type fonts, loaded from
The state of computing for beginners (Score:3, Insightful)
a limited set of fonts, all ugly as sin, and tiny widgets
seems off-topic, as our original BASIC environment:
- had ONE font,
- was text-based, so it could not even strive to be "ugly"
- had NO widgets. You were required to build everything from scratch.
I work with programmers who are not even a decade younger than me, but they did not start with comp
Re:The state of computing for beginners (Score:2)
As for today's platforms, no, I would say it's no
Re:Squeak and the state of computing (Score:2)
"Ooh,
Re:Squeak and the state of computing (Score:2)
One can easily turn this off on a Morph, either through direct manipulation or programatically. I have written a lot of code in Squeak, mostly traditional "boring" applications, not fancy things involving fancy drag and drop or anything like that. You can't accidentally deconstruct my apps by holding the mouse down when you didn't mean to. I don't know of any apps where you can
if you've had CS 101 you shouldn't need it (Score:2)
If you've had a CS class you should be able to pick up any of the "learn to program video games in 21 days" books at B&N and make some simple games.
Ceebot or other educational programming games (Score:2)
Availability (Score:2)
I Loved that book (Score:1)
What we need is a book with a bunch of C programs and a cd witha a djgpp, cygwin, or mingw setup to install the minimum software necessary for simple text-mode program development in a DOS/Windows environment.
Kind of like bringing Ahl's book to the modern age. Maybe someone could license his
The best tech cartoon I ever saw (Score:2)
WOOT! Perfect Timing of this story (Score:1)
Once I saw the cover, I remembered that I use to read the sequel: More Basic Games [atariarchives.org]
Tcl/Tk via www.tcl.tk, wiki area "Games" (Score:2)
Any CSI101 should be able to take them and run with it. In fact, any high schooler into computers can.
(Frankly, I think Tcl is vagually lisp-like, which is why it works so well for games, and Tk as a graphics handler is very OO, so it's a neat mix.)
two that weren't mentioned (Score:1, Informative)
http://www.robocode.net/
this assumes you have java set up properly on
your system and allows you to program the action
of 2D tank-like robots which can move, fire, and
use radar - I don't know if other graphics are
possible, but you can go nuts trying to find
and program optimal fighting tactics
Runtime Revolution from:
http://www.runrev.com/index_uk.html
this has a free evaluation edition but costs
$100-up for a licensed commercial edition - it
can do pretty amazing stuff - its sort of like a
cross-plat
Re: (Score:2)
Re:There's still a market for type-ins (Score:2, Insightful)
Re:There's still a market for type-ins (Score:1)
MsgBox "Hello World!"
Save the file and rename it to Hello.vbs
Now doubleclick on the file and see yourself that a programming language is included in Windows.
Re:There's still a market for type-ins (Score:1)
These days things are more complex. You want graphics? Great. Make sure something like SDL is installed. You want easy to use graphics? Now you have to get SDL_gfx to give you primatives. You want accelerated 2D graphics? Well, I guess you'll have to run all your programs as root then.
Then you have to figure out all the compiler command line options so it can find the SDL and SDL_gfx headers.
All this just to get to the point to be ready to type something in. SDL is just an
Warning: language advocacy (Score:2, Insightful)
101 BASIC Computer games (Score:2)
The library used to have it back in the 1980's but since the 1990's must have retired it.
I am not even sure if the company that published it is still in business.
A close as I can find it are these web sites:
http://www.atariarchives.org/basicgames/ [atariarchives.org]
http://www.atariarchives.org/morebasicgames/ [atariarchives.org]
They are for the DEC BASIC language, but I am sure they can be easily converted to whatever BASIC yo
D'oh first book was linked in the article (Score:1)
Wouldn't it suck if... (Score:1)
"Hey man how's it going"
"Yeah I'm still typing in the new Tony Hawk game."
"Oh Really I'm on page 5023 how about you."
"2051"
"Sucks for you!!!"
RoboCode (Score:1)
I only know of one (Score:2)
The book is C++ from Scratch by Jesse Liberty. ISBN 0-7897-2079-5
It has it's faults, the primary one being that the code in the book is for VC++ 6. On the disk they supply the Bloodshed Dev-C++ compiler and code for that compiler (that does not seem to compile).
Apparently the book is out of print.