My Portfolio

Wednesday, January 11, 2023

How to become Game Developer - My Strategy to get my first Game Dev Job


I lost my job during the beginning of the Covid pandemic. Reevaluating what I wanted to do as a career I decided that I wanted to try and pursue a career in what I've always been interested in which is Virtual Reality and game development. 

One Year to Become a Game Developer

I had zero knowledge about programming and Unity so I took a look at some of the game dev and computer programming educational programs in my area. I found that they were either way too expensive or the time-commitment was at least 2 years to complete which would be out-of-scope for me since I only had around a year I could dedicate to making the career transition based on my financial situation.

As a result I decided to self-study and learn on my own using online courses. Later on I was lucky enough to find a senior game developer in the industry who was willing to have a meeting with me every month with me to answer any questions I had.

After around a year I was able to land my first full time junior developer position at a VR company. I'm going to share how I got my first game developer job and the strategy I used to position myself as a prime candidate. 

1 ) Research which Game Engine to focus on exclusively

There are two main ones. Unity and unreal. Make a list of ALL your local game studios and check out their career page. Especially, If you have a specific studio that you want to join. You'll want to know what game engine they primarily focus on. If a studio wants to hire a game developer they want someone who can help them right away and if you don't know how to use the game engine they use then your chances of getting hired isn't going to be great.

I recommend you research all the local studios to give your self maximum employability. Don't find yourself in a situation where you are learning a game engine that none of your local studios are using or only a few of them use the engine you are learning. 

For myself, I found that there was a large number of local studios that use Unity as their game engine. Additionally, Unity is the subject of a ton of game dev online courses which made finding online courses easy.

Focusing on both Unity and Unreal in my opinion is not worth it unless you have a lot of time to make the career transition. To this day I'm still learning more about Unity and how to use its tool.

2 ) Evaluate what type of short games to create for your portfolio

As you are researching all the game studio career pages take note of both the type of game studio they are and what type of skills they are looking for on their game developer career pages. 

Classifying the game studios and keeping track of how many of that type of game studio they are will help you figure out what games to build for your portfolio. Are there a lot of mobile game studios? Are they Console or PC game studios that make Shooters. Etc. 

Game studios are going to be interested in developers who can help them make the games they are working. If you have a portfolio of games similar to what they are working on they'll have a easier time believing that bringing you onto the team will be beneficial. There's also game specific type knowledge that you can only learn from working on them. For example, programing and designing UI in a Virtual Reality game is very different from programming and designing UI for a 2D mobile game.

If you find that there are several game studio cluster types you have the option of choosing what you personally prefer. 

Collecting information on the type of skills they are looking for from their career pages posting for game developers will help you figure out your own personal developer learning plan. Since I only had 1 year to learn focusing on the right skills was very important to me. 

Since I already decided to be a VR game developer I spent most of my efforts focused on research the local VR game studios. I found that most of them used Unity and were developing for the Quest which made it easier to choose what skills to learn and to ignore.

3 ) Create an effective self learning plan

Find all the local programs or schools in your area that are designed to help people become game developers. Their website usually has a webpage that provides a program outline of their curriculum. Looking at that will give you all the major topics that a game developer coming from their program is expected to know. You will be competing against graduates from these programs and by taking a look at their program you can make sure you can have a similar knowledge base to them. I'd also recommend you reach out to them and request a program outline if they don't have anything on their website. They usually provides these for prospective students. These schools/programs usually also have an industry night or graduation showcase which is usually free for the public to attend. Going to these give me a sense of what level of quality my portfolio games needed to be at as well as a great opportunity to ask them questions about their games.

4 ) Attend all industry events

Networking and meeting people in the industry will give you a massive boost to your employability. Attend all game industry events that you can and try to stay connected with as many people you meet as you can. 

Friday, December 31, 2021

Quest 2 - Application Space Warp and Optimization Test

The new application space warp announced by Oculus last month is supposed to gave applications up to 70 percent additional compute. I wanted to test its effectiveness with my own flocking project where the goal is to to have as many flocking objects on the Quest 2 while maintaining 72 fps! As a quick summary, application space warp did allow me to break past my bottle neck.


The Flock simulation is composed of a single Flock Manager that spawns and tracks all of the Flock with each individual Flock using a FlockController. The Flock has two main behavior methods which is to move towards a target point and separate from each other

For performance tracking I wanted to use the Oculus Developer hub for the first time and ran into issues with that as well. Upon install of ODH I found that Unity started running into issues when creating a build for the Quest. I found a helpful answer here where there suggestion of copying the files from Unity platform-tools folder into the ODH resolved the issue. 

To get as many objects on screen as possible while maintaining smooth fps I saved application space warp as the last optimization option to see if it would allow me to break past the project limits.

I iterated on several setups for the flock manager to try and push the limits. The first significant iteration was implementing a request manager which handles the movement needs of the flock which I showcased in my previous post. The second iteration I implemented was the C# Job system along with burst compiler. This allowed me to significantly increase the number of movement updates for the flock and enable better simulation without dropping FPS but not increase the flock count.

Finally during the setup of application space warp I ran into issues following the Oculus documentation because it was was already out of date. For my personal issue it was because I needed to use Unity 2022 beta and not Unity 2020.3 as specified in to documentation. Using application space warp requires a specific oculus branch of Unity's Universal Render Pipeline which was only compatible with Unity 2022 beta.

Once I got past these hurdles it was a big success. Application Space warp got me up to 1000 objects with no noticeable drop from my target 72 fps. All my other optimizations and set up I did only got me to 800 flocking objects where performance starts to dip a bit when it gets really busy.

Thursday, December 2, 2021

December 2nd - Spatial Partitioning and Custom Playables with Timeline

My goal this week was to to improve the performance of my flock simulation by improving the main update loop. 

Spatial Partitioning

Currently, the main bottle neck is how I implemented the Separation method for the flock controller which needs to do a distance check against all of flocks in the scene. This quickly becomes really expensive because each additional flock added increases the number of calculations needed in update for everyone.

In order to improve this I wanted to try and implement Spatial Partitioning. How it would work would be to split the map into grids where the distance check for each flock would only be against the other flocks in the same cell and ignoring the ones outside of it.

Thursday, November 25, 2021

Nov 25th - Procedural Animation and Basic Shaders

I did some animation rigging during my last project with the Dune worm and I decided that I wanted to do a really deep dive into it. So far I've been having a lot of fun and feel like the animation rigging package could really help me create some great boss battles and more easily creating cinematic/scripted events. Here are some clips from what I've been experimenting with.

Walker-Bot

My first mini project was to try and create a walking 2-legged robot where the legs automatically move themselves after they exceed a set distance from the main body. It was amazing when I got it work and I could see the legs automatically animating themselves while manually moving the Walker-Bot around. Here is a GIF where you can see me manually moving the body with the legs procedurally animating themselves. 


Saturday, November 20, 2021

November 13th - My Team's VR Mario Showcase Project




During the PXR2021 Conference there was a goal of creating some sort of collaborative virtual reality project throughout the week. I wanted to participate because I thought this could be a fun short-term creative VR project opportunity. 

My team had students across multiple disciplines and background. Not everyone could meet at the same day/time and as a result it was only towards the last 2-3 days of the conference that we really got going with sort of VR project.

For my team we had a few students who really wanted us to help them create a Mario inspired VR experience. Using that as our creative theme and direction we made a Nintendo Mario themed Altspace world. 

Poster art by Dylan Coakes