Rest in peace, ClickWheel

September 3rd, 2010

Apple have unveiled the shiny new iPod Nano range and they are sexy! Half the size of the previous model and sporting the same screen technology as the touch devices. Wonderful!

New iPod Nano

What I find surprising, though, is how many of my technically adept colleagues seem to be disgusted (or at least perturbed) at the disappearance of the ClickWheel.

Don’t get me wrong: The ClickWheel was a marvellous idea and worked really well… five years ago. It was a solution to the problem of providing a sleek touch based scrolling interface in the days before cheap multi-touch screens. This was also the time when the big iPods needed to fit a mechanical hard disk in the back – so there was this area on the face that needed to be filled with something eye-catching. Yes, the ClickWheel was great- I’ll continue to use one until my 30GB iPod Video decides to die.

But it’s 2010 now. We have solid state drives that can cram tons of information into a really tiny space. We have multi-touch interfaces that are just really beautiful and slick to use. Let’s enjoy the memories we shared with the ClickWheel as we lay it to rest and look forward to new innovations to come. Live in the now.

Self , , , , , ,

Outlook not so good.

August 16th, 2010

An important person in the company (all praise the company!) has just attempted to send me an updated security certificate by email.

Oh, no, no, no, my friend! Surely you know that I’m running Micros~1 Outlook as my office mail client?

You see: Outlook knows what’s good for you, and apparently, security certificates are not. Indeed, Outlook will not allow me to access this file, or even give me the option of “Don’t worry, I know what I’m doing.”

[Here's a fun fact: The certificate was *sent* *using* *Outlook*. So, Outlook will happily send files that it deems to be unsafe, but the poor sap on the other end won't get to use it.]

Now, I tend to place a degree of value on others’ time. So it pains me to have to reply to someone saying “Hi, Outlook won’t let me open your attachment. Can you jump through hoops X, Y, Z to get it to me?”

Outlook used to simply be a poor email client. Now it has become actively counterproductive.

Self , ,

while true: Compile; Run; Debug

June 1st, 2010

The more I go through this cycle the more it amazes me that this is the development paradigm that won out. That back in the golden era people sat down and decided that this was the model of the future.

For large applications it’s a major pain – much time spent compiling, starting up the program anew and returning it to the state you need in order to test your latest fix. Even for a fairly trivial change or a bit of experimentation, this is a huge timesink.

And yet there is an alternative approach – incremental compilation, à la Lisp. When the Lisp environment hits a bug it pauses. It shows you the location of the bug, it gives you a full stack trace at the time of breakage. You can inspect just about everything. Here’s the kicker: you can fix the code while the debugger is waiting. Then you can load that fixed code right back into the running program and continue on your merry way.

Let me repeat that last bit: You compile only the code that needed fixed and load it into the running program. The running program then continues using the new code. No stopping, compiling, running, getting back to where you were, debugging.

This is special. It’s not even that new. Lot’s of hip, young, dynamic languages are attempting to copy it. Let’s now, in 2010, make an attempt to catch up to the technology of 50 years ago. We owe the founding hackers that much, right?

Self , ,

Eclipse Development Lossitude

May 28th, 2010

Here are two things about Eclipse which recently annoyed me. (I imagine it’s Eclipse’s fault, I guess It may be Java’s.)

1) When you reach an exceptional condition, the correct response in debug mode is to freeze the program and allow the developer a chance to inspect the current state. Stack, Heap, location, all that good stuff.

Throwing your arms in the air, screaming bloody murder and throwing away all the useful information when an error occurs is not useful. It turns debugging java into a game of “How close can you get to an error, without actually reaching the error.”

If you reach the error you lose the game, along with any useful data that might help you fix it.

2) You only seem to allow me to put breakpoints on lines on code. This implies that I already know where an error is. If I did, I’d probably fix it.

Why can’t you let me break on more useful things like when a particular variable has a particular value. This is similar to the previous point where I don’t want the program to drop everything and run away before I can look into it.

3) In 2010, the best way to debug a Java program is to pepper it with Print statements. This is sad.

Self , , ,

WordPress Lossage

May 14th, 2010

The latest update seems to have screwed up some plug-ins. Most notably the collapsible archives and source code highlighting.

Hopefully this is only temporary.

Self, Uncategorized , ,

Games: Math vs. Story

April 5th, 2010

It’s not a great title but none of the other drafts I came up with were any better…

I’ve been thinking recently (and informally) about a schism in game design that seems to be developing. I think in part it’s due to the seeming rise in popularity of Role Playing elements within games. When I say Role Playing elements I’m talking specifically about the idea of the player assuming the role of a protagonist from an early stage and gradually building that character; resulting in, for example, more powerful options during play, unlocked equipment, more locations or simply to make the character look better. This typically happens when a player has accumulated enough experience points to ascend to a new level of play. Experience points are typically accumulated by applying the skills previously unlocked. This idea has started to become more pervasive even in games not commonly associated with character building. Examples include puzzle games (Puzzle Quest, Puzzle Pirates), First Person Shooters (Borderlands, Call of Duty), Racing Games (Forza, Need for Speed) and of course those games which are naturally Role Playing Games (Dragon Age, Mass Effect, Oblivion, Fallout 3, Pokémon, …and many more). (Note: Shameless list of some of my favourite games.) For me, this additional mechanic adds a new dimension to the game: Narrative. I like stories and I like characters.

The observation I wish to describe is the contrast between two different ways of presenting this narrative information to the player. I don’t wish to claim that one method is more correct than the other. Although I think that there are merits and danger for each that should be considered. It is these points I wish to briefly outline. Also: I’m not an expert in this area but I do enjoy games.

Introduction to RPG mechanics

Originally, I included this section in the description for Case 1. As it grew, I decided it merited it’s own section. Note: Some games will use different ideas; this is only intended as an example. I’ll describe a simplified Dungeons and Dragons style method.

In traditional tabletop games (using pen & paper, or boards) mathematical functions were devised as a way to roughly model expected outcomes of conflict/encounter. The idea was to avoid leaving everything to pure chance (dice rolls), but instead to modify the outcome of a dice roll based on the characters abilities. for example, A strong character will deal more damage, however, the range of damage is still affected by stamina and the type of armour the opponent is wearing. The dice roll itself merely introduces the idea of something going wrong, e.g. “Your character slips when swinging his weapon and only manages to graze your opponents forearm.”

It is not limited to performing moves in battle. Some characters in the game will have the ability to lie or persuade to gather information. These outcomes will also be based on the characters skill. Modified by the second person’s skills at detecting lies or flattery, and a chance dice roll. For example, “You attempt to impersonate a foreign diplomat to gain information…” “…however, the guard is not fooled by your accent.”

As your character gains experience, your chances of successfully exploiting a skill increase. On the tabletop, there was no computer to perform these calculations for you, so all of the functions where exposed to the players.

Case 1: “The D&D Method”

Yes: I’m bad at naming but it fits with the introductory example. In this case the player is given the raw numbers: “You will do 5 points of damage per hit. Your foe has 8 points remaining.” This is demonstrated in the Pokémon series, Neverwinter Nights and Eve Online for example. This hails back to the tabletop method.

The benefits of having all the raw information are arguably that you can make strategic decisions by testing the mathematics in advance and your plans can be optimised by carefully adjusting the variables. The drawbacks, perhaps, are that the intended purpose of the functions – to provide a model for realism – are not achieved. i.e. The game is reduced to nothing more than balancing equations.

Case 2: “The Once-upon-a-time Method”

The titles get worse, but what I’m getting at here is that in this case, a lot of the raw information is hidden behind a façade which is more abstract or opaque. This tends to present in games which are more about advancing a plot than performing the precise strategic operations. Abstraction may ranges from cosmetic change (Displaying bars and graphics in place of numbers on screen) to making the game logic fuzzy (“Character is big and strong”, instead of “Character has weight 55 and strength of 60″). City of Heroes by default will show simplified hints about the underlying attributes while Mass Effect 2 gives the impression that knowing the exact power of every attack is not significant for the player.

The benefits here are that you can find ways to hide the games computations from the player and present them with only the experience of the characters and story progression. The player has enough information to decide how the character will develop and move from event to event but without micro-managing individual attributes. The drawback is in giving less control to the player.

Thoughts/Conclusions

Already? Well, this wasn’t intended to be a thoroughly detailed examination or case study. It was just putting down some thoughts into a post. At least my host will know I’m still alive.

If I have one concrete opinion, it’s that a computer game has the wonderful advantage of having a calculator sitting underneath it. To this end, the mathematics of the games progression shouldn’t come at the expense of immersion into the game’s world. Of course, in some games, the math is central to the objective and shouldn’t be compromised. However, for any functionality that can be delegated to the computer, the designer should attempt to make the presentation as natural for the player as possible.

The key challenge is finding the right balance between giving the player absolute control of the numbers and presenting the player with an abstraction of the information that is compelling as a story.

Self , ,

Eat the Jam!

November 1st, 2009

Ladies and gentlemen, May I present “Eat the Jam!” The only game which combines a high powered pop culture quiz with a taxing conserve based forfeit.

Self , , , , ,

Saving the World: The American Way

March 7th, 2009

Out of curiosity, I download America’s Army for Mac ealier. Having just completed the Basic training and M.O.U.T. exercise I would like to reflect on some of my favourite lessons so far:

  1. Use of cover: You may not discharge your weapon outside the active room.  Soldier, your mission is to charge screaming into the center of the room unloading single rounds from your weapon. Now go an be an American Hero!
  2. Flash Grenades: Flash grenades can be used to temporarily blind your foe, buying you an additional couple of seconds to clear the room.  However, it takes about 4 seconds to switch between grenades and firearm, so keep your finger on the trigger and prepare to open fire! (Why not send flash grenades in before entering the room? see poimt 1)
  3. Identification: In order to minimise friendly or civilian casualties, it is vital to quickly identify your enemy. Tip: They’re wearing balaclavas and bandannas. Son, the U.S. Army has always prided itself on telling the difference between friend and enemy!

Self , , ,

Fuzebox Kit

February 25th, 2009

I just ordered one of these kits :-)

Fuzebox Starter Pack

Fuzebox Starter Pack

The mainboard is supplied unassembled.

The fact that computers contain hardware is something I can normally overlook. Hardware can spasm out of control, fizzle and burn in impressive colours or simply die slowly, bit-by-bit (if you’ll excuse the pun). I’d be happy to own a computer that operated by magic: no parts – just an abstract concept.

Nevertheless, I’m still fascinated by hardware and have always wanted to try a little project. Having read most of “Hackers: Heroes of the Computer Revolution” now, I’m aware that among the first home computers was the Altair 8800. A kit machine where you would, typcally, buy the components and build it yourself. This was the norm, and, Hackers is full of little accounts of people hacking together hardware into a semblance of what we know as Personal Computers. Steve Wozniak is a notable example: Inventor of the Apple. The next generation Apple II would becomes one of the most popular computers for games hackers in the early 80s.

It’s always struck me as a time now past – today, infinitely more complex machines are fabricated in computer controlled environments. Even if you try to gather parts from vintage hardware, for a novice enthusiast it would be difficult to put together and perhaps more difficult to find connectors to make it usable.

Then I came across the link to this kit.  It’s an 8-bit console kit that seems fairly simple for a starter project and has good instructions. It seems just right for getting into some hardware work. The console itself (although only 8bit) uses S-Video or AV connectors and flash memory (instead of archaic co-ax cables and cartridges)

I’m excited to get started into a new (different) project! :-)

Self , , ,

The Open Plan Office

February 20th, 2009

Right! This is a rant. I currently work in an Open Plan office. This is designed to encourage a better atmosphere where people can discuss things and collaborate? Or is it easier for a boss to keep an eye of who’s slacking off? Whatever the intention, I notice the following effects:

  • All barriers for sound are removed. This typically make the office very noisy. You are likely to hear: One half of a conference call, One half of a heated discussion about insurance or heating installation, sighs, coughs, yawns, shuffles, footsteps, coffee slurping, chairs creaking, necks cracking, fingers typing. If, like me, you tend to shift your attention quite rapidly it becomes a cacophony.
  • At any given time, there is at least one pair of eyes looking at you – and you are guaranteed to look back. This causes that awkward social phenomena of “mutual paranoia” wherein both parties stare at each other wondering how long the other has been watching.

What’s the alternative? I think individual cubicles is the other extreme. It encourages isolation (The geek in me just had a brief moment of excitement as I typed that, but the human in me wants to cling to the hairline cord of social adeptness). At Microsoft, I think they had a fairly good solution. The office was separated into cubicles, but each cubicle had 3-4 people… usually on the same projects. This means that sounds from elsewhere are well muted and you can still lean round for a chat with your colleague.

Well, the company I work for are hoping to move to new premises at some point in the near future. (Deliberate vagueness avoids trouble). I really want to suggest a move away from open plan but I don’t think the idea would be taken seriously: Next to MEETINGS it’s the best excuse for the lack of productivity!

Typed at 1am- please forgive spelling/grammar. :-)

Self , , ,