Archive

Posts Tagged ‘fun’

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 , , ,

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 , ,

Nethack on OS X 10.6 (Snow Leopard)

November 13th, 2009

O.K. So, this is kind of a followup to a previous post I did about how I like to setup Nethack on my Mac. However, more recently, some of the patches I had used stopped working on later versions of Mac OS (10.5 and 10.6). So I spent a bit of time looking into this today and I got some positive results. (update: I think the problem I had with Menucolor compiling was that it didn’t like the regexp method – I changed this to simply use the wildcard matching.)

Nethack with Status Colors and Menu Colors

Nethack with Status Colors and Menu Colors

Unfortunately, because the two patches I’m applying have resulting conflicts- it meant manually applying the patches to the source code in some cases (also: I’m lazy). I, therefore, don’t have an elegant method of actually applying the two patches that I can pass on. What I am doing instead is providing two things: The complete refined archive of the patched Nethack source which should be ready-to-compile on OS 10.6; And also the .diff file produced from a vanilla copy of the source and my own patched version. I will also provide my new updated nethackrc file. (ok… 3 things :-) )

Here’s some details about the setup this provides:

  1. The Status Colors patch is applied. This is a configurable patch allowing you to color code status effects – hunger, blindness, HP, Gold, AC, etc. It’s very, very cool! :-)
  2. Menucolors patch applied. This is a configurable patch that let’s you apply colors to popup menus. e.g. inventory items can be red for cursed, green for blessed, etc. Again, this patch is very neat!
  3. The initial configuration for getting Nethack to build on mac has been taken care of.

So Here are the links to get everything up and running. I should say at this point that this stuff works on my machine and YMMV. If something is broken and you want my to take a look at it just leave a comment of send an email – I’ll try to fix it if I have time. You may also want to dig through the changes in the patch.

  1. nethack-3.4.3-patched.zip
  2. nh343-_menustatus_orig.diff
  3. .nethackrc

I hope this is useful for someone who wants a nice shiny setup of Nethack on Snow Leopard. :-)

Programming , , , , ,

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 , , ,

Protecting Code from Uncertainty

February 3rd, 2009

if (2 > 5) {
fprintf( stderr, "This shouldn't happen!\n" );
} else {
//continue as normal
}

It really amuses me when I see code sections commented as “This shouldn’t happen” … It usually means that the programmer is about 98% certain that no condition will occur in which the code is executed. However, just in case the fundamental laws of the universe suddenly collapse, that particularly obscure error will be correctly handled.

Programmers care about the correctness of programs even under the most unlikely scenarios.

Programming , ,

Emacs for Blogging

January 31st, 2009

This is a test post using weblogger.el for Aquamacs 1.6*. If it works
I’ll probably use it as my main offline blogging client.

Aquamacs is a Mac port of the popular multi-purpose program
Emacs. Emacs is used for many purposes such as tetris, email,
calendar and organiser…. There are even rumours that it can be used
for editing text!

Self, Software , , ,

Joining the 21st Century

November 27th, 2008

Ok, some new stuff:

 

  1. BT sent us a new router
  2. The router actually has useful features like port forwarding
  3. I have the admin details for the router
Based on these facts I figured it should be possible to set up say: Remote SSH access to my laptop.  Moreover, with a little iPhone app called Touchterm (an SSH client for iPhone) I should be able to login from anywhere – even on the road.
So I went through the steps of setting this all up – told the router to forward SSH connections to my laptop and went downstairs to enjoy a cozy session of nethack.
Playing Nethack via ssh on iPhone

Playing Nethack via ssh on iPhone

Regards.

Self , , ,

Nethack Settings for OS X

November 22nd, 2008

There is now an update to this post.

This is a quick tutorial post for anyone requiring convenient pre-configured Nethack Files. Nethack comes from a tradition of Hack’n'slash adventure games known as Roguelikes. They are similar to text based adventures in that, originally, grapics were rendered using ASCII characters. This is still a popular way to play the games. This is the end of the similarity, though, as the gameplay is more like that of Dungeons & Dragons or other Role Playing Games.

Personally, I enjoy using ASCII graphics because I think it makes the games more readable, imaginative and because nicely rendered fonts just look better than tiny 16×16 tiles. (How can a mighty dragon be crammed into a small 16×16 bitmap?)

Nethack in Terminal.app

Nethack in Terminal.app

So, here are some things I have done to pretty up Nethack a bit for OS X. Many other people, I’m sure, use a similar setup, and many others probably differ. For added convenience I’ll include my configuration files for download.

  1. Build Nethack from source. There is a good tutorial for this on the Nethack Wiki
  2. Apply the following Source Code patches: hpmon, Menucolors and rebuild. (They provide groovy abilities like menu highlighting for easy reading)
  3. Download a copy of my .nethackrc to configure- this already has decent settings for Menucolors and well as some traditional options: (keybindings, graphics mode, etc). You can get the file here: nethackrc (save it into your home directory as .nethackrc)
  4. Make a custom Terminal.app config ad export it. I use Monaco 18pt font, no-blink cursor, autorun /usr/games/nethack. You can grab a copy of this file here: nethack
Hopefully this has helped a little in setting up classic command line Nethack on OS X (and making it look a little prettier).

Gaming, Self , , , ,

RSPOD Vol. 2

November 8th, 2008

I just went over and picked up On the Rain Slick Precipice of Darkness Vol. 2 (The new Penny Arcade adventure) from Greenhouse Games. So far I’ve only watched the opening cutscene but it looks like it’s gonna be both awesome and hilarious.

These guys are delivering serious fun for only $14.95! :-)

Gaming, Self, Software , ,