A New Project

Above is the results of several weeks of work. It has one fatal flaw, however. Allow me to explain.

I am a gamer.  I play video games, board games, role-playing games, and some sports.  My taste in games is very eclectic, but also somewhat mercurial.  I will love a game–obsess even–for a week or two, and then move on to something else.  I have always had a problem with attention span when it comes to games.  I do not believe this is a character defect.  There are simply some absolutely brilliant games that have managed to suck me in for more than 40-60 hours (the flexible benchmark in my mind for a brilliant game), and some that don’t.

The upshot of this is that I have played many, many games.  My Steam library is only about three years old, and yet it’s about 130 games long (some of which I’ve never played, of course).  Through it all, there has always been this little thing in the back of my mind.  This notion that if I had been working on this game, I might have considered doing something differently.  I do not have the slightest notion how difficult it is to make a game.  I can only understand intellectually, by watching the credits roll by at the end of a game, how many people and how much time is involved.  I understand that a big budget game takes many people many, many, many person-hours over several years to complete.  But I don’t actually understand this any more than I understand that the sun is 98 million miles away.

And so, it is with a sort of naive enthusiasm and confidence that I embark on a new personal project.  I have been calling it my “self-education project” with my wife and friends.  For the past month, I have been reading, in true obsessive fashion, everything I can find on Java programming (more on my choice of Java in a moment).  I have been reading articles on game design, AI, terrain generation, pathfinding, data structures, isometric perspectives, sprites, and more.  I’ve written stupid little programs in Java and OpenGL. A blackjack game, a little-ship-that-shoots-at-aliens game, and a few others.

Let me back up. I quit my job last spring. I was teaching at a community college in rural North Dakota. Both my wife and I did. The reason for this is convoluted. The job was fun and rewarding. But the pay was pretty abysmal and we had few friends there and no family. Not to mention, there is nothing to do out there. In the end, the reason we took the chance and quit was simply the fact that the thought of staying for another year (after two years already) was a deeply depressing thought. So we quit.

And we didn’t manage to find brilliant replacement jobs before our summertime paychecks ran out.

This means that I’m back to substitute teaching and my wife (who is far more aggressive than I at job searching) is back to bartending. This is fine for now. However, I need something to work on. And one day, two months ago maybe, I was reading a book in a hammock (this was my indolent summer after quitting a teaching job which pro-rated paychecks throughout the summer–yay!), I got an idea. It was nebulous then, and it continues to be nebulous, but it is an idea.

I haven’t been able to write fiction all summer. There has just been a part of me that refused to do it. This is purely my own lack of self-control, but it is also the fact that I simply do not have a good idea to run with (excuses, excuses). I now have an idea that I want to run with. However, I do not know much about computer programming (or at least I didn’t). I took a few computer science classes in college and learned some basic C++ and even a little Lisp, but that’s it. I knew some syntax, but I did not know “how to program.”

And so I got it in my head that I wanted to do a feasibility study. I wanted to discover just how difficult it would be for an expert-level user (someone who understands at an intuitive level the current conventions about how to use a computer, and currently operates his own, self-constructed Windows box) with almost no real knowledge of actual computer programming to make a video game of real quality. How long would such a project take? What language should I learn? What books/articles should I read? Will I, as I often do, get bored and give up?

So that’s the experiment, and so far so good. It has been two months, give or take, and from here on out, I will make an attempt to regularly post about it here on the Spin.

And so I’ll share a few of my thoughts here. First: Java.

I chose Java because it’s portable. There is some concern that it’s not as fast a language as it could be. This is true. The JRE, from what I understand, makes it a very high level language. Not as high as, say, a scripting language, but certainly not as close to the machine as C++. But machines are faster and stronger these days. Some very sophisticated software is programmed in Java, especially in gaming. Minecraft, for instance, is programmed in Java using the Lightweight Java Games Library (LWJGL), an OpenGL interface for graphics acceleration. I’m not looking to make Minecraft or even come close to its success (Marcus Persson was a professional programmer before he made Minecraft), but I’m interested in using some of the same technology. Knowing how robust and tight Minecraft is, gives me hope that a simple 2D isolinear game will also run well using the same language.

So I started reading a text on Java. This one, to be exact. And it’s…just truly marvelous. And I had some great success with it. I did get impatient before finishing the text (c’est la vie), but I got through the essential stuff. I have a good idea of how to navigate the Java API, I understand variables and pointers, I have a working understanding of how Java handles exceptions, I think I know enough about data structures, recursion, searching, sorting, and all that other good stuff, that I just started looking up some stuff that would be useful for my project.

I’m starting with something really hard. Perlin noise. I want to make a heightmap so I can generate the terrain of an alien world so that everyone who plays the game will play on a different world. This has been a nightmare. I’ve read many articles about Perlin noise and I’ve read lots of forum posts by people who are doing or have done exactly what I am trying to do. People who are all like, “I be learning how 2 program for 2 weeks now, and I ned a good tut on perlin noise.” And that was me, too. I wanted a good tut. I needed it. In my brain. But there isn’t one. At least, not one for someone with my incomplete knowledge base.

Oh sure, there’s a lot of truly great literature. This is something I have struggled with all my career when it comes to mathematics. I was able to construct a pretty solid intuitive understanding of how the math works, but there was a barrier between that intuitive understanding of what it was and how to actually…just…do maths. Same here. I get how Perlin noise works, I just don’t understand how to implement it in java and just make it fucking happen on my monitor.

What I ended up doing was reading every article I could and realizing that, as a math enthusiast, but not a math expert, I was never going to completely understand the algorithms involved in generating any kind of coherent noise. But I persevered. I looked for algorithms Read some pseudocode, found it very difficult to translate to Java, gave up, looked for something else, finally found complete source code in C# for a Perlin noise algorithm with lots of options. This was last night. I stayed up way too late. I am so tired today at work. But I am satisfied that I have finally found it. I generated my first, very rough heightmap last night. And boy…did it feel good. I even managed to write some of the code myself.

And so, the image at the top of the post is the first output that my algorithm pumped out. But what in the hell is up with that slash through it? I have no idea what in the code caused it and I can see the next few weeks will be spent trying to figure out how to get rid of it. Wish me luck.

Ciao.

How Steve Jobs Affected Me

I do not own a Macintosh. I will never own a Macintosh, iPad, or iPhone unless someone else buys it for me. I will never spend my dollars on one of Apple’s devices.

I do own a Generation 6 iPod (I think at the time it was called iPod Video because you could watch Ask a Ninja videos on it) and I use it all the time.

I find it interesting that my Facebook feed is overflowing with all sorts of sentiments concerning the death of Steve Jobs. I personally, am focusing most of my media consumption on other matters, but it’s not unreasonable that this should get a certain amount of play. Indeed, it managed to elicit a bona-fide spin from yours truly.

This was my family’s first computer. The Macintosh 128K. I believe the 128K part refers to its RAM. My current home (Windows) PC has 4 gigabytes of RAM. A little perspective. Also relevant: the Mac 128 debuted in 1985 and cost almost $2500.

By today’s standards, it was an utterly useless and overpriced machine. But it was great. I am pretty sure I am the person I am today because of that machine. What did I do with it? MS Paint, for one. Hours disappeared. But I think the lion’s share of my hours were spent playing this text-based game. Didn’t know it was a book until several years later, but it captivated my mind. I spent hours and hours and hours typing my way around the Heart of Gold. I didn’t actually beat the game until I was 25. Had to. Closure, you know.

Anyway, that machine introduced me to Douglas Adams. This is absolutely crucial as far as I’m concerned.

I will not buy an Apple product if I can help it. I think they are over-priced and under-functional. This is partly because I like to play PC games and Macs just don’t do that thing. It is also partly because I like the feel of putting together my own machine from parts I picked myself. My home PC was lovingly assembled in my home by my hands. I installed Windows 7 on it and crossed my own fingers while waiting for the BIOS to post. And then heaved a sigh of relief when it did, in fact, post on the first attempt.

I just purchased an Android Tablet. This one. My phone is a Droid X. I like its customizeability. I like that I can root it and hack it and do what I want with it. I like that they are the machines that I want them to be. Not the ones that Apple thinks I want them to be.

But, we must ask, would they exist if it weren’t for Apple? Would the tablet computer or the droid be the objects they are today without the iPhone or the iPad? I don’t think so. Apple kicked the industry into high gear with innovation on a staggering scale. They forced the industry into a whole new direction by demonstrating two things: what is possible and, more importantly, what the market will want. No, they didn’t just find out what the market wanted. They created the market’s demand for all things “i”. And it was brilliant. And it worked.

I have a lot of respect for Steve Jobs. I like what he did for and to the industry. I don’t want his product specifically because it is overpriced and cookie-cuttered. But the product I do want is available because of him.

A closing thought: I own that Gen-6 iPod and still use it because it is hands down, the single best dedicated digital music player that has ever been manufactured.

PS: I sketched the comic at the top on my Android Tablet. Fun fact!

Gute Nacht, süßer Prinz

Un-De-Friend

It’s possible that you may have to click on the comic to see it in its full glory. I’m playing around with some new formats. I’m not sure how much I like the result.

