Execution vs Conception

I love having ideas. Ideas are fun, manipulable, infinitely complex or simple. They don’t take any work to think about, expand in breadth and depth. It doesn’t take effort to plan execution. Much like calculus, the manipulation of abstract possibilities is fun and easy. Once it gets to the actual computation and execution, though, the process becomes less fun.

This is why I experiment with so many engines and SDKs, and why I draw and write much more than I model and map. It is enough to know that I have the skills to do (or figure out how to do) what I want to do. If carrying through and actual doing the boring grunt work isn’t fun, why should I do it? That said, having a final product is the most satisfying thing in the world. When an external motivator hits the project, like money or responsibility or grades, I am motivated to work through the grunt work. Then I get to stand on the other side and beam at my beautiful realization of an idea.

Carrying this through to its logical extreme, I feel like the best way to force myself to produce a final product in the real world is to throw myself headfirst into the deep waters. If I make game creation my livelihood (and preferably a few other persons’s too), a final product will emerge in due time. If I keep it as my hobby, my ideas will never get off the ground floor — at most I will get some proof of concepts, or a half-completed level.



No, I haven’t died, and I haven’t forgot about this blog. But it suffered from a synergy of things. The lack of posts was kicked off by a week long vacation. And the start of school has brought less thinking time, more work, and a berth of people upon which I can unload my thoughts and get instant feedback. This blog was, originally, a place where the ideas that kept circulating in my thoughts could find an outlet of expression. But with many of those original ideas explored, and not many new ideas coming about, I am usually at a loss of topics. Another harmful factor was that I had become more and more concerned about whether my post was coherent, engaging, and adhering to the guidelines of good grammar and writing. Unfortunately, this was never supposed to be a place to put refined written pieces, it was supposed to be a repository of 30 minute heat-of-the-moment explorations into one line of thought. Granted, I did hope it would help me improve my off-the-cuff writing style, but editing was still supposed to be minimal. Lastly, I became rather obsessive over readership. This should have set immediate alarm bells off in my head. I started out with a vow to never try to gain a readership. This was going to be purely about me. Now, I’m going to try to return to that mindset. I do not apologize in advance for any incomprehensible posts that appear to have come from the middle of a train of thought.

Programming Paradigms

Computer science is a relatively young field, and it has rapidly evolved ever since its inception. This becomes increasingly evident when you look at computer science being taught versus computer science being used. This is extremely apparent in the misnomer: computer science. CS is more technical art than science.

For a long time, computers had finite computational resources and memory. Today, our average consumer-grade computer is comparable to a super computer from 1985. Thusly, the twenty first century requires programming paradigms far different from those taught in the twentieth century. It no longer pays off to optimize the number of calculations or amount of memory your program uses, unless you are specifically performing mathematically intensive operations. This blog voices that sentiment much better than I can.

So programming now is about implementing an idea. Its easy to rise above the technical nitty gritty details and focus on the concept at hand. Then programming becomes a form of poetry, in which you express your ideas in a structured and rhythmic way. Programming, at a consumer level, is no longer about getting a machine to do what you want; its about empowering people.

Just like a poet spends many hours revising their verses and getting the words to say exactly what is meant, a programmer spends hours rearranging and improving code to fulfill their idea effectively. And like poetry, there are many genres and styles of programming. Unfortunately, programming is also like poetry in the way that many students get turned off to it by the experiences they have with it in school.

Programming should be taught with the main objective in mind: we are here to accomplish a mission. Writing mechanics are practiced and improved, but without an idea behind a poem or story, it is pointless. Algorithms are important, and so is project design and planning. But these are merely implements with which to express the programmer’s idea.

This is why the most successful software is easy to use, is powerful, or grants people an ability they didn’t have before. When you use a program, it doesn’t matter whether all the variables are global, whether the project was built top-down or bottom-up. The functional differences of some of the most disputed methods are miniscule. Optimization is a trivial concern when compared with the user interface. Is the parse speed of one file format more important than the support of a larger number of formats?

