- Expert software developer specialising in Unity 3D, Flash and related game and app technologies.
- Highly transferable skillset, able to work with new languages and technologies on-the-job.
- In-app billing and other add-in technologies across multiple platforms.
- Excellent written and verbal communication skills.
- Also offering music and sound design services.
Please contact me if you would like to discuss possible work.
Click here to download (Word 97 and higher compatible)
Prior to this I gained a degree in Software Engineering and spent many years producing music in my spare time, meaning I have a rich reservoir of background knowledge in Sound Engineering and other languages such as C++ and PHP to draw on.
As well as being my trade, programming is a genuine passion for me and I'm always excited to engage with new challenges. I'm naturally enthusiastic about helping people to get the most out of technologies at every stage of a project, from researching new developments and communicating effectively with stakeholders at the planning stage, through to using programming best practices to deliver systems that are robust, flexible and meet and exceed client expectations.
My main expertise is in using OOP principles with "mid level" languages such as C#, Java and Actionscript 3.
I have great enthusiasm for tuning gameplay mechanics for risk/reward balance, but am happy working on all areas of game, app or web development.
I have worked with Flash Actionscript at almost every conceivable level, from unravelling and refactoring old projects with timeline code all over the place, to building complex systems in AS3 from scratch.
I'm not afraid to get my hands dirty with a bit of PHP or HTML either if the project demands it.
Most of what I've said here still applies to my work now, except of course that my skillset has diversified significantly.
Phone: (+44)7540 397 084
Bandit Skies is my most recent passion project. It's a retro-styled scrolling shoot-em-up with an RPG structure.
It's built on the engine from a Unity tech demo I made called "Infinite City" (also available on the iOS App Store and Google Play). For this game I wanted to take the base elements of that demo and flesh them out into a more substantial game.
I employed the excellent artist and animator Gareth Axford to draw the characters and backdrops for the 2D dialog scenes. He also animated the explosions. The app icon was created by Jade Melhuish. The rest of the graphics were put together by me using Wings 3D, Photoshop and Flash.
The scrolling shoot-em-up genre has become more and more of a hardcore niche over the years, and modern examples can be baffling to genre newcomers. The intention with Bandit Skies was deliberately to make it a lot easier than genre contemporaries, and link together mission objectives based on quests allocated by NPCs. There's still a high-scoring/achievement element, but it's toned down.
Extensive platform reach is also important. Using Unity's diverse range of export platforms, the game is available for iOS, Android, PC, Mac and Ouya. It's also coming soon to the Windows 8 App Store, Windows Phone and Linux.
Developed using Unity (C#), Wings 3D, Photoshop and Flash.
You can play the game in the browser here:
For details on downloading the game for your platform of choice please see http://www.banditskies.com
Jennie Francis Hypnosis
This is a hypnotherapy app created for iOS in Objective C. Users receive four audio sessions by the hypnotherapist Jennie Francis for free, and can download additional sessions as in-app purchases.
I also managed the migration of the app to iOS 7, both in look and feel and bug fixes.
The most crucial piece of experience gained on this job was learning to implement in-app purchases in the Apple-approved way. This can have developers tearing their hair out but it does make for an excellent customer experience for all apps that implement this functionality.
Developed using Objective C and Photoshop.
App Store link:
The MoonGoons is a casual/childrens' puzzle platform game for iOS and Android developed by Aqua Moon Games.
As part of a team of four, I did about 75% of the programming for the game. Towards the end of the project it was decided that the gameplay wasn't exciting enough, so I also re-designed the levels. Most of the moving fireballs and platforms were added by me just before launch to spice things up.
This game used an in-house built 2D solution for Unity, although for subsequent projects we've used third-party solutions. I developed a proprietary level editor which also compiled and optimised sprite sheets for the game. Most of the physics in the levels are actually "faked" as we wanted to always be able to predict where objects and characters would land etc. so that we could control the challenge level.
We're about to re-launch the game with a third party advertising solution added. For this I've been working extensively with Unity's native plugin features, incorporating Java and Objective C code into the packaged Unity game.
Developed using Unity (C#), Flash, Photoshop and Image Magick.
Visit the game's website for more info and App Store links:
Spellathon is a charity/educational spelling tournament game run by Mencap. Schoolchildren take part in spelling games and compete to raise money for Mencap and/or their schools.
I was brought into the project as a contractor for the updated rollouts on the game for 2011 and 2012. The software had already been completed but changes were needed to word sets, game rules and other minor areas.
The project had been built using the "Bedrock" middleware which exports to multiple platforms from a Java and Lua base. It was an interesting challenge as I hadn't worked extensively with either language before. There was also work required rolling Flash Actionscript into the web builds to add preloaders etc.
As it's a yearly tournament the web game is currently unavailable. However you can read articles about it on Mencap's website. I've linked to one of them below.
Developed using Bedrock (Java/Lua), Actionscript 3, Photoshop and Image Magick (PNG optimisation).
Article from Mencap:
It runs best in Firefox or Google Chrome. Internet Explorer 9 should also be fine. If you have any issues running the game in your browser, please let me know at email@example.com.
Play the game here:
The modular nature of the framework supports switching between different and/or updated back-end APIs without needing to change the original game code, or re-compile the game SWF, which facilitiates cost savings when working with third parties who do not wish to license their game source. We ask them to add our API hooks to their game, then after that we can swap out modules at our end without going back to them and getting charged for more work.
I've also worked on a lot of the games themselves. Many of these were old Actionscript 2 games that IPC wanted to re-skin and update for the target demographic. In most cases we would work with an external artist to re-skin the graphics, and I would usually end up refactoring a lot of the code and creating a lot of UI transitions, using Tweening engines like Greensock TweenMax and Tweener. A lot of older Flash games tend to use a lot of timeline-based code and switch between game states by changing the active frame or scene which leads to messy transitions and code that is difficult to maintain. I would tend to create singleton "manager" classes and move key parts of the code out of the timeline in steps, so that if the deadline loomed we could still launch the game without necessarily having to complete the entire refactoring project.
Many of the games on the site now have a corresponding "skill" version which can be played for cash. This usually required changes to the game play, mainly because for this game format games need to be kept at or below a certain length.
Most excitingly, due to our licensing deal with Popcap games I've also been able to work on making changes to some of their most prestigious web games, such as Plants Vs Zombies and Bejeweled 2.
Click the links below to play some of the games I've worked on for this site:
This was a personal project: an old-skool 2D racing game in the style of 8 and 16-bit classics such as Micro Machines. My good friend Gareth Axford has kindly provided pixel art for the cars, but apart from that I've been creating all of the graphics and sound, which, combined with this being a "spare time" project, throws up some interesting challenges for time management! To address these I've written algorithms which procedurally draw the backgrounds. The track data just contains the shape of the road, then the game automatically positions the tree graphics, draws the fence and tiles and masks the road and grass textures for me.
There are so many interesting challenges to developing a driving game - physics, AI and accurate collision detection to name a few, and I plan to update the game regularly with new features and refinements, both planned by myself and based on user feedback. There's also a quite slick track editor using the Flex framework which I've used to create and easily tweak the track shapes, which will be up here shortly when it's had a bit more spit and polish to make it production quality.
Developed using Actionscript 3
Play the game here:
When I received the brief to program a Felix-based wordsearch game I knew that there was a straightforward way to approach it, and a much more interesting and complex way, so I chose the latter: rather than having a static layout of words set in stone, the program accepts a list of words in an XML file, and randomly positions them in the word grid (or star in this case), ensuring that they all fit into the space correctly. This means that if you refresh the page you also get a brand new Wordsearch!
This system adds exponentially more value for the client than a simpler single-layout approach. Word lists can easily be changed to refresh the puzzle, and the layout of the grid can also be edited as a block of ASCII characters in the XML. The application also has a list of unacceptable words which the program avoids generating amongst the random letters that pepper the remaining space on the board. Of course these include swear words, but another useful application is to make sure competing product names are never accidentally spelled out!
Developed using Actionscript 2
Play the game here:
Run Fatboy Run
One of a number of collaborations I did with the hugely respected team at weebls-stuff.com - the official viral game for this highly successful film. At the time Actionscript 3 was still very new but I knew it would reap considerable performance benefits, especially useful as for the time (Summer 2007) the screen area for the game was quite large for Flash and therefore pretty demanding.
Adobe were still working out some notable bugs in Flash Player 9 at the time, and there were quite a few last-minute workarounds needed to get it over the line in time for the film's release. The result is fun to play, and also used AMFPHP to enable an online leaderboard, and facilities to e-mail your score to your friends.
Developed using Actionscript 3.
Play the game here: