November 23, 2014

Concealed Intent Update


Have you heard of the sunken cost fallacy? It is where people base their decisions on historical costs rather than future benefits. It is logically incorrect as events or costs incurred previously are in the past and should not affect people’s next decisions. However, it is very common.

Right now, I may be falling foul of this fallacy, but I don’t care! I must finish Concealed Intent!

Work on the game is continuing. It has been just over 2 years of my life now, and I think it is finally nearing completion. To that end, I have set a deadline of the beginning of March next year. That is not a random date, it is when the Game Developer’s Conference is held, which I will attend. I still think that is an achievable date. Although when I look at the the screenshot from last week (above) I still see so many things that have yet to be done. It appears to be an ever expanding list of todo items, as finishing one task presents many previously unconsidered tasks! I have heard it said that no game is finished – they are all just abandoned when “good enough”!

Soon I will be ready for another round of testing. So if you have previously said you are interested, I hope to contact you, probably in the new year for some early beta testing (I’ll put you on the Concealed Intent mailing list).

As obscurity seems to be the greatest enemy of the indie game developer, I have also begun to get the good word out on Concealed Intent. There is a blog at Gamasutra and soon other places too. Plus many social media accounts as detailed below. If you have any other ideas where I should promote the game, please let me know!

Concealed Intent Contact Details:

November 11, 2014



Reading stories about the British government beginning to pay down some of its World War I debts reminded me of my old job. I know a few people who are probably quite happy this is finally happening. This is not because they believe the UK has too much debt and needs to pay it off, but because it will make their jobs just a little easier, as it would have for me five years ago.

The background is that the UK raised a very large amount of debt to pay for fighting WWI. Soon after the war was finished the debt was refinanced into “consols” (along with some older bonds). These consols are perpetual bonds (we used to call them “perps”) – a very rare form of debt where the original debt need never be paid back (it is the government’s choice). Instead they just pay interest for ever (“in perpetuality”), unlike normal government bonds which mature and the principal repaid after some set period of time (commonly 5, 10, or 20 years). Thanks to inflation and a low rate of interest, it has never been in the financial interest of the UK government to cancel their consols (and thus repay the principal) – it is very cheap debt. Presumably right now is the unusual occasion when interest rates are so low that paying off the consols makes sense (at least I hope so). Of course it is also good publicity for a government strongly associated with austerity to pay off such symbolic long-term debts.

These consols and other perps comprise a vanishingly small fraction of UK debt and an even smaller proportion of traded debt (as the debt holders don’t tend to sell them very often). Someone working in UK and European bonds could pretend they don’t exist, and 99% of the time this would not be a problem. Then there is the other 1% of the time. Perpetual bonds have a different set of calculations for working out their price and other maturity dependent values. When writing code for pricing and trading bonds, testing should include perps to check they are correctly handled. In the fast paced world of front-office IT, this extra checking is sometimes forgotten. Normally nothing untoward happened as a result. However, errors did occur, normally days after the code was released (as it takes that long for a perp transaction to occur). I was lucky enough never to have that particular problem while working in a bank, although I did something similar once with uncommon yield-quoted bonds and felt like an idiot for forgetting such instruments existed (but it never happened again – I always tested with them after that).

So congratulations to the technical people writing fixed income pricing and trading systems. With the consols gone there is failure point removed. Hopefully soon your code will be simpler and all the if (isPerp) { ... blocks can be deleted.

November 1, 2014



Playing Eve has really made me think about the financials of online gaming with regards to digital goods. Like most online games, Eve bans real money trading (RMT). That is, buy or selling of in-game items for real-world money is forbidden. The exception being that it is ok to buy PLEX (game time vouchers that can be used in-game) from Eve or approved affiliates. A non-approved reseller, Somer, was recently shutdown.

This intrigues me. It seems to me that real-world trading would make players more engaged in a game. Second Life made a virtue of RMT and didn’t seem to suffer ill affects from the policy (their problems seem to originate in being over-hyped). So why do nearly all MMOs ban the practice? Is it because the companies want to control the market for selling these goods themselves? Maybe partially, but having a resale value only increases the possible primary sale price and increases demand. I’m not sure this is the main reason. Perhaps there are legal issues? I’m no lawyer, so this is possible. An online investigation discovered another possible reason – avoiding professionals.

If it is possible to earn money from playing the game (through RMT), then some people may find that that playing intensively results in enough money to live (or thrive). This is definitely possible, even although the activity is banned, gold farming in many games is profitable enough to make a living. The now closed Diablo 3 auction house suffered a similar problem. Some players acquired huge amount of loot and then sold it so cheaply that other players without the same interest in grinding would just buy it from them.

The problem seems to originate in the standard mechanics of such games. In-game rewards come from endlessly repeatable activities – usually as loot. Why get rewards for killing creatures? Why do those creatures respawn over and over again? Why do the creatures have all this great stuff on them (instead of leaving it at home) and why don’t they use it? In some games, why can players carry so much? It is because these loot-based rewards promote people playing – perform an action, get a reward. Companies that produce these games want to discourage professionalism so other players have a chance to partake in this gamification. Introducing scarcity by limiting the spawning of enemies would make the situation worse as this would make the resulting rewards even more valuable.

To have RMT and reduce professionalism, these games would need to stop repetition of gameplay as the basis for rewards – like Minecraft. Or, stop repetition of the core gameplay, by perhaps time-limiting players (but then a pro might have many characters or a whole team). Or, co-opt the professionals’ activities into creating content for other players. This last options seems the best, but is it possible or even desirable? Eve manages it a little with its null sec sovereignity and corporations, but at the expense of large-scale player-vs-player gameplay (which brings its own problems). I suspect the far easier option is to just ban RMT.

October 30, 2014

Slowing Down


Recently I had a very short debate with an old friend. We used to debate economics and politics in high school, despite being at different schools. Most of these debates took place on the walk from my place to the nearest TimeZone (an 80’s gaming arcade). The chats were always friendly, but we rarely agreed. Over 20 years later we met up again, and our views have shifted somewhat, but we still don’t agree. He emailed me a long treatise from the web about his point of view. I sent back a critique. I thought, even hoped, that might be the end of it as I lacked time to continue a long debate. I needn’t have worried his reply was a statement of disagreement and some valid points. I replied agreeing we disagreed on the basic axiomatic points of the argument and largely left it at that.

Someone is wrong

If a longer reply arrived attempting initiate a full debate I had planned a slightly different response, basically apologising but refusing to engage. Not because the debate would be uninteresting. Quite the opposite – this friend’s viewpoint is quite dissimilar from mine and not something I come across normally. Not because the argument would become uncivil. Our conversations never got heated before, I don’t see why they would this time. It is because I don’t have the mental energy for a proper discussion.

I don’t think I’m as mentally fast as I used to be. Or perhaps I’m more realistic about my learning abilities. Previously I seemed able to pick up new skills, technology or understand systems in a matter of days without effort and while doing several other things at the same time. Or at least I believed I could, maybe I was just arrogant. Now, if attempted under similar conditions, mastering something new takes a little longer and requires more attention.

However, I do not think my productivity has slipped (yet). As my natural mental speed slowed it has been compensated by an increase in experience and focus. I have seen studies suggesting one’s mental faculties are at their peak in the early 20’s and it is all downhill from there. My peak productivity was in my early 30’s, and it hasn’t declined much since then. The difference is that I’m aware of having to concentrate on the task at hand more intensely and that my memory of previous similar work situations helps me avoid wrong paths. Or, perhaps I’m still arrogant.

Right now, Concealed Intent is taking up nearly all of my thoughts. I need all the focus and concentration (and experience) I can muster to complete it in a reasonable timeframe. Just the initial reply to my friend’s website took over a work day. Time I can’t afford at the moment – I’m not able to easily split my attention. So I won’t. Debates will have to wait.

October 18, 2014

Bank Transfer Errors

Tags: ,

At least in the UK, it is often best to pay money to people via bank transfer. This is the process where the payer enters the bank account number of the payee into some system and then the money is moved directly from bank account to bank account. It is easy and costs nothing (in the UK). I used to use it all the time for paying rent and similar bills.

It is surprising to hear that errors regularly occur in this process. People type in an incorrect bank account number and so the wrong person receives the money. Obviously in some distress, the payer contacts the bank to fix the problem, but the bank doesn’t see it as their problem. Pushing or getting the media involved often gets the required results (see here, here, here and many more online stories).

I’m not surprised people type the account number incorrectly; that is always going to happen. I’m surprised that such an error results in a valid bank account. If the bank account number included a checksum, then an incorrectly transcribed number is unlikely to still be valid. Credit cards use a checksum algorithm and this is why when you type one incorrectly the response is “invalid card number” rather than the wrong account being charged. However, bank account numbers seem to rarely use this simple error-checking technology (codes by country are listed here). Why not? Perhaps when the bank account system was established many decades ago, checksums were not seem as important. Either because there was a person (the local bank manager) in the loop to double check the numbers, or because checksums were too computationally costly (especially if humans had to do the calculation themselves as computers weren’t available). Of course now people use the Internet to make transfers and the whole process is performed by computers without human interference, and the cost of using checksums is miniscule on even relatively old processors.

Banks could add checksums now, placing an optional extra character to the end of bank account numbers (several countries have done this). In the UK this would be a huge act of customer service. However, from experience I would doubt the banks interest in serving their customers. At the moment any errors cost the banks little and changing the system would be expensive. The core computer programs handling bank accounts and transfers between them are ancient COBOL programs (at least at the bank where I worked). Rules like the number of digits in a bank account are hardcoded and changing them would cascade through various systems. Testing the change would be a massive task in itself. I can’t imagine any bank voluntarily undertaking such a project – especially as most banks are determined to reduced IT costs. Too bad for bank customers.