Game Design, Programming and running a one-man games business…

Identifying profitable ads

I have a problem. It’s the same problem most people selling stuff have. I cannot be sure that my adverts actually work. I can be *pretty* sure they do, but I really would benefit from some hard statistical data. Using technical means to track visitors and sales with cookies has failed me. I tried the google ecommerce tracking stuff, but frankly it was chaos.

One method, used in the newspaper industry, is to use coupons. You print a 10% off coupon on the advert, and then every customer who uses the coupon must have seen the ad (directly or indirectly). This could work, but of course it relies on people actually using the coupon. Because game demos are generally tried, and people play them for hours, if not days, the chances are people forget all about the coupon when buying. I suspect this method is as leaky as any other.

I could mitigate that by removing the game demo link entirely.  This is something I have never done, and am not keen on, but it would be possible.

Another method could involve having a special version of the demo which writes a file to disk. When the full game is first run, it could check for that file, and if found, report to my server that an ad-driven sale took place. Ideally, the demo installer would have the ad-click referer embedded in it somewhere, but at this point things start to get uber-involved.

I’m very interested to know other peoples experiences and tricks. How do you know whether an ad campaign, or a website review or link, or other traffic source is actually generating sales?

No internet day. How did you do?

Me? I failed. But to be honest, it was an insane demand for me to go 24 hours. I did go the first half of the day without problems, but then I gave in and plugged my router back in. However, I hardly used the net for the rest of the day, and didn’t bother with instant messaging, any forums, or any non-urgent email.

So it was a partial success in those terms.

However, in productivity terms, it was pretty awesome. I got way more done in the first 3 hours of the day than I normally would. The fact that I had no email to answer,l share prices to check, sales to analyse, or  forum discussions / twitter chat to think about kept my mind 100% focused on some particularly evil bugs and getting some new features into the mystery next game.

What is truly sad, is how when I did relent and checked news sites, forums, twitter etc…. I hadn’t really missed much. There had not been any major events that I was missing out on, I just got to read a few emails 6 hours later than usual. Given the pretty significant boost in my productivity, i think this shows there is something in this.

As some have noticed, my self-declared no-inetrnet day also took out amazon and the PS3 network. Such is my POWER.

I think what I may do is try to implement no-internet mornings on Monday-Friday, when I am at my most productive. This is certainly worth an experiment. On the downside, that means American customers emailing me while I’m asleep get their replies 6 hours later, but they are asleep till then anyway.

I’m at the ‘proper production’ stage in my next game, which is no longer code-named ‘LB’. It might be code named ‘GTB’, or ‘OTT’ or something else. I haven’t decided 100% yet. Proper production is when I’m putting final art assets into the game, and coding big chunks of it. It’s too late for major design changes, but releasing screenshots is still a long way off.

 

Happy or unhappy gamers

Business innovation and quality thrives on feedback, and messages. Capitalism is basically just a system a signals from consumers to producers, to optimise production processes. Generally, capitalism works on the crude buy/don’t buy and price systems. If your pies taste crap, sales fall. If you still sell pies at £10 each, your pies kick-ass. etc…

The problem is, unless there is constant iteration of new products, or constant price tweaking, it’s tough to get decent feedback on products over short periods. The signal is binary, either buy, or don’t buy. Cancel, or renew.

Games, especially online-games have far better possibilities for sending signals back to their makers. They generally don’t bother, but they could do. Gratuitous Space Battles attempted this is a fairly crude way, with challenges. At the end of playign a challenge, you could choose to rank that challenge for both quality and difficulty. Other players, can sort challenges by those criteria, and hopefully the best challenges rise to the top. Obviously the idea was that new players of the game would choose a ‘fun’ challenge, rather than randomly ending up playing against a hardcore, spammy or even cheating fleet.

That’s not bad, but it could go much better. I know if someone rates a challenge as difficult, and high quality, but do I know if they really enjoyed it? Maybe the challenge was fun, but the games performance was bad, or they thought the enemy fleets ships looked crap, or there is something else that is suboptimal. Ideally, I’d be able to look at a dashboard right now, and see 100 people are playing GSB, 64 of them are loving it, 12 are frustrated, 7 are bored etc…

Games don’t ask for feedback, but they should do. Would you reply if they did? If, as the next battle was loading in Battlefield 3, it asked you to rate that last game, by 4 or 5 different criteria, would you do it? Would you do it if it happened as you went to quit the game? ( I suspect not). Would you do it if there was some sort of reward (extra XP or whatever…).

I think this is definitely worth an experiment, at some point. If everyone thought that GSB was awesome, but the challenge browser was crap, I’d like stats on that, not just relying on the self-selecting sample of forum posters. (I know… people filling out surveys self select too).

You wouldn’t start from here

So many programming, and technical things are bodged, not just in games or software, but everywhere, because the ideal best-case academic method is totally useless given that we are always working from an imperfect base.

The railway network, telephone infrastructure, road network, sewers and god-knows-what-else here in England are all rubbish. Why? Because we got these things very early in history due to being economically and technologically quite advanced, esp during victorian times. As a result, as pioneers, we have what I guess is ‘first-mover disadvantage’. Our countries infrastructure is like excite vs today’s google :D

I definitely find this problem in my own code, my own methods of working etc. I have an engine, it doesn’t really have a name, the folder is called ‘Positech Engine’. I save my imagination for the actual game… The engine isn’t like the unreal engine or other fully-featured thing, but it has all my library code which handles stuff like directinput, rendering, vertex buffer and texture management, file loading and so on. Bizzarely, 90% of the my UI code is NOT in the library, I copy it to each new game. How sucky.

Not only that, but I have a bunch of long standing balls-ups that I am now stuck with, pending a major rewrite for the next game. I should have done them for this one, really… Here are the ones that spring to mind.

STRINGS: I can’t decide if I like char* buffers or std::string. I pretty much use std::string, but because historically I know functions like sprintf and strcpy really well, I still use them in places. As a result some of my library stuff is designed to accept either std::string or char* as input. I can type ‘.c_str()’ so fast now it’s scary

UNICODE: I don’t use unicode. This means a Japanese GSB is not going to happen any time soon. I should probably use unicode, but I don’t

TOOLTIPS: I know this seems minor, but my tooltip class isn’t integrated with my window class. This means if I create a new window, and it needs a tooltip, I need to add a tooltip object, and call a destructor, and make it respond to the mouse and get drawn. This sucks. I should have defaulted to all windows having tooltip functionality

BUTTONS: Buttons should be a subset of windows, but mine aren’t. Both windows and buttons at least derive from the same class, but a window thus now derives from a buttonlist. That means a window has a list of buttons, and a list of child windows, and they are handled seperately. THIS SUCKS.

I know this all sounds crap, and if you are a coder writing a new engine, or a student, it sounds like I’m a n00b, but the thing is, you wouldn’t start from here. Unfortunately I have, and re-using my existing engine saves me hundreds if not thousands of hours for each game, so it’s tough to make a business case for changing a lot of this. Both big studios I worked on had code that was at least as messy as this, so I know it’s not just me…

Next game I’ll fix it all, sure…   maybe…

No Internet Day

How productive would you be if you didn’t have

  • Facebook
  • Twitter
  • Email
  • RSS readers
  • Instant messengers
  • *Insert name of timewasting website here*

I reckon VERY productive. I get increasingly distracted by this stuff myself. So I propose a solution. Let’s make a pledge, readers of this humble blog. let us declare next thursday (21st April) as NO INTERNET DAY. On the day before, you will unplug your router/modem, and it will not be touched for the whole of NO INTERNET DAY, and can be re-connected on the friday morning.

Whether you are a software developer like me, or a student, or anyone who doesn’t 100% rely on day to day usage of teh web for your work, you are likely to get more done on NO INTERNET DAY than a typical working day. What have we got to lose? If you are going to join me in this experiment, reply, and say what you do for a living that you hope to be more productive at. or maybe you will be doing it to spend mroe time with pets/children/significant others. Then on the friday we can all see how we did, and how long it took before you gave up :D

Spread the word, lets see how many people can go cold turky webwise on April 21st