Pi On The Wall – wall mounted home server – Part 2: Diet Pi

This is Part 2 of a series of blogs regarding the development of a wall-mounted server based on the Raspberry Pi, featuring WiFi and a colour touchscreen. Part 1 can be found here.

case_dims

The enclosure I’m using, a re-purposed room thermostat casing, places some very tight constraints on the dimensions of the Raspberry Pi and PiTFT board.The plastic used in the case is quite sturdy, and is at least 2mm in thickness. Therefore the real inner depth of the case is about 12mm. As for the width of the Pi, we need to shave at least 4mm from the side. The Pi itself is 86mm wide, same with the PiTFT board, so we will need to find a way of making it closer to 82mm.
pitftThe board interconnect that comes with the PiTFT is a tall terminal connector. It is immediately ruled out for use, as it increases the depth of the assembly to well over an inch. Without using that, and bending the pins to grip the I/O on the PiTFT, the depth from SD card housing to top of the TFT is just over 20mm. Still far too much.
pi_identThe main space-wasters on the Pi are easy to identify. The composite out, audio out, USB, HDMI, and the camera and display interfaces all can be removed. The tallest of these, the Composite out, measures over 11mm alone. The only one we need to use is USB, and we can add terminals to enable an off-board connector for that. All the others need to go.

pi_componentsThe composite, audio and USB jacks were relatively easy to remove. Solder sucker & solder wick with some wiggling did the trick. The HDMI socket was another matter entirely. There were some components near the socket I didn’t want to destroy, and one of the soldered through-hole supports wouldn’t budge. Butchery was resorted to, using cutters to chip away at the metal surround and later the plastic. The connector itself is surface mount, and came off fairly easily after that. Once destroyed, the through hole-support gave in and came out with more wiggling. I apologise to all who were involved in designing the Pi for the following image.
pi_nohdmiSome PCB pads came off at the HDMI socket, but I was not concerned, as this was destructive change anyway. The camera and display interface connectors I simply cut away with pliers, again, a few pads came off.
powerschematicC6 is the large silver capacitor near the micro usb socket. This is the last item in the way on the top of the board, and as you can see from the Raspberry Pi schematic, is just a smoothing capactor for the power. It can be safely removed and if needed, put off-board in seperate power circuitry. I’ve identified D17, a protection diode on the opposite side of the PCB, as we will come back to this later. The board ends up incredibly bare and on the top side it’s only a few millimeters tall.
pi_bareAfter this I put a 90 degree set of terminal pins in the USB location so we can put the socket off-board. If we knew everything was going to work at this point the easiest thing to do would be to solder the PiTFT board directly to the GPIO pins of the PI. However, I wanted to remove the Pi from the TFT board to adjust things in future, so had to come up with a solution without using standard terminal connectors, which are too tall. I decided to try taking a DIP socket and using that, as they are only 3mm tall. The first two pins are not required, so sawing a 24-pin socket in half, inverting it for a flush fit and filing down worked exceptionally well.

interconnect_bodgeWith this the board is just over 14mm from top of the touchscreen to the bottom of the SD card holder.

interconnect_heightThe next thing I attempted was to cut around 5mm from the Pi and PiTFT PCBs closest to where the USB port used to be. Around there, especially on the model A, it’s sparce.

Boardlayout_cutraspberry_pi_pitftdiagramThe PiTFT is round the opposite way as the Pi, as you can see, it’s simply the adafruit logo mask and there are no important traces to avoid. I just dived right in, marked a line with a stanley knife and got out the hacksaw. After some effort and sanding with a rotary tool it came out pretty well.

pi_cutThe PCBs now fit well into the case in terms of width and length, but depth is still a problem. We need to hit 12mm at minimum. The only thing to now do is relocate the SD card socket from the bottom of the board to the space on top where the Display Interface used to be, on top of the logo to the left of the SoC.

pi_sd_depth_ Desoldering the SD card holder was a bit more nasty than I’d imagined. I only have an iron, solder sucker and some wick. Ideally I’d have the correct tools, but for this I resorted to the ‘pull enamelled wire through the joint as it is molten’ trick, which worked in this case. If you use this method watch out as the pins themselves can come out from the plastic housing very easily.

wire_sm_desolderAfter it was removed, I used 0.2mm enamelled copper wire soldered to the existing pads, through the hole in the board to the front side and soldered direct to the holder. It wasn’t very well done, I tried to keep the lengths of wire of a similar length but it shouldn’t matter too much. The main thing is making sure you have a good clean solder joint and you remove the enamel at the right places. Scraping with side cutters and tinning with too much solder (so much that you waste some) usually does the trick.

pi_sdAn interesting thing to note is that the card detect and write protect switches do not seem to have an effect at runtime. The schematic shows the write protect pins are unconnected, so that’s expected. The card detect pins are connected to the SoC. My plan was just to short the pads on the underside to save soldering 2 wires that don’t really matter. There are two very small SMD components where the SD card holder now sits (C1 & C5), I made tiny holes in the underside plastic of the holder so it can be mounted flush on the PCB without those components being damaged.

Additionally, I removed D17. This protection diode will be mounted off-board when the power system is looked at along with (potentially) C6 that we removed earlier. Note D17 and C6 technically are not needed to run the board, they are for protection, so I can still test via the microUSB socket as in the picture below.

slim_piAt the moment i’m measuring just over 10mm to the end of the terminal pins on the underside of the RPi board. Of course there are some surface mount components also on the back, but they don’t change depth much. The D17 diode was the biggest one, and we moved it off-board. I’m going to grind the back of the GPIO pins off a bit just to save some more space, but I think there is no need to go further than 10mm. There is still space between the Pi and PiTFT boards for the USB terminal connector to carry a socket off-board, and also something I’m looking at is heat dissipation from the SoC and whether I need to increase the surface area for some better passive cooling.

The final dimensions of the unit assembled is 80mm x 56mm x 10.5mm.

As for the Pi On The Wall project, the next steps are to sort the casing out with the tactile switches matching the switches on the PiTFT, and also affixing the USB socket in the case so a mini USB WiFi stick is flush with the exterior. After that, I’ll be running some power consumption tests and heat dissipation tests. I want this to be extremely low power, and will experiment with replacing the regulators, turning off services, possibly even running the whole board off 3.3v instead of 5v, which is said to be possible.

If you have got to this point in the post, I hope you found it interesting. If you have any questions, please either comment here or message me directly on twitter @domipheus.

Update: Thanks for all the feedback! Here is a taste of things to come in the case fitting:

pi_casefitpitweet(used a hub in the usb socket to type for this shot, obviously the idea is once done I’ll make some specialized frontend so that’s not needed, and all config done over ssh)

All pictures of the build and more can be seen here on Flickr.

Pi On The Wall – wall mounted home server – Part 1: Introduction

I’ve been working away at an idea I had that seemed too good to sit on, so jumped at it. It’s easier to explain the purpose in an image:

PiOnTheWall I’ve been meaning to set up my Raspberry Pi to monitor the Heatmiser WiFi thermostat I use, as well as being a small home server. I have a standard wall mount plate free in the hall of our house, the sort of thing the above would mount into and be wired direct to mains for 24/7 operation. I thought it would be cool to take a cheap thermostat, gut it, and replace it’s internals with Pi goodness – throwing in a colour touchscreen for good measure.

The Pi On The Wall was born.

41zJZupMBKLI discovered a cheap thermostat on Amazon which had mains power to 5v built in. The power unit may need to be replaced which is something I’ll write about later, but as you can see there is not much space in here for a Raspberry Pi and associated TFT screen, WiFi stick, SD card, etc.

thecasecase_dims There will be quite a bit of customization going on. The Pi board itself doesnt fit in here for length, let alone it plus the standard PiTFT mount for depth.

erm_deepThat’s not going to look good on the wall.

I’m quite progressed with this project as I type this, and will post a few updates shortly. Spoilers: In total, the current depth of the Pi + TFT is currently 14mm. This is after some serious hacking at the board itself. It’s not pretty, but it’s working. There are some fun hacks in here to share!

 [Part 2 can be found here - showing how the Pi + TFT slims down to only 10mm!]

To be continued… if you are too impatient for the next part, i’ll be updating the following flickr album with various shots, and posting on my @domipheus twitter.

Cheap 1.8″ SPI 128×160 TFT Module – Arduino wiring!

Still working on my bench power supply, and wanted to move from my 16×2 retro LCD to something a bit more funky, and found these which use the Samsung S6D02A1 chip.

1.8 Inch Serial SPI TFT LCD Display Module With Power IC SD Socket

At the time of writing, you can get these from a UK warehouse for £3.30 shipped for a single unit. That’s awesome. However, the comments were quite bad and many people had issues with them – no matter how it was wired an Arduino wouldn’t drive it.

After lots of trial and error and searching all over, I discovered the secret hack: put 1K resistors between all I/O pins, and Vcc is +5v. Basically, I/O is 3.3v – the SD card on the back has resistors by the looks of it, but not the TFT. It’s cheap.

1_8_TFTAfter that, it’s working very well with an arduino nano using the library from ‘zigwart’ which is available on github. A prerequisite of this library is having the Adafruit GFX library installed.

An example clock and a test demo is included. For just over £3 I’m very happy, and it will nicely fit within my bench power supply design.

tft_close

Project BoilerLog: SD Datalogger with RTC

I needed to monitor my boilers activity as I thought something may not be quite right about its activity – gas usage is fairly high and our thermostat is fairly low – only 18 degrees C.

Our thermostat is programmed to become active twice a day, in the morning, and then in the late afternoon to evening. During this time the thermostat switches a wire to live (230v) to signal heat requested to the boiler, which is an older and not very efficient model.

I decided to build a quick and dirty datalogger based on an Arduino Nano and an SD card interface. There are various examples on the official Arduino portal about creating an SD card datalogger in this configuration. I realised however for my data to mean anything I’d need to have reliable timekeeping, which means I need to integrate a Real Time Clock (RTC) into the design.

schematic

I bought an SD card interface off ebay for £2 shipped which operates over SPI. I also bought an RTC for £4 shipped. It uses the popular DS1307 chip and is marketed as “Tiny RTC”. It operates over I2C and has a rechargable LIR2032 battery with charge circuit. There have been issues with this board, mainly due to people fitting the board with CR2032 batteries which is not a good thing to do. Ensure you use a LIR2032!

Using already existing SD and RTC libraries, the code was easy to get running quickly. I simply analogRead 4 inputs and log the raw values. An interesting point is that, every second, I open a file on the SD card, append to it, and close it. This is not efficient and probably not good for the SD card either, but for me I wanted to be able to power off and grab the data off the SD card quickly and reliably so opening/closing and not buffering is the best bet in my view. My schematics and firmware are available on github.

As for sensors, I had 3 10K thermistors and a 10K LDR. The LDR is placed over the burner on LED of the boiler, one thermistor for ambient, and the other two reading the flow and return pipes to the radiators via some good quality thermal paste for heat conductivity.

Assembled device made up of RTC, Arduino, SD Card interface and sensor interface.The device fully assembled with help of a small breadboard for the Arduino. Power is via the USB cable, which is connected to a high-quality USB power adapter.

The little board to the far right is simply a sensor breakout board with 4 10K resistors and +5V, GND, sense and then the sensor connectors. 3 of the sensor connectors are disconnected in the image. The sense values of the thermistors were quite disappointing resolution wise when I reviewed the logs, but they did the job.

The datalogger ran for several days unattended and I was happy to find a log file for each day saved to the SD card for me to analyze. I created a small c# application that gave me instant stats on the days boiler running, and also output a smaller selection of datapoints as to plot an easy to view chart of activity.

An average day resulted in the following:

dataAnd the output from my small c# program:

Burn: 06:41:38->07:28:41, Duration: 00:47:03
Burn: 07:32:54->07:38:52, Duration: 00:05:58
Burn: 07:43:15->07:48:27, Duration: 00:05:12
Burn: 07:52:47->07:57:23, Duration: 00:04:36
Burn: 08:01:27->08:05:17, Duration: 00:03:50
Burn: 08:09:15->08:12:31, Duration: 00:03:16
Burn: 08:16:03->08:18:57, Duration: 00:02:54
Burn: 08:22:30->08:25:15, Duration: 00:02:45
Burn: 08:28:53->08:31:31, Duration: 00:02:38
Burn: 08:35:11->08:37:43, Duration: 00:02:32
Burn: 08:41:23->08:43:52, Duration: 00:02:29
Burn: 15:31:23->15:53:45, Duration: 00:22:22
Burn: 15:58:05->16:03:44, Duration: 00:05:39
Burn: 16:08:15->16:13:22, Duration: 00:05:07
Burn: 16:17:55->16:22:32, Duration: 00:04:37
Burn: 16:27:01->16:31:23, Duration: 00:04:22
Burn: 16:35:41->16:39:25, Duration: 00:03:44
Burn: 16:43:34->16:46:46, Duration: 00:03:12
Burn: 16:50:51->16:53:47, Duration: 00:02:56
Burn: 18:11:29->18:15:25, Duration: 00:03:56
Burn: 18:20:41->18:22:55, Duration: 00:02:14
Burn: 18:31:10->18:33:12, Duration: 00:02:02
Burn: 18:48:38->18:50:36, Duration: 00:01:58
Burn: 19:51:10->20:09:02, Duration: 00:17:52
Burn: 20:13:25->20:18:05, Duration: 00:04:40
Burn: 20:22:37->20:23:30, Duration: 00:00:53
Time boiler burning: 02:48:47
Num of boiler fireups:26
Shortest time on: 00:00:53 at 20:22:37

So instantly I see a problem, which is oscillation of the boiler firing up for a short period and then turning off, only to turn on a short time later. It turns out our ‘fancy’ hall thermostat, despite looking the business is fairly poor in terms of features. It’s switching differential is so small it’s acting like it simply adheres to the following:

if TEMP > SET_TEMP then boiler_off() else boiler_on()

There does seem to be around 0.5C of differential but it’s not enough. If I could adjust this on the thermostat it would make things much better.

So I’m looking at a new thermostat and think Ive got a winner for that, which I may post up about next month.

While I was at it, I wanted to test the idea that keeping your boiler switched on 24/7 actually is more economic. So I tried it. This is on a day fairly similar in terms of outside temperature as the last graph.

boiler data for 24/7 runThe output from the analyzer:

Burn: 01:56:53->02:15:20, Duration: 00:18:27
Burn: 02:19:44->02:20:57, Duration: 00:01:13
Burn: 04:28:06->04:46:18, Duration: 00:18:12
Burn: 06:41:03->07:19:44, Duration: 00:38:41
Burn: 09:20:03->09:38:32, Duration: 00:18:29
Burn: 12:19:15->12:39:08, Duration: 00:19:53
Burn: 14:32:28->14:50:43, Duration: 00:18:15
Burn: 16:28:57->16:48:10, Duration: 00:19:13
Burn: 16:52:34->16:55:47, Duration: 00:03:13
Burn: 18:10:55->18:14:17, Duration: 00:03:22
Burn: 18:23:24->18:25:27, Duration: 00:02:03
Burn: 18:28:16->18:46:09, Duration: 00:17:53
Burn: 18:50:26->18:55:25, Duration: 00:04:59
Burn: 18:59:56->19:04:08, Duration: 00:04:12
Burn: 21:58:52->22:18:50, Duration: 00:19:58
Burn: 22:23:19->22:23:26, Duration: 00:00:07
Time boiler burning: 03:28:10
Num of boiler fireups:16

I think it’s quite clear cut that for my boiler it is not more economic, the boiler running for an additional 40 minutes during the whole day. Interesting though there are much less oscillation events, and therefore less boiler fireups.

Hope this post is of use to someone. The full schematic and firmware for the datalogger is available over at github. Let me know if you use any of it!

Update: Something is going funky between 10 and 11am each day, which you can see on the graphs as a spike in flow temp and a drastic drop in return. I don’t have a clue what it is. The boiler isn’t on, could be something to do with my unvented hot water cylinder.

Electronics

Before I wrote my first program, I built pysical things. Lego helecopters with improvised rotors driven by the motor of a broken RC car and a 9v battery. I collected circuit boards, opened anything I could (with no concern for my own safety) and ‘repaired’ things that had obvious  issues with it, like dodgy contacts/wiring/soldering. I think I was about 9 or 10 years old at this point. I also had various electronics kits, the ones that had little spring contacts for wiring things up, and came with big thick 200-page manuals full of schematics.

Then we got a computer at home, and it all, kinda, stopped.

I’ve always wanted to get back into electronics. I know and remember the ‘trivial basics’ but never got into it seriously, computers and software took my attention away.

But, then I found Dave Jones and the EEVblog, and it’s all come back to me. I’m building an electronics lab at home, and already have my first project in progress: a bench power supply, which i’m told is one of several ‘musts’ for building when starting your own lab – which is good!

I’ll be posting updates on the lab and also the power supply as the come!

A change

So…  all previous posts have really been about me making some games in my spare time. There have been no real updates in a very long time, and thats because basically: the game failed massively.

I’d have hoped there would be enough sales to pay for the web hosting for leaderboards, replays, and the SSL certificate. Over a year I couldn’t even pay for the SSL certificate! So yeah, it really didn’t work. So instead, i’m simply going to use this to post things that interest me, current projects, etc. It’s quite a change, as I’m not going to start with software, which is what I’ve been doing for a very long time.

Also, I’m not paying much attention to the quality of posts, more making sure the content is interesting. Hopefully, that is.

Gears of Glory: Apex Ace – Singleplayer Game Modes

There has been much discussion over the past view days about the game modes planned for Gears of Glory: Apex Ace, especially given the ‘never seen before‘ time-shifted multiplayer of a racing game featured during this weeks Apple iPhone 5 keynote.

I’m not going to go into detail of what I think about the feature, or what past games had interactive ghosts/replays and how the affected gameplay. This post is about what Gears of Glory: Apex Ace offers.

The open beta releasing super-soon comes with several race modes:

Season Tier time-trial
In this mode, players race all of the season circuits. As they race, setting best laps and finding better lines to rise in the leaderboards, opponents appear alongside the players own best lap replay.

This is the first part of the Dynamic Opponent System at work – the opponent you face is usually the person directly above you in the leaderboards. As you progress, new opponents appear – and this happens on the fly.

So regardless of where you are, the singleplayer element revolves around racing other player laps, which have been raced at any time, and means you are always competing.

Player Race
This mode is very simple – when you view the Season Tier leaderboards, you can browse the ranking, and race any lap on the boards. Any. If your friend is above you in the standings and you just can’t find the time to beat them via the season time-trial, race directly against them and check out where they find time on the lap. If your friend is below you, view his lap and offer advice of where he can improve.

