top of page
unnamed.jpg

BROCK
O'SHEA

WHO I AM

I am a software programming student, studying at the Academy of Interactive Entertainment.

I am eager to gain experience and learn from professionals in the industry, and would love any opportunity to work and further enhance my skills.

MORE ABOUT ME

In my spare time, I love to watch soccer and F1.

I enjoy playing chess, hanging out with friends and family, playing music and playing video games.

LANGUAGES​

C++

C#

Python

Java

TECHNICAL PROFICIENCIES​

Unreal Engine

Unity

Git

Perforce

SourceTree

PROJECTS

Heavenfall

Engine: Unreal

Language: C++

Version Control: Perforce

​​

Heavenfall is a first person spell combat game where you, as an awakened demon, are fighting your way through the heavens to demand answers from the god who sent you there. At the end of your journey, be prepared to engage in an epic fight with Jahun, the final boss.

My key responsibilities included:

  • AI programming

  • Enemy spawners

  • Enemy wave managers

THE FOG

Engine: Unity 

Language: C#

Version Control: Perforce

The Fog is an on-rails arcade shooter where the player navigates spooky environments, shooting down enemies and trying to defeat the King Zombie.

My key responsibilities included:


• Implementing the spawning system, stage system, and scoring system
• Integrating Cinemachine for dynamic camera movements and

programming AI behaviours
• Collaborating with a team, managing tasks with Trello, and handling version

control with Perforce

NEON PUNK CHAOS

Engine: Unreal

Language: Unreal Blueprints

Version Control: Perforce

Neon Punk Chaos is a fast-paced first-person shooter, made in 48 hours at the AIE Game Jam. In this game, you face off against attacking ninjas in vibrant rooms. As enemies are defeated, the environment becomes increasingly neon and colourful, intensifying the aesthetic experience. Players progress through sequential rooms, unlocking the next challenge upon clearing the current one.

My Key Responsibilities Included:

• Enemy AI

• Enemy spawning and death management

• Animations

• Other small including Niagara Effects and random coloured bullets

FEATHERED FEAST

Framework: Raylib 

Language: C++

Version Control: Git

Feathered Feast sees the player flying through the sky, devouring burgers while evading crows, aiming to achieve the highest score by consuming as many burgers as possible. Some key features include:


• Implementing Dijkstra’s Algorithm for sophisticated AI pathfinding,

ensuring crows intelligently chase the player
• Developing decision trees for nuanced AI decision-making, allowing for

dynamic responses to player actions

MonteCarlo_Banner.png

MONTE CARLO MACHINE LEARNING

Language: Python

Version Control: Git

 

Learning about the Monte Carlo Method gave me great insights into the basics of machine learning. Understanding core machine learning foundations such as the Bellman Equation, Value Tables and Q Tables has given me a good basis to continue my learning from. Since learning about the Monte Carlo Method, I have continued my learning and am now in the process of learning about policy gradient methods.

 

Key Takeaways:

• Understanding of Bellman Equation, V tables and Q tables  

• New insights into AI learning and recursive functions to achieve machine learning

VANYA WEBSITE

Language: Typescript, CSS

Version Control: Git

I am really glad I decided to undertake this project. Creating a website from start to finish was challenging, but gave me a completely new understanding of web development. As I worked through this project, I began to recognise the limitations of my code design, particularly when combing Typescript with CSS. I was able to create a solid final product regardless, and most importantly I was able to deliver the website I set out to create for Vanya. I am looking forward to creating another website soon, and implementing better practices from the get go.

 

Key Takeaways:

• Enhanced understanding of web development, and first exposure to Typescript and CSS

• MailChimp integration gave me new insights about API use in websites

• Vercel integration showed me the benefits of automating workflows where possible

JavaBannerUpscaled.jpg

BANKING APPLICATION

Language: Java

Framework: Spring Boot
Database: PostgreSQL

Cloud Service: AWS RDS
Version Control: Git
Security: HTTPS enabled
API Design: RESTful APIs

 

Stage 1 of my banking application which serves as a robust platform for managing users, accounts, and transactions, showcasing the implementation of fundamental and secure web application features. Some key aspects include:


• Designed a secure and scalable Java application utilizing the Spring Boot

framework to facilitate banking operations such as creating and managing user

profiles, accounts, and transaction processes.
• Implemented CRUD operations (Create, Read, Update, Delete
)

for users, accounts, and transactions.
• Enhanced application security by incorporating HTTPS.
• Developed a RESTful API, enabling standardized interactions between the

application and potential external services or applications.
• Integrated PostgreSQL database for reliable data storage and management.

• Initially deployed using AWS RDS to leverage the scalability and reliability of cloud services, though it was later migrated away from AWS RDS due to ongoing cost considerations.
 

Future Enhancements (Please see project overview doc):
• Currently working on OAuth 2.0 implementation for advanced

authentication and authorization processes.
• Additionally, a front-end user interface is in development to provide an intuitive

and user-friendly experience, making banking operations more accessible to users.

DEV LOG

RED CARTEL INTERNSHIP

 

I learnt so much through undertaking an internship at Red Cartel. I gained invaluable industry experience during my time at the company, and gained a new understanding of how software development teams work. My work at Red Cartel was mostly focused on improving my understanding of networking and physics simulations. The main project I worked on was building a networked virtual reality system for throwing objects, engaging in combat with other players, and registering hits and near misses on opponents.

 

Key Takeaways:

• Software development team processes, version control, quality assurance, sprints, scrums.

• Networking for game development

• Creating physics systems, focusing on tracking and applying velocity and angular velocity

• Using SourceTree, making pull requests, and resolving merge conflicts

NETWORKED FPS

 

After finishing my internship at Red Cartel, I was intent on solidifying the information I had learnt about networking in games. With this in mind, I decided to undertake a simple multiplayer FPS. Additionally, I was very interested in learning more about procedurally generated terrains, and decided to add this in to create map variety each session. I have to say, this project was one of the favourites I have worked on. Although I am still very new to it, introducing networking into my games feels like a bit of a superpower, and is something that I have thoroughly enjoyed learning to do. As well as this, everything I learnt about procedural generation in this project, through following various youtube tutorials, was really interesting too.

 

Key Takeaways:

- Developed understanding of how networking works in games using Commands, Client and Target RPC’s

- Enhanced understanding of port forwarding and how players connect across networks

- Learnt about procedural terrain generation staples such as Perlin noise, lacunarity and fall off maps

AIE GAME JAM

 

The AIE Game Jam was a lot of fun. We had 48 hours to make a game around the prompt “You are the NPC”. We built a game where you start in a dull, grey and lifeless environment, but as you destroy enemies, you gradually bring Neon Punk Chaos (NPC) to the scene. This game jam was a great experience, working closely with some good friends from my game development course, and staying up all night refining our game and having plenty of laughs.

 

Key Takeaways:

• Building systems quickly with a key goal of having a working product

• Challenges that arise when creating a game with minimal planning time

• Unreal animation blueprints

HEAVENFALL

 

This game was created as the major production for my game development course. The process for this production was 10 weeks to create a proof of concept prototype, then 10 more to build a final product. For this project, I was responsible for the AI programming and the core game loop. I learnt a lot about behaviour trees, blackboards, tasks and decorators when working on the AI for this game. Additionally, I learnt the importance of accurate scoping, and thorough project management too.

Key Takeaways:

• Understanding of creating AI in Unreal Engine and using tools such as behaviour trees and blackboards

• Importance of creating regular builds for testing and feedback

• Enhanced overall understanding of Unreal Engine

MONTE CARLO MACHINE LEARNING

 

Learning about the Monte Carlo Method gave me great insights into the basics of machine learning. Understanding core machine learning foundations such as the Bellman Equation, Value Tables and Q Tables has given me a good basis to continue my learning from. Since learning about the Monte Carlo Method, I have continued my learning and am now in the process of learning about policy gradient methods.

 

Key Takeaways:

• Understanding of Bellman Equation, V tables and Q tables

• New insights into AI learning and recursive functions to achieve machine learning

VANYA WEBSITE

 

I am really glad I decided to undertake this project. Creating a website from start to finish was challenging, but gave me a completely new understanding of web development. As I worked through this project, I began to recognise the limitations of my code design, particularly when combing Typescript with CSS. I was able to create a solid final product regardless, and most importantly I was able to deliver the website I set out to create for Vanya. I am looking forward to creating another website soon, and implementing better practices from the get go.

 

Key Takeaways:

• Enhanced understanding of web development, and first exposure to Typescript and CSS

• MailChimp integration gave me new insights about API use in websites

• Vercel integration showed me the benefits of automating workflows where possible

BUILDING A MATHS LIBRARY

 

Undertaking this task was invaluable for improving my understanding of vector and matrix Maths. This project gave me a much better understanding of the way transforms and other mathematical operations work within Unity. By diving into the mathematical foundations, I was better able to appreciate the ways in which Unity handles game object transformations, including rotations, scaling, and translations, making it much easier to visualize and implement complex 3D manipulations in my projects.


Key Takeaways:
• In-depth understanding of vector and matrix operations.
• Improved ability to apply mathematical concepts in game development.
• Enhanced skills in debugging and optimizing mathematical computations in Unity.

THE FOG

 

This project marked my first experience working in a team to make a game. Collaborating with a designer, another programmer, and two artists taught me a great deal about the game development process in a team environment. The project benefited immensely from a team of hardworking individuals who were great at communicating. Using tools like Perforce for version control, Cinemachine for camera movements, Trello for project management, and conducting regular team scrums, were key to our success.

Key Takeaways:
• The importance of effective communication and teamwork in game development.
• Practical experience with Perforce for version control.
• Utilized Cinemachine for advanced camera movements.
• Managed tasks and timelines using Trello.
• The effectiveness of team scrums in maintaining project momentum.

FEATHERED FEAST

 

I learnt so much throughout the creation of this game. Initially, the project was more focused on implementing the Dijkstra’s pathfinding algorithm, but as the project progressed, I gained a lot of valuable knowledge beyond AI and pathfinding. Making a game in Raylib instead of Unity was a significant learning curve, as it required me to build many features from scratch. This project became the most thorough C++ project I had completed at the time. It taught me a lot about memory management and provided a clearer understanding of what happens under the hood when I’ve been using C# in the past.


Key Takeaways:
• Enhanced understanding of AI pathfinding and behaviour trees.
• Deep insights into game development without the aid of engines like Unity.
• Improved C++ programming skills, particularly in memory management and performance optimization.

FACIAL RECOGNITION MACHINE LEARNING

 

The facial recognition task was a formidable challenge that I tackled using Python and Jupyter Notebook. Although the project didn’t work out exactly as I had hoped, it was still a valuable project. It was my first experience training a neural network on image data and my first time using Jupyter
Notebook. This project laid the groundwork for my understanding of machine learning workflows and the practical challenges involved in training and deploying neural networks.

Key Takeaways:
• Gained foundational knowledge in neural networks and machine learning.
• Learned the importance of data preparation and augmentation for training models.
• Experienced the versatility and functionality of Jupyter Notebook for data science projects.

FURNITURE SEARCH PROJECT

 

This project was undertaken as a fun challenge for a family friend. It involved learning about populating fields from JSON files. I conducted some brief research into SQL and backend data management but decided not to take the project further. This experience was insightful for understanding how data can be dynamically handled and displayed in web applications.

Key Takeaways:
• Learned how to parse and use JSON data in web projects.
• Gained a basic understanding of SQL and backend data management concepts.

READING CLEAN CODE

 

Reading "Clean Code" was a transformative experience in how I approached coding. The principles and practices advocated in the book have significantly influenced my coding style, emphasizing the importance of writing clear, readable, and maintainable code. I intend to reread this book in the near
future to further solidify my understanding and application of these concepts.

Key Takeaways:
• Emphasized the importance of writing concise, readable, and maintainable code.
• Learned best practices for naming, commenting, and structuring code.
• The significance of refactoring and code reviews in maintaining code quality.

bottom of page