Hi, I am a 31 year old programmer from Ireland. I am an enthusiastic C/C++ software engineer with an excellent academic background always looking to expand my skills in a challenging team atmosphere working on current edge technology. I am analytical and methodical with strong problem solving skills and an ability to quickly learn and apply technical expertise.
At the time of writing I have just started working on Football Superstars with some of the guys I used to work with at BGS. The project is an exciting one, the game has bucketloads of potential and once we get to grips with the extensive codebase the game is destined for big things. I'm on the team as a game developer although I expect to working primarily as a UI programmer, something that I've missed on SingStar Dance. Stay tuned for more updates!
I developed the system to score dances including gesture recognition, the different scoring modes and the markup of the dances. As part of the content creation I developed several facilities including dance recording & playback and debug UI feedback for the content creators to allow them debug their marked up dances. I also assisted in developing several UI components such as the off-camera display and the scoring displays. At time of writing the game has yet to go through format QA but based on feedback from E3 and Gamescon it promises to be a highly successful title.
During my job at Sony I learnt all about the challenges in developing for the PS3, PS3 libraries all using C++ and a bit about gesture recognition.
All development work was highly critical both in terms of quality and performance as the results of all work undertaken had serious implications in what end-users saw and interacted with in the game.
At this job I have been primarily working with C++, STL and XML within the confines of the custom Front End system for the game.
For more information about my role at Championship Manager at BGS see my Champ Man page.
Before BGS I was working with Learnosity Australia as a voice and web developer. Working mostly with ColdFusion, PHP and Asterisk PBX. My main roles were:
I've worked on the UI for 2 commercial game titles. I worked extensively on the UI at Championship Manager and while my experience at SingStar was primarily in gameplay I did develop several UI components for the game.
Before starting with BGS my primary focus in games was in AI.
I have used various AI techniques in my demo work, for my first game Revelations, a first-person shooter, I developed a finite state machine, simple decision making and basic pathfinding solution for the AI.
As part of coursework for the MSc in Abertay, I created a simple 2D game that used Fuzzy Logic and Genetic Algorithms to land a spacecraft. The fuzzy logic controller for the game alters the thruster force being applied to the spaceship to land it safely below a certain velocity. The genetic algorithm creates populations of spaceship actions (i.e. thruster direction and force magnitude), simulates applying them to the spaceship and through mutation and reproduction creates candidates that land the spaceship by applying the correct sequence of actions. By evolution and mutation a solution is (generally) found that lands the spaceship.
For a group project, I implemented the AI for a Lego RTS game. This involved developing an overall master AI to control the building and strategy manager, group AI logic to control the behaviour of groups of units in a way that mimics a real-world command structure. Individual AI for units was done using a simple finite state machine. I also created an influence map which the Master AI reads and uses to direct groups of units. I also helped develop the pathfinding for the individual and groups of units using A*.
As part of the DirectX module in Abertay I created a racing game that involved AI opponents. The AI races around the track following one of two racing lines while also targetting and firing rockets at other opponents. The AI for this game involved finding a way of representing a track to an AI oppponent and developing a system for them to follow it while also targetting pickups in the process. AI followed a scripted path around the track but would also react to actions taken by the user and alter their direction and actions based on this. The targetting of the player uses raycasting to determine which opponent is in sight before eventually firing.
My Masters thesis was influenced by the AI of F.E.A.R. and the work of Jeff Orkin. F.E.A.R. won various awards for the AI in the game and utilised a technique known as Goal Oriented Action Planning(GOAP). The basic idea of GOAP was that an agent has a collections of actions and a set of goals. Given a specific goal the agent would find a solution by chaining actions together using A*. Actions are given a cost so that A* can decide the cost of a particular route and determine the cheapest way to arrive at the goal. Each action has a precondition and an effect. If a particular action's precondition wasn't satisfied then the algorithm would look at other actions available and try and find an action whose effect that would bring the agent closer to the goal. By chain them together the agent could form a plan (e.g. find ammo, reload, attack) . All the agent would need to do was to monitor its goal and check if it has become invalidated. If so then the agent may need to replan for a new goal.
As part of my MSc I created my own GOAP system that used A* for both planning and for navigation. The dissertation involved developing a GOAP and finite state machine system and was placed in a game scenario where experiments were carried out between the two. Comparisons were made on three levels, the first was based on the results of simulations in Domination, Capture the Flag, Deathmatch and Last Man Standing modes. The second comparison examined the two systems from a technical perspective and investigated how each system performed from a memory management, CPU usage and efficiency standpoint. The final comparison considers the merits of the two systems with respect to ease of management, flexibility and re-usability.
You can find the source, thesis and executable can be found in the Downloads section of the site.
I have experience with several IDEs. Visual Studio would be my primary method of development but I have also extensively used Eclipse, Aptana, XCode and Interface Builder and Dreamweaver.
I have used SVN, CVS (including SourceSafe), Accurev (Sony's proprietary source control) and Perforce in my previous roles.
For further information about me, please see my games or non-games CV.
I've had an article published by GameCareerGuide.com about a college project I participate in called Blok Wars, have a look
Gamasutra mentioned the article, a first for me getting mentioned on their site! Link
The game above is a futuristic racing simulation where the player pits their wits against AI opponents. The game includes features such as collision detection and response, rigid body dynamics, environment mapping, 2D UI, particle effects and fully functional AI.