Playing games

26Dec09

I’ve been satisfying my gaming thirst by indulging in a little Icewind Dale 2.

Yes, it’s not a recent game. I played Baldur’s Gate a few years ago, loved it, and decided to try something similar. As it turned out, they also share the same game engine, along with a number of other RPG games of a similar DnD breed.

Icewind Dale 2

Two half-orcs in Kuldahar, standing next to Iselore

The fundamental difference between Icewind Dale and Baldur’s Gate is that Icewind Dale expects you to create your entire party at the start. Baldur’s Gate only allows you to make one character — which is you — and then you have to find your own party members throughout the game.

I was hoping ID would follow the BG model, but then again, they are supposed to be different games. After playing ID for a while I began to appreciate the fun of creating whatever kind of party you want to face the scenarios in the game. For one thing, the game has to make allowances for different kinds of parties, which means that an NPC could treat you differently according to race, intelligence, charisma, talking skills, etc. Also, I welcomed the far less dangerous traps in Icewind Dale as compared to Baldur’s Gate, where nearly every one towards the end of the game was a one-hit kill. In Icewind Dale they are just annoyances.

Icewind Dale 2

Preparing to fight the Guardian, a very tough boss

‘course, this isn’t really supposed to be a review. I think it’s a bit late for that! The quality of the gameplay has not deteriorated with age. It’s still plenty of fun, unless you choose to concentrate on the quality of graphics in a game at the expense of other factors.

(I got Dragon Age as a Christmas present. I have not tried it yet. Looks awesome!)


First off: happy holidays to all. :)

Blog Stats is an enticing page to visit when your favourite sites have exhausted their interesting content. Unfortunately, I think it breeds an inappropriate amount of attention to how many people visit a blog. One could spend a lot of time picking out which posts get the most views and feeling coerced to write something more… applicable to the rest of the population.

Nonetheless, this little exercise in sounding out a voice in a well full of other voices probably deserves a smidgeon more substance.

A problem I’ve noticed with myself, that’s been growing ever since I left high school (which was not all too long ago) is that I’ve become very impatient. Not just impatient as in someone who thinks the bus is always late, although I’ve not been taking the bus as much these days due to that reason. No, this impatience is much worse — it’s on a very long term scale. I think of wonderful things I would like to do. There’s a mountain-load of them. The problem is that I often spend a large sum of energy in executing them, only to give up on it very shortly after, like say, after a few days, and then I find something else and I pick up on it.

The whole process is draining. To put it bluntly, I seem to be throwing away my efforts as soon as I have made any headway in them. Take, for example, a version of the Robots game I made in Mobile Processing. I made a large amount of progress within a few hours of a night, and I couldn’t sleep through to the next day on account of being so excited about all the things I wanted to do with Processing. And then I lost interest after that; it seemed that I did so much imagining and brainstorming that I didn’t have the energy to pick up on the ideas I had.

And it is so disappointing how I find flaws in my project ideas so quickly. The flaw can be almost anything — the project might be too easy or too hard or just plain redundant. A mere pebble added to a pile of refuse code that makes no difference at all. I have an idea for a novel I’ve been building in my head since 2005, and I haven’t been able to make significant headway in writing it down, except for a few scraps here and there that are more like notes than actual story.

Oh, sorry. I think this has degenerated into another one of those discussions that probably no one will ever read! I’ve done exactly what I set out not to do. Instead of something that adds to the swelling corpus of knowledge out there, it’s just a sad rant from a guy with ideas who can’t make them work.

Hrm. The scheme of things, the number of people reading this doesn’t matter. I just think it’s important that I’ve recognised this habit of mine. The next step is to do something about it.


A lot has happened between now and the previous year. My interest in programming died when uni started, though it has been rekindled after buying a new mobile phone. My old Nokia 1100 finally gave up; its battery wavered in status between full and empty despite lengthy sessions of charging.

I now have a Nokia 6760 Slide. What a clumsy name. Why didn’t they just call it Nokia 6760 or Nokia Slide. I suppose whatever marketing executive who decided on the name thought that just having the name was too dehumanizing for a device so intimately connected with our daily lives. Still, tacking on “Slide” doesn’t make it any more cool than the other 182387 models that Nokia releases. Reification is dangerous.

What set off my interest again was the possibility of programming for the phone. Before buying the new phone I had a very old-fashioned view of what a mobile phone did: it called people, and nothing else. These days mobile phones seem to do everything except your tax return. (There’s probably someone writing a tax return app for Iphone as I type this.)

There are a number of ways of programming on the phone. It’s a Nokia phone, and it runs the Symbian operating system, Version 3 Feature Pack 2 to be totally exact. Two main resources are Forum Nokia and the developer section of the Symbian website. For this make of phone, the choices are C++, Python, Java, Flash Lite and web widgets. The only two that I have looked at in detail is Python S60 (PyS60) and Java ME (Micro Edition).

My interest began in Python because I had previous experience with it. I could remember a lot of Python despite not having used it in months. I was very excited when I was playing around with it; I made a significant amount of progress on the L Game program which I tried to write last year. I gave up when I realised how time-consuming and laborious it would be to manually rotate every square that makes up each counter in the L game. There’s got to be an easier way to do this, I said.

My initial excitement with Symbian faded when I came to realise that the world’s most popular operating system, operating on a phone made by the world’s most popular mobile phone manufacturer, was not very friendly with developers, especially amateur hacks like me. The Symbian OS itself seems to receive a large measure of hatred for being complex. Programming in Python for the S60 edition of Symbian might be fun, but I’m a bit disappointed seeing that few apps are written in it. This is probably due to a variety of reasons, such as the limitations of Python S60 API and hassles with packaging .sis files.

Now I’m experimenting with Java ME, also known as J2ME. It’s Java on your phone, except it’s missing some classes from standard Java. Plenty of apps seem to be written in it, mostly games. Java ME has less capabilities than Python S60, but it has the benefit of being able to run on many more phones, not just by Nokia. If your phone is relatively new, say 1-2 years, it likely has Java on it. While you won’t be able to access GPS through Java, it has its own advantages, such as a class specifically designed for games.

I actually did not know Java before encountering this. I’m learning Java because of it, which is quite nice. :) (The reason for learning, not Java I mean. Java is horrible and mean and bullies me with its muscly curly braces and sneaky semi-colons.) And now I am experimenting with Processing and Mobile Processing. I have a lot of good things to say about those two projects, far more than can be contained by a single blog post. So that’s all for now, hehe.


*echoes the title*

Back in the way, like a lot of other people who were just venturing out into the cold exterior of the Internet, I made a Geocities page. I attended to it meticulously like a Zen gardener until one day I blew up and didn’t look at it again. And I was amazed, years later, to discover it was still around.

I am experiencing that same sort of feeling right now, though it’s on a smaller scale!

I note that it has been almost a full year since my last post to this blog. A lot has happened since then. I got fed up with Linux and reinstalled XP. Don’t shoot me; I’d been trying to get wireless working on this laptop for a very long time with no results, and there were a few Windows-only programs I was interested in trying out. Linux is a good idea, it’ll get bigger, but I’d rather stick with XP for now. My family members have enough trouble comprehending how to navigate their way through Windows, and I would like them to be able to use this laptop if required.

(I was going to put “if they need to”, but the ancient rule of “no sentence ending with a preposition” surfaced in mind. I would very much like to exorcise this grammar-daemon that lives in my synapses.)

I made a Wikidot account with the goal of collecting useful information in a central location, but the flexibility of Wikidot was starting to wear on my nerves. You can have a wiki, a blog, a forum, an issue tracker, and lots lots other things. You can modify any of the provided templates as much as you want. Nothing seems to be forbidden; you can even make a little moolah with Google Adsense.

Unfortunately I think their system is a bit too rigorous for my needs; in the end, a simple WordPress blog is best for meeeeee (somebody make a musical out of that), especially one which has such good support for pasting in source code. Wikidot probably has this too, or you can stick it in yourself somewhere; I don’t know. I didn’t check hard enough. I didn’t really feel like making the effort. For me, using Wikidot to host my mostly redundant tidbits was like using a warship to transport a crate of oranges to goodness-knows-whereland.

So I am here again. This time I won’t be so pointless, I swear!


:) -> :( -> :|

14Dec08

I’m feeling a little disappointed.

I’ve been trying to write a script which requires extracting a gzip archive, using something like tarfile in the Python standard library but in Ruby instead. I first looked at zlib, but this was incapable of easily extracting a bunch of files to a directory. It seems to be more suited for compressing small amounts of data to be passed between servers… or so that’s what I’ve read about it. Its documentation is also fairly atrocious as well.

I then remembered Arson and went to have a look at how it solved the problem of gzip extraction. I found out that it used the Archive::Tar::Minitar library that is found in the Facets library. It seemed to do exactly what I wanted. However, I was not happy that the standard library could not do this already. Ruby and Python are constantly compared against each other and it would not serve Ruby well to be lacking in its standard libraries.

So I went about my happy way… until… until I found out that Minitar cannot extract symbolic links.

As per the common lingo, this was a major showstopper. This script absolutely requires that the extraction pick up any symbolic links. I googled for any information about this problem and found that someone had picked up a patch to support this two years ago.

This makes me sad. I want to like Ruby. I like how it is designed. It fits the way I think about problems. Python is good too, but there are things I do not fancy about it. Sometimes I find it confusing. My dislike of Python and fondness for Ruby are partly irrational, I realize, but I still would like to continue using Ruby. If someone was paying me to do this, I might be using something else, but I aim to have fun with programming. I come nowhere close to being a professional programmer; I just enjoy fiddling with code to see what it can do for me.

UPDATE: I’ve realised that simply using the tar command from Ruby through backticks is better for my purposes. Still, I wish there was a Ruby equivalent to tarfile.