Game Designer - Programmer
I'm Evan McQueen, and I'm an aspiring game designer and programmer. I'm currently studying for an honours bachelors degree in Game Design at Sheridan College in Oakville, Ontario.
I have worked on a multitude of video game projects and have designed or reimagined different game structures. My experiences and skills also include programming software and languages such as Unity, Unreal, C#, and C++. Some of my hobbies include piano and visual art, and some of my favourite games include titles such as Bloodborne, Fallout: New Vegas and Titanfall 2.
I am deeply passionate about the design and development of video games. As both a player and a creator, I aspire to work professionally in the industry in the future. I hope to create games that will inspire and entertain others as they have for me.
A collection of projects I have designed or worked on.
Shovel Knight Movement Recreation
This was one of the more challenging tasks I've undertaken to date. A complete 1:1 recreation of Shovel Knight's impeccable platforming movement. Going frame by frame measuring pixels at a time to find out the exact distances, I managed to determine the values for top speed, acceleration, deceleration, terminal velocity, turning speed, and much more.
While it was challenging, I learned quite a lot from it. Making a custom input manager to have better influence over keystrokes, creating my own gravity instead of using the engine's default to allow for variable jump height, linking the size of the ground check box cast to the vertical speed of the player to avoid clipping into the ground upon landing, etc. All these tricks have now become standard practice for me, and I am quite glad I completed this project.
Custom Engine with OpenGL
"Engine" is perhaps a generous term, but that is the goal of this project. I realized one day that, despite all I've made, I've never tried making something outside of a dedicated engine, and so I set out to learn some really low-level gritty C++.
Learning how to render, understanding shader creation, creating my own implementations of classes I've taken for granted like 3-Float Vectors and Input, building collision and physics systems from scratch, I've learned so much from this side project and I can't wait to continue to add to it.
A project made for school, I used finite state machines to program several different life forms that all have their own behaviours and interact with one another to create a dynamic and believable ecosystem.
This is a project I'd love to add more to at some point. I began concepting some predators as well as water/air based navigation with some boid/flocking behaviour to go with it, but deadlines are deadlines and before I knew it I was already focused on the next project.
Machine Learning with Unity MLAgents
A fun little side project exploring the MLAgents Python plugin for Unity, generating some basic behaviours.
Right now I've made brains for moving to goals, activating items, and shooting, with skeletons for more complex and competitive situations like capture the flag and horde defense.
Another school project, this time we were required to make an AI boss battle. Originally made with finite state machines and converted to behaviour trees later, this dangerous cube has over 7 attacks and behaviours the player must overcome.
There are also some interesting side projects within this one, such as a new ground check system that allows the player to easily walk over obstacles and any slope, and a custom node-based pathfinding system built right into the engine.
Created for a school assignment. Simple and easy to use, a designer can quickly get a character to have Undertale or Banjo-Kazooie style "fake voice" dialogue.
This is the project I've spent the most time developing. A DLC-sized mod for The Elder Scrolls V: Skyrim, featuring a new island several times the size of that found in the official Dragonborn expansion. The video displays some of the visual elements I designed within the island itself.
It's a project created from my love of the base game, but has also been an incredibly useful lesson in level and world design. Never has my attention to detail and forward planning been tested so much. As a designer you have to consider both the macro and micro scales, worrying about the overall flow and spacing of the world while also adding enough little details to make it feel full and lived in. It's been through countless reworks of these areas that they have slowly been refined, as creating a large world that feels free and open while still having clear paths and areas of interest to funnel players is a difficult task.
THE BINDING OF ISAAC ITEMS
A small project I made due to an interest in the then newly released mod tools as well as my initial experiences with Lua.
Colour The World
This is the largest project I've been a part of to date. Being part of an 8-person team means that while you have your own role, communication and workload sharing is key. Especially as a programmer, ensuring that designers understand how things work and artists know the import pipeline is paramount to keeping things running smoothly, meaning communication and good peer relations is key.
I've been able to put all I've learned to the test, and it has already been a fun and rewarding experience that I am excited to see to completion.
Using All I've Learned
Naturally, as the capstone for my days in Sheridan's Game Design program, all I've learned over the years is being exercised here.
Things I've been doing for years like player controllers, physics, and input are obviously important, but I'm especially glad I'm able to use more recently aquired knowledge regarding rendering and shaders (see my OpenGl Engine in Misc. Projects!).
A game like this would not have been possible without my previous experimentation in my own time, as there are some pretty unique solutions for applying paint and interacting with it I don't know I would've thought up otherwise.
My first professional gig working with a game engine! I was hired by SIRT to do research and development for a client to determine how far we could take realtime compositing. I was left to my own devices to figure out what was possible and how to create it, making completely new systems and tools for the people in the studio to use when it came time to shoot.
So here I was, a game developer now working on something completely foreign. Thankfully, I was familiar enough with Unreal to not have this slow me down, and it quickly became a super fulfilling and creative venture!
All lighting and shadows done completely in engine, automatically.
Since my instructions were vague, I had to research and reference countless different projects and creators before I could then start making something of my own.
We were looking for final pixels in realtime, no rendering allowed, which definitely required me to flex my creative muscles a bit.
The goal of compositing is to make the subject really look and feel like they're in the world, usually through colour correction and other post-filming editing techniques.
Normally, compositing is done in-camera, but I quickly realized that if I wanted lighting, shadows, and reflections (all of which really sell an actor's presence in a space) I would need to have the actor be a physical object.
The Problem Solving
No matter what, I was limited to a plane. I could output the chroma-keyed camera input to a render target pretty easily, but I would always be restrained to a 2 dimensional representation of the actor. When it came to producing accurate shadows and lighting, this was a bit restricting.
This is where most of my work went, exploring all kinds of ideas to solve these, as well as how best to handle the camera for both mobile and stationary shots. By the end, I had created a tool and documentation that could be used by anyone, and all they had to do to get final pixels was set some values and plug in a camera.
What happens when you put people on a soccer field and give them RPGs? Chaos! Players run around the arena blasting the ball, clutter, and each other all over the place, resulting in hilariously fun mayhem that only gets crazier the more players that join.
Currently supporting up to 4 player local splitscreen with plans and systems in place for up to 6 player online multiplayer, my first major Unreal Engine project has already proven to be a fun and worthwhile endeavor after less than a month of active development.
My previous Unreal Engine projects had been relatively small and safe when I set out to start this one, so this was my first deep dive into the engine and what it was capable of. I wanted to use C++ as much as possible in order to force myself to become comfortable with it, and outside of a few minor things done in Blueprint it is comprised entirely of hand-written C++ code.
While I could talk at length about the technical side of things and how the game has evolved throughout its development, the design of everything from the arena, weapons, polish, and of course the core gameplay itself all required just as much consideration and iteration.
Takeaways & Next Steps
Working on this project has really improved my solo dev workflow, and has encouraged me to explore the many different disciplines I've been taught. Setting your own schedules and managing countless different tasks and features is quite difficult, as it turns out.
Besides lots of polish, the first thing I want to add is more weapons that will spawn every once in a while to be picked up. It gives the players sub-objectives to fight over and the planned weapons have unique and powerful effects that are sure to add new strategies and chaos.
This project was born out of a school-wide game jam event where small teams competed to conceptualize and produce a playable, polished product within a mere 4 days. Designed to be played on an arcade cabinet, the player assumes the role of a simple warrior who must fight off increasingly difficult waves of enemies.
Though the odds may seem impossible at first, the player has a certain lycanthropic trick up their sleeve. Slashing through beasts will turn the moon icon blood red, and once fully charged they can become a beast themselves! Dramatically increased speed, power, and health regeneration offer a quick power rush that feels great to reach. Oh, and you can play with a friend if you'd like.
Role and Conceptualisation
I personally assumed the roles of lead programmer and co-lead designer, working to create the underlying base for the games systems while expanding upon the creator's initial concept.
The other lead designer came into the challenge with an already well-formed grasp on the direction to go in, but it was very much a team effort when it came to the specifics. What can the werewolf do that the human can't? Why should the player care? Is it too hard to transform? Too easy? What enemies would be most important to add? Countless questions were tossed around, and it was of course our job as designers to answer them as expertly as possible.
Design and Elements
On the programming side of things, I ended up coding the vast majority of the project. The player controller, attack systems, enemy AI, spawning, round changing, and more.
I left it open and customisable for my fellow designers to make the many tweaks and additions they needed, allowing the creation of enemy variations, animations, and other aspects with ease.
UNREAL TOURNAMENT CTF MAP
The Mines of Moria. Arguably one of the most interesting locations in Tolkien's Lord of the Rings, it is a vast underground labyrinth of bridges, castles, and stone cold walls. This served as my inspiration when creating this CTF map for the amazing Unreal Tournament.
I wanted the map to have lots of verticality, with many corridors and pathways that give the players countless options when it comes to traversing the level. This, as it turns out, was much more easily said than done. Creating three separate floors that each had their own purpose and identity while ensuring they mesh well together was difficult.
I didn't want the player to feel like the enemies on another floor were inaccessible, so sight lines and layout became more important than ever to ensure the map still felt connected.
Takeaways and Improvements
There are still some flaws with this map I'd like to touch on in the future. Besides still being a greybox, there are problems with the spawns and wayfinding. The spawnpoints are in an elevated area next to the flag room which offers a quick glance at the enemy team on the other side of the map, allowing the player to gauge distance and perhaps even a route from the get go.
The problem with this, however, is it is not immediately clear where the flag is. New players could easily rush to the other side of the map before suddenly realizing they have no idea where their goal is. This brings us to the other problem, which is that there is very little that leads players to the flag. Lights, objects, signs, and more clear pathways could help combat these flaws.
A school project where we were tasked with adding "juice" to an old classic, modernizing it, or making it more appealing in some way. I ended up choosing breakout, making the blocks themselves react to the music.
Process and Learning Reflections
It took me a day or two of testing and ideation to determine an effective method of accomplishing this. Originally an AI that would read the sound waves on the fly and do its best to interpret the different instruments, it was too time consuming and resource-intensive to continue down that route.
So instead I turned my keyboard into a Launchpad of sounds, physically playing it like a piano while the song ran and saving the input data to a scriptable object. From there I simply assigned different blocks to different scripts and watched it play it back to me, so what you're seeing is really a recording.
Breath of the Wild Major Mechanics Recreation
A smaller project, as it was among my first experiences with Unreal. Built entirely using the blueprint system, this prototype includes functioning hearts, sprinting, and gliding as they appear in the original game.
Card Game Prototype
A card game made in the Unreal Engine using exclusively C++. Shown here is the system for the player hand, which builds out from the middle and evenly spaces. Options in the editor allow designers to change the size, spacing, and more.