And so I arrive at my senior year. I’m eighteen. I’ve always wondered what it would feel like to get to the end of all of this schooling. I remember what it was like to sit in first grade and look at the sixth-grade kids in awe. The lofty seat of sixth grade is now six years behind me. Have I really been in school for twelve years? Adult life is just a few steps away.
I’ve managed to wiggle my way into a few computer courses at the high school. Based on my success at Vo-Tech, I was able to convince my guidance counselor to waive the normal mathematical prerequisites and let me near some computers.
In the mornings I have a computer-aided drafting class. It’s fun and interesting, but I can tell drafting isn’t for me. I had a traditional drafting class back in junior high, and I thought the work was a bit too fussy. I completely understood the need for extreme neatness, precision, and adherence to a large collection of seemingly pedantic rules, but I could see it wasn’t something I would enjoy doing. Computer-aided drafting offloads a lot of the worst aspects of the work onto the computer, but it’s still a bit too rigid for my tastes. Still, the idea of constructing solid objects in 3D space is really interesting and I wouldn’t mind doing it for fun.
Later in the day I have yet another a BASIC programming course. As I suspected, this class does not require any calculus. Or trigonometry. Or algebra. Or any math at all. Given the depth of the material, this class might be more aptly titled, “The magical computer typing box for babies”.
The computers used in this class are absurdly primitive, even by the standards of the day. None of them have screens. The machines must print everything on broad pieces of tractor-fed paper, which spool out of the top of the machine and into a wastebasket. Imagine you have a test program:
10 REM THIS IS A TEST PROGRAM 20 PRINT "THE PURPOSE OF THIS PROGRAM IS TO WASTE PAPER." 30 PRINT "TREES SUCK!" 40 GOTO 20
The machine feeds an extra blank line whenever you type. (Or perhaps you must feed another blank line in to push your most recent line to where it can be read. I can’t remember now.) The simple act of typing in the above program will waste over 100 square inches of paper. I giggle when I use the machines. It’s so preposterously decadent to burn through reams and reams of paper like this, particularly since so much of it is blank. It’s like writing your six-item shopping lists on chest-sized pieces of poster board. And then throwing it away when you get to the store.
This brings my total count of BASIC variants to six, although I hesitate to count this one. All of the other flavors of BASIC I’ve learned have possessed some unique language feature. They all had their own way of doing graphics, and a small number of them had sound. This machine doesn’t have either. It’s not a variant, it’s a subset of the others.
Once again I observe the divide between “programmers” and “normal people”. A small number of people here can create original code, and the rest fumble their way through by copying, guessing, and memorizing.
These courses are fun, but they’re really just amusements to pad out my schedule. I took these for my own amusement, not because I expected to learn much. The real focus of my day is in Vo-Tech, simply because that’s the only place where I can learn anything useful. (To me.)
We have a new teacher for Computer Science, Mrs. Schachern. Her name mystifies us, so we shorten it to “Mrs. Shack”, but saying “Missus Shack” is a little clumsy, so we truncate it to “Mizz Shack”. She is a good sport about this. Up until now every computer-related teacher I’ve encountered has been a man (either a middle-aged nerd or a neckbeard) so Mrs. Shack shatters a lot of unhealthy stereotypes and preconceived notions before they become ingrained. She’s young, enthusiastic, and knows her stuff. She’s probably not as knowledgeable as her predecessors simply because of age, but unlike her predecessors she’s a teacher first and a computer scientist second. This turns out to be much better for everyone. Students seem to regard her class as “easier”, but she’s not holding back on any instruction. She’s just doing a much better job at imparting knowledge. The kids love her.
Unfortunately, she’s obliged to reboot the curriculum. A lot of people struggled under Mr. B and Mr. C. If she were to pick up where they left off, she would be dooming those kids to failure. (Not that those guys left her detailed notes. Apparently she’s coming in cold on day one. She actually has a little discussion on day one to get a feel for what we know.) She can’t build on the foundation left for her. Class must start over, which means we’re doing another overview of computer hardware and history, followed by lessons in DOS. Once the fundamentals are solid, she’ll be teaching us BASIC and COBOL. Again. I’d complain, but I really don’t know what else she could teach me. She gives me free rein as long as my work is done, and I self-direct my education from there. I actually self-direct to the point where I forget to do the regular assignments, and she has to pull me into line and explain that the rules still apply to me and I still need to do the work like everyone else. I’m already getting a lot of extra privileges, and I know it. I begrudgingly admit she’s right and set aside the time to do the standard assignments. They’re trivial and don’t eat very much of my “muck around with graphics programming” time.
One day I’m leafing through a book of BASIC programs. This isn’t a book from class, this one is out of the library. In it, I find an odd little bit of code. It shows how to make a grid. Kid’s stuff. Then it skews the grid, which I notice forms the illusion of perspective. That’s a neat trick. I’ve always messed about with 2D graphics, simply because that’s what videogames looked like. Then the program does something very, very strange. In one line, it does something to the position of the points on the grid, which magically transforms this grid into rolling hills. It reminds me a great deal of those pictures from Art and the Computer that have always amazed me.
What is this one line of code that does this magic? Sine? Cosine? What are these things?
So begins a long fascination with making graphical terrains. I don’t have any polygon-drawing tools here in BASIC, but I do have line-drawing tools and flood fill. I fiddle around and figure out how to find the center of each square and fill it with color. It’s a horribly inefficient way of drawing the warped checkerboard from a graphics programming standpoint. I’m done making cheap arcade knock-offs for the time being. This 3D stuff is amazing, and I obviously have a lot to learn.
At some point I should probably get around to finding out what that Sine and Cosine stuff is all about.
How to Forum
Dear people of the internet: Please stop doing these horrible idiotic things when you talk to each other.
Final Fantasy X
A game about the ghost of an underwater football player who travels through time to save the world from a tick that controls kaiju satan. Really.
Mass Effect 3 Ending Deconstruction
Did you dislike the ending to the Mass Effect trilogy? Here's my list of where it failed logically, thematically, and tonally.
Could Have Been Great
Here are four games that could have been much better with just a little more work.
The Best of 2015
My picks for what was important, awesome, or worth talking about in 2015.