When I was 11 or 12, Atari 2600 games and select coin-ops were on my mind constantly. I wasn't interested in whatever the teacher was talking about, for instance. I'd sit there and invent video games instead of listening to the lecture or doing the workbook exercises.
These tentative games were brought from my mind to notebook paper via drawings and lists of plots and rules. I even got blank-screen-drawing down to a science; the edge of a notebook cover was the straight-edge against which I drew the four lines. Then -- wow! A blank screen on a piece of paper! My mind would reach anywhere and everywhere to come up with neat ideas. I got more creative experience and confidence from these self-imposed activities than any lesson or quiz.
I obtained a Commodore 64 around that time, and immediately learned BASIC. I found out that it was a pretty slowly executing language, and from reading Compute! and other magazines, I learned that machine language was what I needed to make fast action games. But it seemed really hard, so I continued to make games in BASIC, always thinking, "I'll learn machine language someday..."
Someday is here, and I still haven't learned machine language with any real skill or savvy. I've managed to understand the basics (no pun intended), and I've made a couple half-assed attempts at code, but I've never really attacked Assembly with the tenacity I applied to those first months of developing a style in BASIC. Garry Kitchen's GameMaker by Activision was really my savior, and I designed a lot of games on that well-made tool right up into the mid-90s.
The Amiga eventually entered my world (courtesy of a certain Mr. A. Trionfo), and I attempted to make games in AMOS (a drastic upgrade of the ideas behind BASIC). But I was soon confronted with the same sort of revelation: It wasn't a fast enough or dependable enough language with which to create great games. So now I'm looking toward Blitz BASIC. In other words, fifteen years into my era of very intense involvement with computers, I still haven't fulfilled my childhood dream: to make a really, really good video game that has longetivity, according to my own criteria.
Are any of you like this? I thought it would be interesting to try and figure out why a lot of people who know the basics of programming don't get motivated or confident enough to sit down with a low-level language (meaning better and faster than BASIC or whatever), design the game of their dreams, and go through with all the coding.
I'm going over the possible reasons because I feel that therein lie the solutions. Realize that this is as much a lecture to myself as other would-be world-creators.
1. A computer is a mean, confusing monster that will only run Myst or Office with any friendliness.
I'm starting out with the most new-user-ish reason. People think computers are mysteries, not realizing that they're like calculators or musical instruments: You get results that are directly congruous with the effort you put into learning how they work. And they work in a sensible, logical way. There's no mystery. They do only what they're told. It's an exact science, of course -- but a very tangible, understandable one.
2. Machine language (or insert your own bane here) is too hard to learn; I need more free time than I currently have.
Well, how does one usually learn something? By taking a month off work, staying home and doing nothing but reading up on the subject? Nope. You gradually accumulate the knowhow you need. Sit down with a language manual and a computer once in a while. You don't even have to use up all of your spare time. Just learn bit by bit and monkey around on the ol' keyboard. As your knowledge of the subject increases, so will your enthusiasm -- it'll go faster and faster. Saying "it looks really hard" is like calling yourself stupid. Give yourself some credit, for godsakes! You came this far with the machine, didn't ya?
3. What's the point? The game industry is corrupt anyway, so I won't be able to sell anything unless I get really lucky.
Well, true. But if you're not creating a game that you would want to play yourself, it won't come out good anyway. And if you're not doing this mostly for your own enjoyment -- regardless of how nice it is to have an audience -- you should write off the project as a pipe dream. Without your own interest, your work won't come out good.
4. I can't afford to buy the language software.
Well, save up! Put money away like you did for your game software, or your PlayStation, or your N-64, or your latest CD player. Creative hobbies take priority over everything else if you're good to yourself and you're hoping for a rich, full life -- using your brain to its fullest renders much greater rewards than beating the bad guy at the end of someone else's game, or sitting there listening to someone else's music.
Pull out a piece of notebook paper, design a game, choose a language, and entertain yourself. For one thing, it's easier than it looks. I mean, we all know that. There's no magic program farm that all the old, famous software designers knew about. There was nothing special about them that you lack, no mysterious alchemy they'd mastered but wouldn't spill the beans about. There's no reason your own creations can't stand up to theirs. Whatever you achieve in life, even something seemingly trivial like a video game, you'll always have that. That accomplishment, that thing you created with your own head and hands, will never go away. (Well, provided you make a backup copy.)