That said, I want to talk about friends. I have been de-friended on Facebook twice that I am aware of. And I have de-friended one person. All three incidents are the result of political discussions.

It seems to be more and more the case that Facebook has become, not so much a way to stay in touch with old friends, but instead a place to find out just how much vitriol you can shovel into a sentence without being accused of harassment and having your account suspended.

I friend everybody. But that’s because I’m compulsive that way. Anyone who wants to be my friend, can be. If I have even the slightest inkling that I might know them, or if they have the right mutual friends, I will accept just about any friend request. That said, I will start by explaining myself. The first and only person that I have personally de-friended was this dude that responded to a simple status update wherein I called out the GOP for their flagrant attempts to tap dance all over women’s rights. This guy started tossing around some very frustratingly bad rhetoric about Planned Parenthood. He basically parroted every stupid, senseless lie that the GOP has been spreading about the PP these last few months. I argued with him for about 16 hours or so (which, in Facebook time, is really only like fifteen minutes). And then I realized that, despite the fact that we have mutual friends, I actually had no fucking clue who this guy was. So I de-friended him. Maybe someday in the future we can hammer out our differences in person. Until then, however, I just don’t think we can be friends.

Both of the times that I have been de-friended were as a result of status updates that expressed disgust with the drug war and support for legalization of…various medicinal herbs for…recreational use. One of these two was a guy I went to high school with. The other one was my first cousin. As in, my mother’s sister’s son. We probably share a few alleles.

And so I was wondering about the nature of friendship. Facebook aside, I would guess that there are around two dozen people that I would consider friends. Only about six of those are what I would call inner-circle friends; that is, people that I will go out of my way to see when I go home for the weekend (I teach at a community college about five hours from my hometown).

I have 308 Facebook friends. I do not actually know who all of them are. I do not know if I could pick them all out of a lineup. If I saw them in person, I would not know their names. But they are there. And they all have relatively unrestricted access to my political views and pictures of the food that I cook.

It occurs to me that the word “friend” means something very different on Facebook than it does “in real life.” It also occurs to me that it is possible that I might find myself to be much happier if I bring both definitions into closer alignment. Then again, where is the fun in that?

Sie haben einen Freund in mir.

Too Young for the Old Folks’ Home

A week or so ago, Republican Representative Martin Harty, a nonagenarian from New Hampshire (!) said something that might have been funny if it had been said by a drunken college student being ironic at a house party or at a bar. However, I’m fairly certain that a sober phone conversation with a constituent is not the proper forum to suggest that sending “defective” people to Siberia is a good idea. And, of course, to later refuse to apologize for such comments is even more hilarious. And forget morals for a second. Would Russia even approve of this? Is it even plausible fiscally? Logistically? We could just as easily stick all the defectives in a huge freezer or grind them up into soylent green patties. It seriously is the ramblings of an old cranky bastard that has no business playing at politics. He really needs to just get back to his penny candy and his Price is Right.

But it got me thinking. Not about eugenics. But about Mars exploration. I think it was back in November that a couple of scientists suggested the money-saving space exploration strategy of sending astronauts in their sixties to Mars on a one-way trip. The logic is fairly straightforward. A one-way trip would cut costs by something like 80%. The idea of sending older folks to Mars is the fact that a mission to colonize Mars would almost certainly dramatically reduce a person’s life expectancy. Therefore, goes the argument, the only logical thing to do is to send fit, healthy and sane folks in their sixties. These are fogies who have theoretically had a full and happy life.

The thing of it is, people will want to do this. You will never be short on volunteers for something like this. Even after you filter out the crazies, you’re still going to have a fairly sizable pool from which to draw colonists from. It’s interesting because word on the street is that this is NASA’s idea. This is not NASA’s idea. NASA is not endorsing this idea and is not planning on utilizing this idea. At least for the time being.

Honestly, I don’t understand what the holdup is. Here’s my problem: Kennedy lit a fire under our collective asses with his address challenging us to put a man on the moon. America’s best and brightest teamed up to not just win the space race, but to annihilate the competition. Kennedy threw down the gauntlet in 1961. There were human footprints on the fucking moon in 1969.

Since then, NASA has become an agglomeration of bureaucrats. The adventurous spirit is lost and little by little the US has lost her resolve to do anything even remotely as badass as walking on the moon. I mean, seriously. Obama’s “Sputnik Moment” is just to, what? Get everyone internet access? Really? I’ve had internet access since 1995 (ish). This is not a Sputnik Moment, nor an analogous Apollo Response. It is just a pledge to invest in the infrastructure of a (very possibly) doomed planet.

The question that I think is vital here is essentially this: When is the US going to do something boner-inducing again?

