Jake G. Cunningham

Product Manager at Shopley Inc.
  • Claim this Profile
Contact Information
us****@****om
(386) 825-5501
Location
Greater Toronto Area, Canada, CA

Topline Score

Topline score feature will be out soon.

Bio

Generated by
Topline AI

You need to have a working account to view this content.
You need to have a working account to view this content.

Experience

    • Canada
    • Software Development
    • 1 - 100 Employee
    • Product Manager
      • Jan 2021 - Present

    • Canada
    • Software Development
    • 1 - 100 Employee
    • Product Manager
      • May 2020 - Dec 2020

    • Customer Service Representative
      • Feb 2020 - Apr 2020

    • Canada
    • Higher Education
    • 700 & Above Employee
    • The Squire Engine: Capstone Update Five
      • Mar 2019 - Apr 2019

      This update cycle we have all been putting in crazy work. This update will focus on the options menu, the PlayerUI, and the Fly.The PlayerUI is a class very similar to my other UI classes in that inherits from UIManager. It initializes and renders in the same way that those do. The big difference is that in creating this class I learned about how to take OpenGL textures and convert them into something the Image widget in ImGui can use. In the player class we update what hearts are being rendered in the UI based on the players health. I also use this class to show the player tutorial information based on colliders in key spots along our levels. When the player collides with the correct tutorial collider, the corresponding controls are displayed onto the HUD.Finally I worked on my Fly class a lot more and wanted to create an enemy that was more interesting than just walking into you. The fly leaves a gas cloud, that is a particle effect and a collider, that hurts the player if he stays in it. it creates this gas when hit, when it hits you, and when dashed through.CodeI have linked to the code below on the GitHub: https://github.com/MattTros/SquireEngine_FilesThe relevant files include: OptionsMenu.cpp, OptionsMenu.h, Fly.cpp, Fly.h, PlayerUI.cpp, and PlayerUI.hVideo to what I have talked about in this update below:https://youtu.be/EJUsERCmi4wIn the future I will be creating a boss, and presenting the game at Capstone Showcase and Level Up Toronto.The Team: Jake G Cunningham (Me) - https://bit.ly/2EAgGd4Matthew Troscianczuk - https://bit.ly/2EeQKSOConnor Wood - https://bit.ly/2GKuWRX Show less

    • Game Programming Student
      • Sep 2016 - Apr 2019

    • The Squire Engine: Capstone Update Four
      • Mar 2019 - Mar 2019

      This update cycle I have been focused on getting our player colliding with platforms in a way that makes sense, as well as working more on enemies.Collision was my main focus over the past two weeks. I created a function that takes the length of two bounding boxes and compares them using the distance from the two model's origins. This acts as a sort of on collision exit, and allows me to know when an object has stopped being on top of a platform. using similar math I was able to tell when the player was under a platform, or on the left or right side of a platform. With this knowledge I was able to create a different collision response based on the players position in regards to each specific platform. I also allow the player to climb walls by continuously resetting his jump timer if he is jumping and touching the side of a platform.Also, I created a new enemy called the Fly. The Fly can chase the player through the air and can go through objects such as the ground or walls. Also, the Flies idle state is a sinusoidal wave, bouncing around on the Y axis. I fine tuned my Ooze, so that he is facing the player while chasing, and facing the direction he is headed always. He attacks by simply touching the player at all.Here is a video of my displaying the work that I didhttps://youtu.be/AD9Encu5zBICodeI have linked to the code below on the GitHub: https://github.com/MattTros/SquireEngine_FilesThe relevant files include: Player.cpp, Player.h, Entity.cpp, Entity.h, Fly.cpp, Fly.h, Ooze.cpp, Ooze.h, Scene1.cpp, and Scene1.hIn the future I will be creating another enemy, and a boss. I will also be working more with collision and getting invincibility frames to work, as well as creating a win condition for our levels.The Team: Jake G Cunningham (Me) - https://bit.ly/2EAgGd4Matthew Troscianczuk - https://bit.ly/2EeQKSOConnor Wood - https://bit.ly/2GKuWRX Show less

    • The Squire Engine: Capstone Update Three
      • Feb 2019 - Mar 2019

      This update will focus on the work I did in about 2 weeks time on an Ooze like enemy for The Squire Engine.My Ooze Entity is a rather simple enemy and is likely the first of many I will create. it has a couple of states it can enter, including: chase, patrol, and attack. The Ooze always knows where the Player is, and if the player gets close enough to the Ooze it enter the chase state. If the Player gets far away enough again, the Ooze re-enters the patrol state. If the Ooze gets close enough to the player to touch it, it deals damage to the player. The patrol state is as simple as when it hits a wall, it turns around. Here is a video of me demonstrating how it functionshttps://youtu.be/Kfbv6WFvYs4CodeI have linked to the code below on the GitHub https://github.com/MattTros/SquireEngine_FilesThe relevant files include: Ooze.h, Ooze.cpp, Entity.h, Entity.cpp, Scene1.h, and Scene1.cpp.In the future I will be creating an Enemy base class for all future enemies to inherit from. Also, I look forward to creating more complex patrol, chase, and attack states for future enemies and bosses.The Team: Jake G Cunningham (Me) - https://bit.ly/2EAgGd4Matthew Troscianczuk - https://bit.ly/2EeQKSOConnor Wood - https://bit.ly/2GKuWRX Show less

    • The Squire Engine: Capstone Update Two
      • Feb 2019 - Feb 2019

      This update will focus on the work I did during the first half of February on the Squire Engine. I created a few GameObjects, and reworked our Scene structure.The GameObjects that I made are intended to make levels in our engine. I created three different platform objects that can be used to make platforming puzzles. One is just a regular platform that the player can collide with. The other two platforms inherit from the first. The moving platform is the most complicated because it needs GameObjects inside of it. It moves in between the positions of these GameObjects with some simple physics code. The drop down platform is much simpler and just has a different tag then a normal platform. This is because the player will check the tag of anything it collides with. Then, the collision response will be different based on what the GameObjects tag is. I created a spike that also just has a different tag..Also, I reworked how Scenes are handled in our engine. It's simply an abstract class called SceneManager, that all the scenes inherit from. It's quite similar in functionality to my UIManager from last update. In the Game class I just create a new pointer of type SceneManager that points to whatever kind of scene I want to load. This will allow us to load and unload scenes quickly and conveniently. Here is a video of me talking about the work that I didhttps://youtu.be/r4FC9TlHU3cCodeI have linked to the code below on the GitHub https://github.com/MattTros/SquireEng...The relevant files include: Game1 source and header files, as well as everything in the GameObjects and Scenes folders.In the future I will be creating Enemies and bosses, as well as getting scene loading done in code and not manually. Stay tuned for future updates.The Team: Jake G Cunningham (Me)Matthew Troscianczuk - https://bit.ly/2Ie2bPQ3aa289127/Connor Wood - https://bit.ly/2GKuWRX Show less

    • The Squire Engine: Capstone Update One
      • Jan 2019 - Jan 2019

      This update will focus on the work I did in about 2.5 weeks time on the User Interface (UI) of the Squire Engine.My UIManager class is intended to allow for the creation of practically any UI fairly easily using the Dear Imgui library, polymorphism, and inheritance. To create a new UI in the Squire engine one just has to follow a few simple steps. First, create a new class with a relevant name to the UI you want to create. Second, make sure that class inherits from UIManager. third, Implement the Update function using the Dear Imgui library to your liking. And finally, add the new class to the state machine. Here is a video of me talking a little bit about my work on UI.https://youtu.be/ntqtsY5WhO0CodeI have linked to the code below on the GitHub https://github.com/MattTros/SquireEngine_FilesThe relevant files include: UIManager.h, MainMenu.h, MainMenu.cpp, OptionsMenu.h, OptionsMenu.cpp, and Game.cpp for my UpdateUI method which acts as a state machine and updates the UI based on what state it is in. In the future I will probably update the state machine, with intent to simplify how to add new classes to it. Perhaps with it's own class dedicated to this task. Also, moving forward I will be tweaking the GameObject class, as well as working alongside my capstone team to create a parallaxing background class.The Team: Jake G Cunningham (Me)Matthew Troscianczuk - https://www.linkedin.com/in/matthew-troscianczuk-3aa289127/Connor Wood - https://www.linkedin.com/in/connorwood1998/ Show less

    • Canada
    • Restaurants
    • 1 - 100 Employee
    • Employee
      • Jan 2016 - May 2018

    • United States
    • Computer Games
    • 1 - 100 Employee
    • Game Programmer
      • Jan 2018 - Jan 2018

      2018 Global Game Jam: Arctic Array. By Jake G Cunningham, Matthew Troscianczuk, and Connor Wood For this Game Jam my group worked in Unity using C#. We worked in a group of 3 and created a 3D puzzle game with our own art assets. I created two puzzles for this game including the puzzle where you have to get three bars into a green zone, and a puzzle where you have to spin two valves to get three squares into a green zone. Also I created the overworld in which the player load into the different puzzles. The overworld is also a puzzle in itself, where once you beat a puzzle, you can move the radio towers that act as levels. Once you beat all of the levels and point all of the radio towers at the center tower, the game ends. https://globalgamejam.org/2018/games/arctic-array Show less

Education

  • Humber College
    Advanced Diploma, Game Programming
    2016 - 2019

Community

You need to have a working account to view this content. Click here to join now