Player Challenge
This mode is very difficult, and successful players receive many trophies (the XP/score unit in the game). It is exactly as the Player race, apart from the fact the replay you are racing against is not a ghost but an interactive, collidable, entity.

To beat their lap, you need to find and maintain space to overtake. You can jostle, however, the game does not let you influence the lap time of the other player. If you try to ram, or jostle to an unacceptable level, you will crash and be left with a bad lap. Because of the trophy reward associated with this, only players around or above your current ranking can be raced. You cannot play the system by challenging the player last on the boards.

The three modes above is what’s shipping in the open beta. The next game mode is something I am quite excited about, and extends the dynamic opponents system.

Championship mode
In this mode, it is set out similar to racing games players already understand – circuits raced in a calendar style, progressing to different classes of car and larger, more challenging circuits. However, Gears of Glory: Apex Ace does not have different classes of car – only different classes of racers.

As you race, your position in the rankings is again measured. A grid of opponents is created, dynamically, from other players on the leaderboards around your position. Depending on the difficulty you play at, these players may be far ahead of you in the standings, or directly around you. You race a series of laps, but not in a time trial fashion – this is your standard, lap-bound, first to the finish race. You must maintain competitive, consistent lap times to progress. As you progress, the field around you changes to reflect your standings, making you compete against a different class of racer.

There is no AI at all in this mode. There is no AI in the game at all. If you see another racecar in Gears of Glory: Apex Ace, it is another player. That player does not need to be online for you to race their laps. Their best laps are all stored and retrieved from the OnlineServices.

I’ll keep everyone up to date on the progress for this mode, I obviously think it’s great ;)

Now, I need help from you. If you can find another racer that has a feature similar to this championship mode description, please tell me, I want to know! I’ve not seen any, but there are so many games out there.

So there we have it. The race modes of Gears of Glory: Apex Ace. If you have any questions, feel free to comment, either here or on facebook. You can contact me directly instead if you’d like, at @domipheus.

Gears of Glory: Apex Ace Pricing

It’s time to discuss pricing for Gears of Glory: Apex Ace.

Originally, I wanted to price the game around the cost of an espresso; about £1.50. The game is small, but there is a certain replayability aspect if you enjoy racing, so I think £1.50 is perfectly reasonable, albeit cheap for a PC release.

I’ve had to increase this to £2.40, for various reasons.

Reason 1) VAT. Before I state the following, please remember I Am Not An Accountant.

UPDATE

Well, I did say I was not an accountant. The next point on VAT is completely false. For digital goods, you only need to register + charge VAT in your own state if you go above the national threshold, which I don’t think I’ll be doing. So, VAT is now no longer an issue. I’ll post a new update in time! – Colin

Domipheus Labs is based in the UK. I am not registered in the UK for VAT. I do not expect income from games/services Domipheus Labs provide to go above the VAT registration threshold, so technically I do not need to charge VAT in sales to the UK – currently 20%. However, the EU Vat rules for digital goods are complicated. Basically, VAT is charged at the customer rate rather than the supplier rate. This means I would need to have in place the ability to charge and send VAT to the EU depending on location of the person buying the game. This is just far too much work for a 1-man band, so I am using a payment processor that handles this for me. But this then means I need to charge UK VAT, as it’s the payment processor who is actually selling the product, not me. Technically I can sell minus VAT only to UK buyers, via something like PayPal. I may do this in the future, but for now, it’s just too much work. I want the price quoted to be the price customers pay, so the VAT is absorbed into the higher sale price.

Reason 2) There are no good micro-transaction payment portals.

By good, I mean will handle everything I need – the above collecting of VAT for the EU, notifying my servers of a sale for licence key allocation, and, most importantly, doing this at a reasonably percentage cost of the transaction total. As it turns out, £1.50 is most definitely micro-micro transaction level – and there is just nothing good out there that will charge anything less than a third for the service.

The above two issues are expensive. Not expensive in terms of monetary value, it’s less than a pound we are talking, but as a percentage of our ‘micro transaction’ payment it’s massive. The payment processor I am using is FastSpring, and this cost will be around 50p per transaction. Now, FastSprings service has been amazing, so for 50p, to me, it seems worth it from my end. But it’s still more than I had envisaged. That brings the cost up somewhat, and then we have 20% VAT on top, bringing it much closer to the £2.40 mark.

If you think I am somehow greedy in this, consider that from that £2.40, after various taxes, monetary transfer fees and other things, I’ll be getting less than 50p per sale. From that, I need to pay expenses, rent the servers, and pay for bandwidth. When I say I’m not doing this to make a heap of money, well, this confirms it.

What I’m doing to offset the fees, for buyers.

I am a massive fan of the ’4 pack’ buys you get from Steam, etc. I have teamed up with friends and bought for example Left 4 Dead and distributed the keys. I have decided to make pricing tiers available for Gears of Glory: Apex Ace, but I’ve been more lenient, and extended it to a volume licencing model.

Quantity: 1, each licence costs

  • USD 3.50
  • EUR 3.05
  • GBP 2.40

Quantity: 2+ , each licence costs

  • USD 3.20
  • EUR 2.85
  • GBP 2.10

Quantity: 4+ , each licence costs

  • USD 2.85
  • EUR 2.45
  • GBP 1.80

This represents a 25% saving on buying 4 or more keys at the same time, instead of four single ones. But, even buying only two will entitle you to over 10% of a discount. I am still looking over the figures, and may be able to increase the saving even more, so will update if this is the case.

Now, this doesn’t solve my VAT problem, which is why the price is still a bit higher than I wanted, but it certainly offsets the payment processor fees, and I hope it will make people buy keys in groups, or maybe even gift a second key to a friend.

I hope this explains some things.

Lastly, you will be able to purchase keys very soon – and the Single Player beta, with 24 circuits, leaderboards and achievements, is being released mid-September!

The beta will initially roll out ‘Direct from the Developer’, and be available on game distribution platforms like IndieCity and Desura in due course.

A demo is also being made available, which allows 1 day access to the first two tiers of circuits.

It’s certainly been difficult trying to sort these matters out, but hopefully the volume discounts will entice gifting of Gears of Glory: Apex Ace to more friends – that’s the idea, anyway.

Cheers,

Colin / @Domipheus

 

Lessons from exhibiting at an Indie Festival

I recently had Gears of Glory: Apex Ace playable on the floor of the Dare Indie Fest, which is the UKs largest indie games showcase. It was a great experience for me as the developer, both personally and from a development of the game standpoint. I made mistakes, but also did many things right, and it didn’t cost me an arm and a leg.

Right – Lighting Considerations
This is something many on the day did not prepare for. I have a poster and a large game logo board I wanted on the back ‘poster panel’ (viewable from the pics), but wanted to make sure visitors to the booth could actually see and read it, from a fair distance. I knew the event had run several times before, and last year in the same venue, so looked for photographs from the event to judge how lighting is handled. Just as well I did, as they used a lighting rig with various moving coloured lights, which when in the direction of your booth is fine, but otherwise, quite dim and nightclub worthy. Therefore I made sure to take additional lighting so brighten up key areas.

Right – Control instructions available outside of the game.
Even though I was demoing a racer, which used the standard left thumbstick and trigger buttons, visitors still kept asking as they got the controller passed to them to play. I had a queue forming, and being able to pass the controls around in a showcard form helped immensely with player throughput, especially during busy periods.

Right – Trailer / Playthrough video.
I had the game trailer on a loop in two screens either end of the booth, this was great, but late on I decided to record a play-through of the level on show – and this proved very useful. Players asking what is your best score is and then you being able to show you them how it can be played is great, and can show the depth of the gameplay. There was over 5 seconds in lap time between my best lap played at the show and the best lap of the whole festival – showing how this can be achieved is a real selling point on replayability.

Right – Swag
I designed sticker badges – it’s a time-trial racing game, so it had ‘beat my lap’ on them – and they were hot property. I made sure to give everyone a sticker who played, but also had them just laying around messily on the booth table. There is something about stickers, people love them, and I believe them to be the best return on swag investment for an indie. More on this in the budget section below.

Right – A ‘business/corporate’ oriented display
I’ve had to roll out my own OnlineServices framework for Gears Of Glory: Apex Ace. There was just nothing out there suitable, and I have been asking around other indies seeing if they would be interested in using my framework. I had a small strut card with the features of my service that differentiate it from the others available, at one side of the booth. People visiting the show from a business perspective saw it, and approached me. Don’t think because it is a consumer show that there are not business opportunities to be had!

Right – Treat the event as a playtest.
Watch everyone play as much as you can. Take notes – I had a small notebook and nearly filled it with points/issues. Usually, the points are UI/UX based – and if you are the developer, this is exactly the area of the game that usually escapes you, since you’ve been working on it so long. The feedback from this point is extremely valuable.

Right – Test your audience with price
When people asked me on price, I told people slightly different values. Nothing super different – I have a price range I know I’ll target, but this was to judge peoples reactions – and I got valuable information from it.

Right – Take Everything you can
I mean everything. I filled the largest suitcase I have with ‘stuff’. I calculated the amount of batteries I should need max, and doubled it. I had 3 different types of tape (Masking tape, standard sellotape and duct tape). I had two types of scissors. I had a whole extra pack of blu tack, Velcro sticky fixers, and glue at disposal. I brought extra white and black card too. I ended up covering the second ‘trailer’ laptop with this black card at the last minute and masking taping over the usb ports, so I did use them for things I had not prepared for the days prior.

Wrong – Not enough social media during the event
I should have been live tweeting best scores, pictures, maybe even videos. The event organiser main twitter was retweeting other studios with the hashtag, so I could have got more exposure.

Wrong – Not enough social media advertising at the event.
This one is annoying – Nowhere was the twitter account names, or the facebook page names. I had completely forgot. Many people were asking about how to keep in touch with the game, and to some of them I said twitter, but for everyone that asked me, there could have been another two that would rather have simply followed the account silently – and I lost that interest. ‘Keep up to date with X by following Y and Liking Z’ banners would have been ideal.

Wrong – Trusting my old hardware
This was done on a tight budget, and I used an old Centrino Dell laptop, which is over 8 years old. I had run it for hours in the days leading up to the event and it ran fine, but on the morning of the last day of the event the cooling fan gave up. I ended up running the laptop passive, showing the windows xp screensaver with screenshots, and looping game music. It died trying to play video after about 20 seconds, but coped with screenshots and mp3 playback – even if it did warp the plastic table it was on! The laptop could possibly have played video if I had a few of those USB fans that you can manipulate into positions – so if you have one of those, take it, just in case.

Did Wrong – Make sure you have a control system override
In the main build of the game you can play with a gamepad, but keyboard control still works. For some reason that is unknown to me now, I removed this in the days up to finishing my expo build – and this was a huge mistake. With kids – especially those with wii’s at home – they can get confused with the controls easily, even a simple racer. Being able to control with the keyboard whilst they ‘think’ they play is great for this – because it’s always better than having to take the controller off them to remedy going the wrong way, etc.

Wrong – I did not have a do not touch sign on the old trailer laptop
This was a scary incident. Even though I’d covered the laptop keyboard with card, a child still mistook the trailer playing on it for a free game spot. The kid jumped and reached across the table, pulling the laptop towards them, forcing all cables to detach from the back, and if it were not for the security cable connected to it it would have fallen off the table. Some kids get very excited, so you need to prepare for these things.

Wrong – Play length
If there is a distinct goal to your game (like in Gears of Glory – X number of laps) make sure it doesn’t take longer than 2 minutes to complete. On the first day I had 5 lap demos of a circuit I could do in 40 seconds, but a lap was averaging over a minute to the public at the time – I changed this to 3 laps after the first day, which helped immensely.

Budgets

As I stated earlier, I tried to do this on a budget. There are obvious hotel and travel costs which you just need to find a good deal with, but for kitting out the booth, here is my advice.

Print your own posters
Maybe I was just looking in the wrong place, but I found it quite hard to pay for posters. I had an A2 size logo (more on that later) and an A1 game info poster. Due to the fact I only wanted one of each, the overheads were pretty steep, and would have cost over £30 ($47) to print them onto good glossy paper. Instead, I went to the local pound discount shop and bought photo paper sheets and printed the posters at home. Amazingly, the windows 7 paint program (yes, the OS one) has support for multi-page poster printing, so just make sure the printer dpi is set super high, and the resolution of your source image is good enough. Use a Stanley knife and metal ruler to cut the white margins off. I jigsaw’d it together on the day and nobody cared about it not being 1 sheet of paper. ‘Good enough’ really is correct here. People could see it and read what was on it. Job done. Just make sure your printer ink consumption isn’t stupidly high – because then the line between the two options blur.

Booth Swag
Stickers Stickers Stickers. Seriously. Design a sticker, with a game character, logo or whatever, the website, and a tagline – for Gears of Glory: Apex Ace I had ‘Beat My Lap Time’ on it. Stickers really are the best return on investment swag. I went with Printed.com and got 500 2″ stickers for £20 pre tax/postage, and they have great templates so you don’t mess up by giving them bad art, and also – importantly – the adhesive on the stickers is good, and can be used on clothing etc. Get more than you expect to hand out, as you will want to mail them out to folk too. Ive done it a few times, each time folk have tweeted a pic of the stickers so it’s good marketing too.

Create your own showcards
Where I needed fairly simple conveying of information, for example in the controls or of some business information, I used cheap 600gsm card and just glued a strut onto it. For about £5 I created 8 displays for various things.

Big Logo
I wanted to make the game logo stand out a bit more than having it just on a poster; so I printed it out and then carefully cut around it all, and backed it onto craft foam board. I then used cheap (from the pound shop again!) ultra bright reading lights which could be placed around it to light the sign up. The result of this is that in pretty much all photos from the event (pro and by-chance delegate photos) the game logo is very visible even in the nightclub lighting of the expo hall. About £6 got me something that looked pretty good and set the booth apart.

That’s about it. I’m sure there may be something I’ve missed, but it’s quite a lot of information there already. I hope it’s useful to someone!

Gears of Glory: Apex Ace status update

Hi folks, Colin / @domipheus here.

It’s been quite a hectic couple of months. As you will have seen, Gears of Glory: Apex Ace is not available – even though it’s July, and the releases all said coming May 2012.

Well, to put it bluntly, I screwed up on the timing. I’ve certainly learned something from this experience, in that it seems journalists don’t seem too bothered by launch dates. This is the opposite of what I expected – I thought having a launch date would give some credibility to Domipheus Labs as an unknown entity for journalists to draw on when trying to get some press coverage. Turns out if you have an interesting story to tell, they will cover it regardless.

I’ve had less free time to work on the game lately – mainly due to becoming a dad for the first time. This is one of the reasons I don’t like the ‘indie’ label – I am very much a hobby developer, who takes his work seriously. I have not quit my day job in search of some far-fetched indie bliss.

The new plan stretches out the release, but I think it offers the best chance available to make Gears of Glory: Apex Ace a game I can be proud of.

Domipheus Labs Online Services

Previously, Gears of Glory: Apex Ace was an IndieCity only title, using its fabulous game framework. They offer an amazing percentage of the cost price (85% to the developer if they integrate leaderboards/achievements). However, for me, I needed more fine grained control of the leaderboards. Like in my Leaderboard Ordering post, I wanted ordering control, and other smaller things I may talk about in later posts.

In addition to this, it quickly became clear that I was going to need to roll out distinct game versions for each distributor I was looking at, and that these would then have disjoint leaderboards. For the amount of units I intend to ship, I really do not want a fragmented userbase.

So, Domipheus Labs Online Services was born.

Online Services, for the lack of a better name at the moment, is a fully-fledged RESTful web service for game licence checking, leaderboards and achievements. I did look for available 3rd party platforms, but most did not cater for small ‘indie’ player sets, or looked as though they were awash with too many features. Still my leaderboard ordering problem was left unfixed, despite them offering way more more in terms of features.

With Domipheus Labs Online Services, Gears of Glory: Apex Ace will ship on far more distribution platforms than before – and the playerbase will remain one, single universe with everyone connected into the same world and championship standings.

Also, as a developer, the cost of developing the Online Services component was far cheaper than having many different builds of the game for the various distribution channels, and having to test and support each one. For me, it’s a win-win.

There are greater things destined for the Online Services platform in due course. The user management, and licensing aspects of the service are incredibly valuable to indies which are often overlooked by the larger ‘Game Service’ providers as being too small. I have spoken to some indies personally and they have expressed an interest in learning more about the service and how it can help them. If you are interested in learning more, get in contact.

So, Domipheus Labs Online Services will launch alongside Gears of Glory: Apex Ace, and power all of the games online features, including user licensing, management, analytics, leaderboards and achievements. It is expected to be opened up to other indies in due course, with a range of affordable pricing options, from free up to a few coffees a month.

Open beta releases

Back to the main Gears of Glory: Apex Ace release schedule. It’s now moved from a fixed release date, to having no release date with features being rolled into several beta releases.

Release One will feature the Season Circuits. These are racetracks which ship with the game, and each one has a global leaderboard in which player standings are calculated, and challenges sought. Leaderboards contain not only the lap time of the entry, but are tagged with the actual recording of that players lap. So whilst the game is Single Player at this point, you will be racing ‘against’ other players in the game world.

Release Two will feature the Track Builder. The track builder is pretty much feature complete in terms of how it fits into the game, however, the facilities to share these tracks with people do not exist at present. This will be discussed and developed into a ‘shopfront’ of the most popular user tracks, with people being able to publish creations to it. At the moment there are no plans for this to come with In App Purchasing.

Release Three will feature Multiplayer. Multiplayer has been a real struggle to implement, not because of the engine or actual game mechanics, but because of the way in which the internet works now with everyone behind routers. For a game to really be multiplayer, we need master lobby and NAT introduction servers, and this is something again Domipheus Labs Online Services may help with. I have always said I don’t want users to need to go and open router network ports, which seems to be what most smaller indie developers do. This really is not a good user experience, especially in a pick-up-and-play title like Gears of Glory: Apex Ace.

Release Four will be the full, non-beta, release. The beta releases will all be priced cheaply, with the purchase of a user license granting access to all future beta and main releases of the game. After Release Four the price of the game will increase to reflect it’s complete state.

At the moment, I am gearing up Release One to happen in late August.

I really hope this has cleared up the state of development currently. I know it’s been very quiet lately. But development is going full throttle. The game is currently playing nicely – as long as you like technical racers, that is!

Lastly, Launch Platforms.

Gears of Glory: Apex Ace will become available on the following platforms:

  • IndieCity
  • Desura
  • Indievania
  • Direct from Developer
  • Steam Greenlight

This has been a very long post, so finally – please tell your race fanatic friends about the game. The game needs an active leaderboard community to be fun. You can keep up to date at by liking the facebook page – https://www.facebook.com/gearsofglory.

Thanks for reading, you will all get the chance to play the game soon!

Colin