And I know that there are people out there who will claim that we simply don’t have the money. Well, I’m here to tell you that we do have the money. Oodles of it. And there’s one easy way to get our hands on it.

And so, here’s my thinking: we have to get to Mars because it’s the coolest thing imaginable at this point in time. The only way to do it and make it affordable is to turn Mars into Shady Acres Retirement Village. So let’s do it. Let’s embrace this idea wholeheartedly. I mean, if this is a moral imperative (which I would argue it is, what with the precarious situation of having all our eggs in, you know, just the one basket), and there is only one way to accomplish it, then why wouldn’t we just do that thing?

Oldsters on Mars. Hell, you don’t need eccentric billionaires to fund the damned thing. You just need hidden cameras and a distribution deal with MTV. This would be the most brilliant reality TV ever. Watching a handful of old fogies slip inexorably toward dementia and how the others deal with that (on Mars!!) would be like the TV event of…well…forever.

I’d start a petition to get this thing going, but what’s the point?

Also, in the picture, can you guess who the old man with the gun is? That’s right. It’s William S. Burroughs.

Vorspiel einer Philosophie der Zukunft

Hidden Doorways a Reality?

shanter_prime_web

Click on the image to see it full size. I’m working on a new theme for the blog so that I can include larger format images. It might take some time.

This is pretty much exactly what would happen if William Shatner came ’round to tea at the Prime residence.

So I realized today that I have no really good reason for using Optimus Prime as the subject of so many of these comics (if you can call them that). Perhaps it’s that I see him as the sort of ideal outside observer. An alien not of us, but very sympathetic to us. He likes humans in a way that is not patronizing or insincere. He shows us–the inferior race–a kind of respect that is rare between humans.

Prime is the perfect idealist. His most famous quote (from the comics as well as the various Michael Bay films) was, “Freedom is the right of all sentient beings.” On the one hand, it’s the sort of magnanimous statement that gives a person shivers, especially when uttered by the always earnest Peter Cullen. But it’s also, when one really deconstructs it, astonishingly prejudiced against beings that are less than sentient. Regardless, I’ve always wanted to identify with Optimus Prime and I respected his sage wisdom (and awesome robot-fu) as a child.

Perhaps I use him in so many comics because I happen to own an Optimus Prime action figure myself, which makes it easy to photograph him from any angle I want. Do you know how hard it is to find a photo of William Shatner in the perfect pose?

The subject of ‘Hidden Portals’ was spawned by a headline that I saw on Science Daily. It’s one of those headlines that really plays tricks on a guy like me. I read something like this and I get really excited. I imagine, of course, teleportation (something that would really put GM out of business). And, thus, that’s the idea that I explored in my art project.

But that’s not exactly what’s going on in the article. In fact, the article is further misleading in that, try as I might, it’s difficult to figure out what, exactly, these researchers actually accomplished. Upon further research into the matter, it turns out that what they have created is not an actual, workable prototype of a hidden doorway, but instead have built a functional conceptual model of a doorway that does not permit electromagnetic waves to pass through it, but would allow other entities (say, a person) to pass through. A mirror that you can walk through.

It’s actually really cool. But this is the thing that’s frustrating about science sometimes. They’ve proved that it’s theoretically possible, but they haven’t actually built it yet. My question is, of course, why the hell not?

It’s a curious thing about science. In fact, it’s the critical difference between science and applied science (i.e. technology). What use has a scientist for technology except as a way of furthering our understanding of the world? They’ve proved that it’s possible to build the doorway. In a sense, it doesn’t matter to the pure researcher that it ever actually gets built. For the pure researcher, actually building the device would only be important if it could be used in further research. This might be an oversimplification of the pure researcher, who is, of course, only human, but the point remains.

Technology, like for instance these new metamaterials involved in the creation of the hidden portal is, essentially, a means to an end. And I don’t mean this lightly. “Means to an end” is a concept that bears considerable weight to a philosopher. Technology is a means to an end. And it is nothing more than that. To a scientist, the end is knowledge and understanding. To everyone else, the end is often creature comfort or experiential. We use technology as a means to the end of enhancing our individual lives or the lives of others. Both are perfectly reasonable ways to use technology.

Without letting this become a lecture on ethics, I think I’d like to bring this whole thing full circle.

I’d like to bring this around to what I find so interesting about Optimus Prime. He is, in a sense, a piece of technology. But he is also a sentient being. He is the ideal exemplar of a higher being that treats lower beings with dignity and respect. He is a piece of technology that doesn’t treat humans as a means to an end. They are an end in themselves. To be treated as an end and not a means. That is the true meaning of “freedom,” folks.

Now, if only someone would build some mirror-portals so that I could buy one.

Freiheit ist nicht frei.