Kids want to be programmers because of coding heroes like Notch, the creator of Minecraft. But Minecraft isn’t well-designed. In fact, the program is a piece of crap that can barely run on a laptop from 5 years ago despite its simplicity. But the idea is gold, and that is what people notice. This is why Minecraft and Bioshock, and not COD, inspire people to be game developers.

However, functional programming is the CS taught in schools. Schools need to teach the art of computer science, not only the science. Imagine if writing was only taught, even up through college, in the scope of writing paragraphs. Essays and papers would just be a string of non sequiturs (kind of like this blog). Fiction would have no comprehensible story, only a series of finely crafted paragraphs. Only those who figured out the basic structures of plot, perhaps by reading books by others who had done the same, would learn to write meaningful stories.

In the future, everyone will be a programmer to some degree. At some point data will become so complex that to even manipulate information people will need to be able to interface with data processors through some sort of technical language in order to describe what they want. To survive in a digital world you either need software to help you interface with it, or learn the language of the realm.

Yet children are being driven off in droves because computers are being approached in education from completely the wrong angle. Computers are tool we use to accomplish tasks; the use of computers should not be taught just because “people need to be able to use computers in order to survive in the modern world”, but because children will be able to implement their ideas and carry out tasks much easier if they do have an expanded skillset on the computer. Computer skills should be taught in the form of “how would you go about doing X? Ok, what if I told you there was a much easier way?”

Snow Crash

Oh. Yes. I am going to start off this post by talking about the absolutely brilliant book by Neal Stephenson (see Cryptonomicon), Snow Crash. The book that popularized the use of the word “avatar” as it applies to the Web and gaming. The book that inspired Google Earth. And despite being 20 years old, it is more relevant than ever and uses the cyberpunk theme to hilarious and thought-provoking extents. It paints the picture of an Internet/MMO mashup, sort of like Second Life, based in a franchised world. Governments have split up and been replaced in function by companies; competing highway companies set up snipers where their road systems cross, military companies bid for retired aircraft carriers, and inflation has caused trillion dollar bills to become nigh worthless.

In the book, a katana-wielding freelance hacker named Hiro Protagonist follows a trail of mysterious clues and eventually discovers a plot to infect people with an ancient Sumerian linguistic virus. The entire book is bizarre, but it has some great concepts and is absolutely entertaining. Stephenson never fails to tell a great story; his only problem is wrapping them up. Anyways, I highly suggest you read it.

Well, I’ve been thinking about games again. I have two great ideas in the works, and one of them is “hacking” game based roughly in the Snow Crash universe. It doesn’t really use any of the unique concepts from it besides the general post-fall world setting and things like the Central Intelligence Corporation. It probably won’t even use the Metaverse, although it depends how much I choose to expand the game from the core concept. The player does play, however, as a freelance hacker who may or may not wield swords (not that it matters, since you probably won’t be doing any running around).

I’m writing up a Project Design Document which will cover all the important points of the game:
Download the whole document

New February Resolutions

Yay, new blog. Since I am basically unknown on the Internet (and in real life), nobody is going to read this post. Except for potential future fans. Hi, people from the future!

Essentially, blogging has always seemed appealing to me; it’s like a diary that’s not useless. Most people have idle ideas stirring around in their head all day, and a diary/blog is a good place to release them. However, if you’re ideas are particularly good, people will want to read them. You can also get anonymous feedback from people with a selfish but unbiased viewpoint.

Unfortunately, I don’t actually have very much to talk about. My previous attempts fell in with the other hundreds (or however many) of abandoned blogs. After a couple of (sometimes interesting) posts, I would not write one day for some reason or another, and it was all downhill from there.

So my resolution for this February is to write one post every day. At the end of the month, I will hopefully have established a habit. Also, February is the best month to pick, since it only has 28 days. Damn. It’s 29 this year. Oh well, post #29 can be a bogus post.

%d bloggers like this: