Software Development Goofs and Beer

Ξ September 29th, 2006 | → 0 Comments | ∇ Software Development |

It appears that my favourite magazine store here in town has stopped stocking up on DDJ. The bastards. This of course means that I read a lot of the articles presented at the magnificently content-filled DDJ website instead. Sure, it also means that reading DDJ in the bath becomes nigh on impossible; but that’s okay - it means that I have more time reading Edge in the bath instead. I’m constantly surprised by how well-written that magazine is compared to the ludicrously moronic Swedish gaming mags aimed at trigger-happy 14-year-olds.

Back to DDJ: I just noted an interesting article about software development goofs. It mentions the noteworthy cost of software defects, and mentions several reasons why developers make mistakes. Here’s a nice little summary:

  • Ignorance - Developers today work with systems that include too many code lines to have a complete overview of.
  • Stress
  • Boredom
  • Human frailties - Humans aren’t robots and cannot perform repeated tasks exactly the same every time.

Excellent. A list that can be applied to exactly anything involving a person. Why do doctors make mistakes? Why do relationships break up? And so on. It’s hardly unique for software development.

But read the article anyway! The software-unique parts come after this: the article continues with a summary of common mistakes like memory leaks, returning a pointer to data on the stack and so on. This is always amusing and sometimes informative. In general, the article is pretty interesting and worth skimming through even if there’s nothing particularly new there.

When I was reading through the goofs and pitfalls I thought about this in comparison with my own work. A while ago I wrote about a bug in DHCP relay that I corrected. Things got pretty hectic after that, because the solution didn’t work at all. In fact, it completely destroyed the DHCP relay functionality! Panic! What exactly did I do wrong?!

To make a long story short, it turned out that I hadn’t done anything at all wrong. The solution worked, but due to a bug in the embedded OS code, the interface names had an extra newline added sometimes. This of course meant that the old code worked decently, since it only compared the beginning of the line - but when I compared the entire line, it always failed to find the correct interface. I don’t just have to consider my own code, or using the OS’s code correctly; I also have to find and correct bugs in the OS itself.

This is rather irritating, I assure you.

And curiously enough, I’m pondering why exactly the old code was implemented like it was. Did the previous developer try a complete comparison first but noted that it didn’t work? Was this his solution to the OS bug? I don’t think he remembers and I don’t think I want to ask: this is his last day at work before he’s quitting, so we’re going out to have a few beers and wish him well in his professional poker playing that he’ll be taking up now - that’s definitely no time to talk work!

 

Killer NIC, Physics and External CPUs

Ξ September 28th, 2006 | → 0 Comments | ∇ Computers, Networks |

I’m sure that you have heard of Killer, the ridiculously expensive and capable new network interface card that supposedly not only can reduce your gaming ping times, but also increases the FPS of your games. At first I was highly sceptical just like everyone else, but reading up on the issue showed that Bigfoot Networks, developers of the NIC, aren’t just trying to fool stupid gamers out of their hard-earned dough. Read the FAQ on the webpage, for example; they are fully aware of the fact that the biggest culprit when it comes to latency is the Internet itself - they’re simply trying to lower the local host OS’s delays. Oh, and the IGN review shows that it indeed provides some positive effects.

When I first saw the card I scoffed and harumffed and did all kinds of weird noises, but thinking about it, it does make sense in a strange way. The normal procedure for network traffic is (quite simplified) that an application sends data over a socket, which transports the data to the OS’s network stack, which in turns connects to a device driver that in turn exchanges signals with the port, and finally sends some data. The NIC card then receives this data, and handles to low-and-dirty layer 1 and layer 2 Ethernet details. Or something along those lines. Layer 2 (MAC address level) might be handled in the device driver instead.

The Killer card - which I incidentally feel like calling the Killer kard in a Mortal Kombat-like bout of silliness - instead has a massive 400 MHz CPU, runs Linux, and actually replaces the device drivers of your OS to something especially designed to work faster with Killer. I assume that the card also has a simple priority queue which prioritizes connectionless (UDP) traffic, which is what is used by games most of the time.

“But what about lowering the FPS,” you ask. Well, at least I did. This also makes sense, given that the main game loop waits for the sockets. If the device driver can respond faster, the control might be passed back to the game quicker - I guess. Somehow this feels like a stupid explanation, though. And wouldn’t that be taken care of by a separate thread for the network handling, these days when multi-core CPUs are all the rage? Anyway, IGN’s results seem to indicate that the FPS does increase a smidgen.

All in all, I think that this might be a decent toy for rich kids who must increase their performance by all means. But it’s mostly useless for all other kinds of network traffic, in my opinion.

However, something that struck me was the fact that the Killer card can run applications of its own. An example of this is a bittorrent client that downloads files to an external hard disk connected to the Killer card’s USB port. Yes, it has a USB port as well. This example sounds like a completely useless idea to me. But something that’s all the rage now is all the talk of physics in games; couldn’t the Killer card’s CPU be put to use for physics calculations? Sure, it’s just 400 MHz, but I’m sure that general non-critical calculations could be performed autonomously from the rest of the game.

And couldn’t this extra CPU be used for other activities as well? In fact, there seems to be external CPUs in many plug-in cards these days: graphics cards, physics cards, network cards, maybe sound cards. If there could be a standardized way for using external CPUs, I’m sure that most demanding applications could receive quite a boost - without the hassle of proprietary solutions. A generalized API for utilizing external CPUs. Too bad that it’ll never happen.

 

Sheeplings - The Movie

Ξ September 26th, 2006 | → 0 Comments | ∇ Indie Games, Sheeplings |

Here I am with a fully playable version of Sheeplings: 16 levels, you can upgrade the dog’s attributes, there are wolves and eagles and lots of fluffy sheep… Hey, I even added some tutorial-like popups yesterday. But I still can’t let people get the demo, ’cause I don’t have the map art. Now I’m considering increasing the demo stages to 20 while I’m waiting - the more the merrier after all. And it’s about time that I did something about the website as well.

Anyway, what’s this bit about the movie in the title? Well, I’m really dying to know if people like the Sheeplings concept, so I put together a 30 second clip with me playing one of the stages. Or levels. I really need to decide what word to use!

Feel free to download it here (mpeg1, 2.7 MB):
http://www.sheeplings.com/sheeplings_1.mpg
or here:
http://www.cynicalstuff.com/files/sheeplings_1.mpg

And please comment! I’d love to hear some opinions; so far I’ve gotten the valuable hint that the dog’s bark is too harsh, and that I should find more pleasant ones - preferably multiple ones for variation. Any other spontaneous things that spring to mind? It’s hard to tell a lot from just a 30 second clip, but who knows.

Another comment I received was that the colours are very nice. I couldn’t agree more with that, ’cause I really really like the soft and cheery feeling that the artist conjured up. However, I’ve learned one thing these last months: quality and price isn’t enough when choosing an artist to work with; I need to have the art assets within a reasonable amount of time as well. Granted, the artist has run into personal issues that affects his work, but if I’m going to attempt to work in a professional manner with my hobby projects I can’t have delays like this.

On the other hand, he’s done such excellent work - including speed - on some art pieces, so it’d be a shame to not ask if he wants to do more work. Maybe the best solution would be to find another artist with a similar style, and divide the work between them? I could look for someone else who might draw title screens and map screens a bit faster, for example.

Maybe it’s time to browse deviantART again, in the vague hope of finding someone good in my price range. I’ve already started toying with the idea of firing up my pen and tablet and draw some maps myself, but that’s not a good idea. Here’s a quick (unshaded) concept sketch I put together which illustrates that point:

If I put more time into it, I might find my way around simple drawing and basic colour composition and such, but I’d better leave the art to the ones who have more skill and time to devote.

 

Computer Components and Sexual Arousal

Ξ September 23rd, 2006 | → 1 Comments | ∇ Computers, Observations |

Bitter and stressed after a semi-busy work week I get home and check my paycheck specification. Praise the Lord: my expenses from the recent London trip will get paid back this month. In other words, I’m stinking filthy rich for a while (compared to my usual self which mostly just encompasses two of those three).

Now, what to do with my newfound fortune? Find some well-deserving charities? Travel around the world? Buy prostitutes and beer? Nope, none of that. My plan is as follows:

  1. Buy a new computer.
  2. Take a weekend cruise to Finland.
  3. Finally get a vacation; I’m thinking of going to Egypt or Cyprus for a week. If I go to Egypt I’ll make sure to visit Spitfire Bar. Apparently, this bar is the inspiration for Pratchett’s Broken/Mended Drum in the Discworld series. I tried to explain my fascination with this old soldier bar to some friends of mine. The bastards just stared blankly at me when I accidentally said something along the lines of: “Just imagine! You enter this run-down solder-infested hellhole… Everywhere around you are tough-as-nails soldiers.” I might have said something about bulging muscles as well. They kindly suggested that this might have some Freudian undertones, and that my closet door isn’t completely shut. Bah!

Anyway, I’m ridiculously enthusiastic about point number one. I seriously feel excited at the thought of buying some new hardware, putting it together, installing a dual-boot XP/Vista machine, trying out new games and applications and whatnot, and so on. In fact - this may sound a bit kinky - I think that the excitement is similar to sexual arousal. No, not physical arousal. I don’t experience anything protuberating in the lower abdominal area, of course. But the desire for new computer components is a bit disturbing, and probably matches the expectations of bedding a lass in intensity.

This reminds me of an amusing anecdote back when I was living in a “student corridor.” (If you’re wondering why I don’t say dorm, it’s…well…because it’s not a dorm room. A student room here isn’t located on campus, for one thing, and it’s a complete 20 square meter flat with a shower and bathroom of its own. There’s a kitchen-and-TV-area which is shared by eight students in a corridor, though.) I was waiting for a delivery of new hardware; I think it was a graphics card (Geforce 2 MX) and a harddrive. My neighbour was also expecting new hardware, and we happened to receive our packages the very same day. Giddy like schoolboys (which we technically were), we skipped up the stairs to our corridor, grinning like morons all the time. This neighbour had a girl over, and she sighed at the sight of us:

“Computer nerds! Here’s a cute girl, but all you care about is your new toys! Do you really have your priorities straight?”

Of course we gave her sharp glances and told her to shut up - the computer components might have gotten upset otherwise. We cradled the hardware comfortingly for fifteen minutes anyway, just to be sure.

And now I’m thinking of going through this time of excitement again. This is the preliminary list of what I’m getting:

  • Core 2 Duo E6400 2.13 GHz. It’s not the best performance money can buy, but I think it’s pretty decent for the money.
  • Asus P5B motherboard. I like Asus, and this one has pretty much everything I could need except for firewire. But I really don’t have anything using firewire right now.
  • 2 GB of PC6400 DDR2 RAM.
  • MSI GeForce 7900GT Passive Cooling 256Mb. There are more impressive graphics cards available, but I’m fond of the idea of passive cooling on a pretty-high-end card.
  • Antec Case Perfomance One P180B. Looks pretty okay, and apparently it has good cooling capabilities. Might be useful with a passive graphics card.
  • Sound Blaster X-Fi Platinum. Most motherboards have built-in audio, but the latency for MIDI keyboards is horrible, and they’re just 16 bit (I think). This one comes with a remote as well!

And the rest of the small stuff that aren’t quite as important. Now, I’m sure someone started to wonder why I’m just getting good stuff instead of the best if I’m - to quote myself - stinky filthy rich. Well, I lied about that last part. I can afford this, but if I spend any more I’ll have to eat gruel for a month…or cut down on my alcohol consumption. Not gonna happen.

Considering the items above and with a budget along those lines: do you think that this is a decent computer setup? Can you suggest any alternative components? The things I’m most concerned with are the three Ps: price, performance and pnoise.

 

Application Responsiveness

Ξ September 19th, 2006 | → 0 Comments | ∇ Software Development |

Have you ever cursed at a GUI application? Have you ever found yourself waiting while your computer decides to do Other Things(TM) instead of responding to your frantic mouse clicks or keypresses? I sure have - and I’m afraid that I’m guilty of writing applications that can be unresponsive, myself. I found an article about this on DDJ that I found extremely interesting; I highly recommend that you read it if you work with GUIs. It’s nothing revolutionary, and the latter pages aren’t exactly my cup of tea, but the problem description along with the notes on Windows message handling made it worthwhile for me at least.

I’m a firm believer in Windows. Not because I think that it’s technically superior to Mac or Linux or Solaris or whatever; no, simply because the best applications are available for it, in my opinion. In case you’re a Linux fanatic: please, I don’t want to hear that there are technically and morally superior alternatives to the applications I use: ease-of-use is something I value, and so far Windows apps beat Linux ones hands down in that department. (I’m impressed by Mac, however, from the little I’ve seen. I’m sure I’ll get a Mac laptop sooner or later.)

But if there’s something that irritates me with Windows, it’s the fact that responsiveness can go down the drain when there’s, for example, a lot of I/O activity. As is described in the DDJ article, it seems to be extremely easy to make unresponsive Windows applications. All it takes is a programmer who decides that it’s unnecessary to separate a message handling/GUI thread from a processing one. Combine this with serial unprioritized processing of every message, and the recipy for user frustration is ready.

Now, there are a few different views one can have on this:

  1. Windows GUI and message handling is badly implemented, and allows stupid lockups. All of this should be handled with better message queues and a better system framework.
  2. Application programmers are lazy and/or incompetent; they don’t realize that they have to plan for all eventualities - this includes worst-case scenarios when it comes to responsiveness.
  3. Both of the above.

I’m the first to admit that programming for Windows can be a pain in the nether regions, but if I stand by my choice of OS and also make applications myself, I have no defence for my overly sloppy GUI programming so far!

 

Upgrading and Addictiveness

Ξ September 18th, 2006 | → 0 Comments | ∇ Games, Indie Games, Sheeplings |

At the end of 2005 I bought myself a used PlayStation 2, complete with some nice games like Dark Cloud and Gran Turismo 3. I played around with the games, decently amused for a while, until something struck me: I was getting entirely addicted to Gran Turismo 3. This was highly unexpected. I suck at driving games; I’ve never cared about cars; I don’t own a car - and so on. The only racing games I’ve liked are abstract or arcadey ones like Pro AM Racing, Death Rally, Rock ‘n Roll Racing and Need for Speed 2. Still, I found myself spending more and more time with GT3: I had a craving for the game. For a week or two I sat at work yearning to play more every day. I even decided to get myself a Mazda MX-5 soonish, just from playing this game.

This isn’t that weird in itself; I get addicted to interesting things pretty easily. But I decided to investigate it further this time. I started writing some notes on why I found GT3 so addictive, and what aspects of the game appealed to me. These are some of the things I came up with:

At first glance:

  • Main map
    Complex menus exist, but the first thing a user meets is a map, clearly showing the various options in an abstract manner. The user understands the concept of selecting a geographical place in which to perform an action better than if the various options were available from a menu.
  • Complete control
    Despite the simple map, there are detailed information and options available, as sub-options. The user’s starting situation also hints at control: a sum of money is placed in his hands, and it is up to the user himself to select a starting car. (This can also cause confusion. In a simulation game, focus is put on control; in a casual game, more focus ought to be put on ease of use. I.e., give a solid start position from which to jump into the game immediately.)
  • Several gameplay variants
    At the beginning, the user can select several things: buy a car and go race with it, finetune details about the car, change the looks of the car, study the cars which will be available later, examine the racing stages, undertake driving license tests, etc.

Main game:

  • Adrenaline
    The game is action-packed, and steadily increases in difficulty with faster car models available later. The computer-controlled cars ensures that the user always has a chance to not come last in the race; if the user falls behind, some of the trailing cars seem to slow down to give the user a chance. There is always a challenge, though: the leading cars do not seem to follow this rule.
  • Rewards
    Instant gratification is delivered. Winning a race results in money and/or bonuses. Completing a single driving license event results in a time to compete against and a trophy. Performing anything positive at all results in an added percentage of game completion. Interesting to note is that all races result in a monetary reward, even if the user comes last. It is always worthwhile to compete.

At this time I had gotten bored with taking notes; and my addiction was probably slowly fading away as well. I think I forgot to bring up the most important aspect that made the game so interesting to me: collecting stuff. I don’t think there’s anything that appeals more to me in a game than upgrading and collecting more stuff. How many times didn’t I go for 99 lives in Super Mario Bros. 3 just in order to have the maximum? How many times haven’t I played a dull game to the finish just in order to get the feeling that I have collected everything?

This extends to other areas as well, of course. Some years ago I made fan sites for Might and Magic 8 and 9 when they were released; I was extremely nitpicky, since I wanted my maps to show every little secret and every little feature. I also collect things in real life: old Swedish computer magazines, old games in general, music and so on. Before I had a hard disk crash I had an almost-complete mp3 collection of every NOFX song ever recorded (shh, don’t tell the RIAA; and I do own many CD’s with ‘em as well).

Anyway, there’s a reason for all this ranting about collecting things. I’m working on Sheeplings, trying to get a 16 level demo finished as soon as possible. I had planned to get it done in August, but Life(TM) got in the way for me and the artist. Now that work is on the way again, I’m looking over some design choices. There are lots of stages, and clearing a stage grants you a rank between 1 and 5. Previously I had implemented a level locking feature: in order to play level 10 you must have collected 10 rank points, for example.


Yeah, still just a sketch of the map, unfortunately.

Now I ask myself: why did I limit myself to that mechanism? Given my obvious tendency to collect and upgrade, there’s not a single reason why I don’t extend this a bit further, and let the player spend his points on unlocking levels and upgrading the dog!

I’ll have to think about a suitable interface for selecting upgrades, but the demo really ought to feature the possibility to unlock half the levels and upgrade the dog’s speed as well as his range.

 

I Don’t Get Jets ‘n Guns

Ξ September 15th, 2006 | → 2 Comments | ∇ Indie Games |

A while ago I tried a shoot ‘em up game called Jets ‘n Guns. It had received rave reviews and people in the independent game development scene seemed to have an endless supply of praise to lavish on it, so naturally I had high expectations for this game. I ended up being not-too-impressed and quickly forgot all about it. Yesterday I saw this fresh blog post offering a review of Jets ‘n Guns - and of course, it was once again filled with positive superlatives. I decided to give the game another try.

Here’s a chronological list of my thoughts:

  • Damn! I love this intro. The music rocks and the graphics are so pretty. Cheesy intro text followed by the thunderous bang when the halves of the title graphics bang together. The presentation is flawless, except for the fact that the menu is a bit subtle and to the right; this doesn’t feel intuitive to me. All in all, I’m definitely taking notes for how to make a good first impression.
  • I start the game on novice level, and I get a rather messy tutorial screen that I can’t be arsed with. Except for noting that the shop button is in the upper right.
  • I ented the shop and gawk at all the gadgets - and then I get a bit irritated at only having 30k credits, while the cheapest item is 35k. (Unless I missed something.) I understand the reason of giving the player something to look forward to, but I just get annoyed at being tempted into the shop at the beginning without the possibility to use it. I would’ve preferred to see that information after I’ve gained some more cash. Maybe I could have sold off some of the starting guns to buy something else, but I didn’t want to experiment with that. Ultimately, I prefer the old Dogs of War style: you start with (basically) no weapons and get more initial cash to use in the shopping screen. Or simply shove me into the game and show the extras after the first level.
  • Two thing annoy me with the shop screen: one is that when you move around your guns, you can’t drag and drop. The second is that there’s no leave-this-crap-and-get-me-to-the-action-instantly-button.

Then the actual game starts:

  • Wow. I can’t express how impressed I am with the music and the graphics. Everything’s so shiny. I want to learn how to do shiny graphics! The particle effects are marvellous, as well. And I want to make a guitar-driven techy tune like this! Oh wait - I’ve already done many of those. Unfortunately I can’t compete with the awesome Machinae Supremacy who made the music for this game.
  • I move the ship around a bit, and I don’t like the mouse control. I get the hang of it decently, but it still feels slow. Ironically, the speed is probably similar in my own Sheeplings game (which is in development and is also controlled by the mouse - see, I’m not just advocating keyboard control), but I think I have more acceleration on the main character. I want instant gratification and/or speed when I move about.
  • Speaking of instant gratification, there’s a lot of it! Everything shines and pulsates and explodes.
  • After five minutes of play, I’m simply not gripped. I’m ungripped. I’m in a state of non-grippage. I can’t dodge all the bullets, and I can’t shoot all the enemies. I feel dissatisfied with this starting level - or possibly with my own performance on it.
  • I die in a marvellous explosion that takes my breath away. (Well, not really. But I nod appreciatively in a mental fashion.)

That’s probably how it happened the first time I played the game, and I’m not more impressed this time. I don’t get the game, and I don’t get why I don’t get the game: I’ve played my share of R-Type, Gradius and heaps of shoot ‘em ups on the Amiga. (The C64 as well, but I didn’t like most of ‘em back then.) The PC as well: I loved Phobia II when I saw it, for example. In fact, I was so impressed by speed of the dynamic lighting in the game that I e-mailed the authors badgering them with technical questions. Hey, this was in ‘98 or something. 3D cards weren’t that common, and fast lighting routines didn’t grow on trees.

I started thinking about the different things in Jets ‘n Guns that didn’t work for me. One is the speed. Sure, other games are slow as well - Gradius moves at a snail’s pace before the first speed up. In Jets ‘n Guns I didn’t see any speed ups, though. Maybe that comes later, but it still put me off a bit.

Another thing which might well be related to the first one is the sheer amount of bullets and enemies which makes it impossible for me to shoot everything and avoid everything. Seriously, it’s just too much. And that’s something I think differs between the games I enjoy and Jets ‘n Guns: in the former, there’s often a veery simple beginning, with a single formation of enemies to take down. This I can handle. The amount of enemies in JnG, I can’t. It might simply be that my reactions have gotten too old these days.

All of this is very interesting to note; especially since my silly Mega Brain Splashing games use a similar tactic: overwhelm the player with bullets and fast adversaries. I did try to pace MBS 4 a bit better, but it still relies on an onslaught of foes. I’m definitely reconsidering my design choices for the next action game I make!

Note: if you should happen to check out the MBS 4 link above, please excuse the graphics and a few timing issues. I had to draw the stuff myself, and at the time I wrote the game I didn’t have a graphics card that could play the game at completely full speed. Yeah baby - I push the limits! …Or rather, I couldn’t afford regular hardware upgrades then.

 

Speaking of Introverts

Ξ September 13th, 2006 | → 1 Comments | ∇ Observations |

A while ago I mentioned something about introverts and how to care for them, and today I read a blog post about introverts and their behaviour at conferences and similar events. I might as well flog that ex-equestrian once again.

The link above brings up a few great points: for example, how conferences are the antithesis of the introvert. It also offer hints for introverts when it comes to surviving these extraordinarily extravagant extrovert events. But as I skimmed through the text, something struck me. There’s a link to a book called The Introvert Advantage, and I suspect that ideas and expressions like these originate from that book:

Remember that introversion does not mean that someone hates people; it means that they don’t get energized from interacting with other people like extroverts do. Instead, we get energized from quiet contemplation and internalization.

I’m most definitely an introvert, and I do agree with this description - but all of this sounds a bit too neat, in my once-again-not-that-humble-opinion. I agree that introverts, unlike extroverts, find social activities draining. But I get a bit suspicious when I see comments like these:

From what I understand, you’ll never get energy from extroverting, but you can make other extroverts feel more at ease.

I simply can’t imagine that being an introvert or extrovert is a genetically predetermined thing; and that in turn leads to my believing that these behaviours can change. Not easily, of course - they might even be practically impossible to affect for some people. But being introverted or extroverted isn’t just one or the other, as far as I see it. Since I haven’t read much about this issue, I ought to shut up now. But of course I won’t. Instead I’ll use myself as anecdotal evidence for my argument.

If the strictly extroverted/strictly introverted case is true it ought to indicate that if no external events have affected them, an extrovert always receives energy from others, while an introvert expends energy in the same situation. I can’t really say that this is true for me: I seem to recall many times when being alone in introspection haven’t energized me. And it’s not always a chore for me to be social: I can actually enjoy spending time with people, and feel refreshened by it. I prefer to view introversion and extroversion as a fuzzy state; an analog signal as opposed to a digital 0/1 state, to speak nerd.

The problem with using these as counter-arguments is that I can’t objectively analyze myself. The bad introspective periods might be due to depressions, and maybe I just go into extrovert mode and fool myself into thinking that I feel refreshed at other times. When I’ve been social for an extended period (weeks) and suddenly go cold turkey I often get angsty at the thought of being alone - that might be a sign of emotional exhaustion and energy depletion. Despite that, I ultimately believe that my introvert/extrovert behaviour can change.

Or maybe I just want to believe that I’m in control of myself, stubborn as I am.

 

Sonnets and Have I Thanked You for Your Time

Ξ September 11th, 2006 | → 4 Comments | ∇ Literature |

How many of you know what iambic pentameter is? Damn, that many… Well, this is for the few who haven’t encountered the beauty that is the English sonnet. First of all, here’s an example of a simple sonnet:

I gaze upon myself and Truth declared
That Time is a mistress, both cruel and vain
No other force can with her be compared
She brings me such joy and she brings me pain

I pray for moments when the light appears
Go swift I bid the clock within my sight
The hours make days and lonely days make years
They flow so slowly in the darkest night

Yes, Time she leaves so much to be endured
But all is forgotten with you beside
Of this, I pray, you must remain assured
For you, I’ll suffer and my time I’ll bide

A while for me the silver bells did chime
I ask you: have I thanked you for your time

This is a moping piece I wrote after a heart-wrenching break-up; in a bout of teen-like angst I tried to convince myself that the moments of bliss were worth the tearing pain. It was horribly incoherent earlier, so I cleaned it up a bit for clarity’s sake. What now? Hey, I know: let’s analyze it!

First of all, the theme is decent. The subject is love and time and yearning and all that jazz - an excellent starting point for a sonnet. You might note that Truth and Time are personifications as well; I don’t recall my literature classes all that well, but I think this is what Romantic poets often did. Wordsworth and Keats spring to mind; I think they often personified natural things like Death, Time, Love, Sun, Booze…okay, not the last one, although I’d wish it. Shakespeare often used personification as well, I think, and that’s why I chose to do the same in my sonnet - why not copy the master, after all?

Another thing to note is the structure. It is fourteen lines long, and follows a classical English sonnet rhyming scheme. In other words, I go by a normal abab cdcd efef gg rhyme; it would be interesting to experiment with a Spenserian scheme, but I fear that I’d have trouble with it. Spenserian sonnets use the rhyming scheme abab bcbc cdcd ee, and since it requires many rhyming words it places much higher demands for an extensive vocabulary.

If you look at the contents of the different parts you’ll note that the abab and cdcd parts are rather depressing and down-ish, while it ends on a high note. This is not a conventional way of structuring a Shakespearian sonnet, so I’m not copying that style completely. According to the link above, it seems that one professor compares “Shakespeare’s sonnets to an argument with three main points, each taking up one quatrain, and a counter to that argument or a conclusion to that argument in the ending couplet.” Instead, I chose to make the first two quatrains the argument which twists around in the third one: that’s where the happy thought arrives. It finally ends in a conclusion - one that is quite different from the beginning. (I can’t recall where I’ve seen examples of it, but I’m sure that other sonnets use this structure as well.)

But there’s more to an English sonnet. The meter, of course! Traditionally, iambic pentameter is used; this is a fancy word for describing lines that are ten syllables long, and have a da DUM da DUM (etc) stress formation. Pentameter indicates a meter with five feet per line, and iambic indicates that the feet are iambs. One iamb is two syllables in this case - da DUM. For example, the word compare forms an iamb: com- is unstressed and -pare is stressed.

If I use Wikipedia’s notation, this means that each line in an English sonnet ought to be like this:

 x   /     x   /    x   /     x   /   x  /
To strive, to seek, to find, and not to yield

For fun, I’ll add stress notations to my little sonnet and see how it looks.

x  /   x x   x /    x    /    x  /
I gaze upon myself and Truth declared
  x   /   x  x  /   x     x     /    x   /
That Time is a mistress, both cruel and vain
 x  / x    /    x   x    /  x   x  /
No other force can with her be compared
 x    /    x   x    /   x   x    /    x   /
She brings me such joy and she brings me pain

x   /   x   / x     x    x    /    x  /
I pray for moments when the light appears
 x   /   x  /   x    /    x  x  x   /
Go swift I bid the clock within my sight
 x   /     x    /    x   /  x   /    x    /
The hours make days and lonely days make years
 x    /   x    / x   x  x   /  x     /
They flow so slowly in the darkest night

 x    /    x    /    x   /   x  /  x  /
Yes, Time she leaves so much to be endured
 x   /   x  x  /  x   x    /   x  /
But all is forgotten with you beside
 x  /    x  /     x   x    x /    x /
Of this, I pray, you must remain assured
 x   /    x    / x    x   x  /    x    /
For you, I'll suffer and my time I'll bide

x   /    x  /   x   /  x   /     x   /
A while for me the silver bells did chime
x  /   x    x   x    /     x   /   x    /
I ask you: have I thanked you for your time

Meh. Just look at that! I’m not even close. One of the few lines that are in iambic pentameter is:

x   /    x  /   x   /  x   /     x   /
A while for me the silver bells did chime

But many lines seem to skip a stressed syllable here and there:

 x    /   x    / x   x  x   /  x     /
They flow so slowly in the darkest night

This works pretty well, actually; it still fits in with the stress pattern, and offers some variation. In other places I do stranger things, though:

 x  / x    /    x   x    /  x   x  /
No other force can with her be compared

In itself, this is pretty pleasant to read. It ends in a gallopping sense which is pretty cool; but it wreaks havok with the overall meter since these variations weren’t carefully planned; and the da da DUM is different form of iamb, on top of that.

Overall, this is a pretty awful sonnet. The vocabulary and meter is severely lacking; sure, Shakespeare himself wrote sonnets that definitely didn’t follow the iambic pentameter precisely. But he did it with extraordinary skill, a practiced and noble mind, and a god-like apprehension. (Yes, that was a weak attempt at humour; I’m sure you know your Hamlet.)

I’m glad that I’m better at writing code than writing sonnets.

 

New Sheeplings Map Sketch

Ξ September 8th, 2006 | → 0 Comments | ∇ Indie Games, Sheeplings |

Lately I’ve let my professional life get in the way of my personal projects, and the art guy has let his personal life get in the way of his work, so things have been quiet for some weeks. But finally there’s some progress:

What do you think? Eh? Eh? Okay, it’s not finished at all, but I really like the playful stillness of the map this time. And it has depth, as opposed to previously. It’s starting to look pretty decent, in my - for once - very humble opinion! Disregard the flag placements and stuff like that, by the way - I just switched the old map for the new sketch. And the stars are just tacky placeholders I drew; they’ll form the currency of the game.

Now I’d better get my thumb out of the stereotypical where-no-man-has-gone-before-place and get working on the playable demo which was supposed to be finished a month ago. After I’ve heard reactions to the gameplay of 12 levels or so, I can start thinking whether or not it’s worth getting art assets for completing the whole game; I would need a few new characters and some gameplay backgrounds for that - at the very least.

 

Next Page »

About

    Pretentious! Miro Karjalainen is a pretentious bastard with a background in punk rock, computer science, linguistics, embedded systems, game development and the noble art of drinking beer. E-mail: info@karjasoft.com

Admin Stuff