Hi I’m Sean and I’m currently studying Game Design and Development at Ulster University. Over the summer I had the opportunity to do a placement as a Software Developer at Hamilton Robson. I had seen some of their experiences like the Game of Thrones Tour and the Crumlin Road Gaol Experience before, so I was excited to be learning more about how they were created.
During my placement I was able to work on Outpouring, an interactive project made in partnership with artist Joe Caslin and Nerve Centre. I also was involved in creating interactive media displays for one of Hamilton Robson’s biggest clients in the Med Tech industry.
I started my work for Outpouring in Blender, editing animations before moving into Unity. I mainly worked in Unity for both projects’ scenes and features such as spawning more bubbles on the AR app created for Outpouring and using sensors to track a person’s movement onto a model, emulating the user being inside an MRI scan for body tracking.

While I enjoyed working with the body tracking, getting the tracking to work properly was pretty difficult. I had never worked on anything like body tracking before, so trying to figure out how to track a person with one sensor was hard. What was harder was tracking a person with two sensors and then making the different sensors work together, it was a real challenge. Having to figure out how to differentiate multiple users from each other was probably the hardest part.
I ended up using the position of the user being tracked to keep my model from jumping between the different users. By saving the tracked users previous position and comparing it to all user’s current positions, I can get the user closest to the previous position and use them to update the position.

It was a challenge but I’m proud about the work I did and I’m hoping I can get to work on something similar in the future, like putting what I learned to the test to create some kind of VR experience.
Working on these projects helped me to get a better understanding of Unity. Using configuration files like JSON and web-based Application Programming Interfaces (APIs) seemed daunting before I started.
When creating the displays, we knew we wanted to include a weather component which would update live to show the current weather at the office, so I used an API to fetch the weather it and update the weather icons to match.

I feel like there’s a lot of interesting games that could be created using APIs to effect aspects of a game. For example, using the weather API you could make a game where the level changes based on the weather in the players region, having different paths open or close depending on if it is snowing, raining or sunny. You could even make surfaces have different properties like being slippery or slowing the player. These could be really engaging features and I’m sure there’s plenty of other ideas that could be made using other APIs.
I started using JSON files to save information needed for my body tracking display to work. Information like my model’s and sensors position or rotation was all saved and allowed me to change aspects of the display by using the button inputs or the debug menu.
Using a JSON to save any changes instead of making the changes Unity scripts really sped up the testing process as having the changes persist after I stop testing didn’t mean I would need to constantly stop and start the display to make any changes to Unity scripts to keep the information.
It also allowed me to make changes while playing a build of the project, making it far easier to set up the display without having to make a new build every time a change is needed.
It took me some time to figure out how to use the JSON properly. Loading the JSON was easy, but saving it gave me some trouble as I would accidently write over the whole JSON file. That ened up being a simple fix by making sure I was getting the whole JSON changing the parts I wanted, then saving the whole thing to the JSON.
I can see myself using JSON files for my future games as they seem like a great way to save players setting like mouse sensitivity and volume or player save data such as the levels they completed, and items collected.
Before working on Outpouring, I had never touched the animation side of Blender. This meant working on the animations for Mr. Riddel for the project was a great learning experience. Having to go through the animations and fix up the broken poses, fill in the seams on the model and changing out parts of the model like the hands. I don’t know how often I’ll be animating in Blender in the future, but I’m sure knowing more about the process will help when working on future projects with others.
Working on the displays were a chance for me to get more familiar with Unity’s different tools, mainly the UI Toolkit. When I started to use the custom styles, it made it easier for me to quickly make the UI elements have the same properties, like boarder thickness or colour, background colour and corner radius.

After working through this project, I can’t wait to put what I learnt to the test for the games I’ll be creating in the future.
After working on these projects and reflecting on what I’ve learned I say doing a placement is a must if you can! Being in a real work environment is great learning experience that puts what you learn in university to the test. I’ve been able take so much away for this experience that will surely help me in the future, such as:
I’m looking forward to a future career in game development, and this placement help to show some of the similarities between game development and software development.

Want to find out how the subject of this blog could help your business?
Our blended team of experts go over and above with our services to our customers, no matter what the challenge. Get in touch to find out how we can work together.
| Cookie | Duration | Description |
|---|---|---|
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |