Image of Ryan Cooper

Hey, I'm Ryan Cooper. I'm a Game Design and Development Masters student at RIT. I've been yearning to get into the games industry since I was a kid playing Mario on my sister's DS. My love for video games has never faded away, and the influence of video games in the world seems to grow year after year.If you are seeing this, you are looking for someone to join your team and I hope you consider that someone to be me. I have great experience in using engines like Unity and Unreal and have a great grasp of C#, C++, and low-level C.Please take a look at some of the projects I have previously worked on. I take great pride in them all, whether they were game jams, short-term projects, or projects still in development.I look forward to talking with you,
Ryan Cooper

Video

Eternal Machination

Role: Game AI Developer
Time Frame: 9 months
Team Size: 20
Engine: Unreal 5.1
Language: C++/Blueprints

Click here to learn more

Asteroid Rush

Asteroid Rush

Role: Gameplay Developer
Time Frame: 3 Weeks
Team Size: 5
Engine: Unity3D
Language: C#

Check out the game here!

Emu War

Role: Game AI Developer
Time Frame: 12 Weeks
Team Size: 5
Engine: Unity2D
Language: C#

Check out the game here!

Emu War promo poster
Changeling logo

Tinysaurs

Role: Gameplay Developer, Producer
Time Frame: 2 Days
Team Size: 7
Engine: Unity3D
Language: C#

Check out the game here!

Looking for Beans logo

Looking for Beans

Role: Gameplay Developer
Time Frame: 2 Days
Team Size: 4
Engine: Unity3D
Language: C#

Check out the game here!

Video

Tetherpunk

Role: Producer/ Game AI Developer
Time Frame: 2 Years
Team Size: Varied
Engine: Unity2D
Language: C#

Check out the game here!

Changeling logo

Changeling

Role: Producer
Time Frame: 12 Weeks
Team Size: 16
Engine: Unreal 4
Language: C++/Blueprints

See our website and play the game yourself!

Eternal Machination

Video

Download the game here!

Eternal Machination is a fantasy action game where the player wields the power of shadows to defeat mage-punk golems, and liberate the holy spirits they have imprisoned within themselves. The protagonist, Seethe, is an ancient darkness that has been locked away long ago to save humanity from extinction. Archons, the same powers that had imprisoned you, now offer you freedom in exchange for your servitude. As Seethe, the players get to explore different regions, where they have to rely on their control of shadows to both traverse these dangerous lands and face the challenging foes within them. Only after all golems have been defeated can Seethe truly gain their freedom.

Roles: Game AI Developer
Team Size: 20
Timeframe: 9 Months
Engine: Unreal 5
Language: C++/Blueprints

Given the scope of this capstone, two semesters, we wanted that the content we put out for everything we did was as high quality as possible. In other words, quality over quantity.

Goals:

1. Create three enemy variants that serve separate roles in combat
2. Establish creative behaviors for each enemy for each individual enemy
3. Tie the experience together with a boss fight that tests the player on their combat skills
4. Insure as little frustration as possible by researching tells and indicators for each enemy

Designing Enemy Behaviors

Outside of the boss, each enemy held many similarities. Each enemy had a vision, hearing and sight component that would be able to detect the enemy and engage in agravated behavior. Each enemy had a universal damage component that would take damage inputs from all sources, including from other enemies.

Changeling logo
Changeling logo

Enemy behaviors were designed using Unreal's Behavior Tree and blackboard system to hold variables that can be evaluated by the behavior tree and tasks. While the behavior tree showcased to the left is to large to break into detail, every enemy behavior tree roughly broke into three parts. The non combat state (where an enemy looks around or patrols), the player spotted and pursuit stage, and the attack phase.

The Madkar Drill was the base grunt of the game, tpyically group with other Madkars. They have two attacks, a swift chop of the pickaxe and a wide up drill that deals more damage. To give them exra flavor, and not to overwhelm the player, there is a separate manager that gives only one Madkar the right to attack at once. Madkars will also premptively maintain their distance and take turns attacking to give the illusion of coordination even though its just self preservation and cowardice.

Changeling logo
Changeling logo

Thezven Saws control the tempo and force the player to be aware of their charge. They rev up their hard hitting saw and charge at rapid speeds towards the player. Given the biggest area takes place in a poisonous swamp, I wanted to introduce a sense of recklessness in the Thezven Saw. As such, I reworked their attack to use physics propulsion instead of obeying the nav-mesh. If the enemy ends up out bounds, by falling into a dangerous area not covered by the nav-mesh, it will die

The Gulluch Cannon wants to keep its space and fire shots at Seethe from a distance. Between firing shots, it will back pedal away from the player if it gets too close to have a clear shot.

Changeling logo

However, if the time calls for it, the Gulluch cannon will charge at the player and self destruct.

Changeling logo
Video

Video has audio!

The last enemy waiting is the engine of haste. The final encounter mixes up his physical strikes with a laser barrage. Once it drops health below quarterly intervals, it will fire a special attack like the shockwave that drains the user's focus.

Finding Flavor

While we did have a large animator and artist pool, there were still moments where we needed to test the game and interactions but didn't have the animations ready. As such I made some features for playtesting that eventually got into the final build.

When came to death animations, I noticed that anything we could use to cut down on the animator's work load would be optimal. Especially for something as menial as a small death animation. So I decided that I could come up with a way to save the animators work while getting the players excited about scoring a kill. Using Unreal's Chaos engine, I was able to break apart the enemy model into bits when the player scored a kill. Under the hood, when an enemy is killed, it is added to the enemy pool and then a "killed enemy" model is spawned.At the beginning of developing this feature, I really wanted to go all out on the amount of broken parts and the force in which they would be propelled at.

Changeling logo
Changeling logo

Obviously overboard; but we wanted to sell the effect first and work backwards.The end product was much more subtle break while still being satisfying to perform.

For the Artists

I will not claim to be a quality artist. However one luxury of this project was having a very robust artist pipeline from concepting down to the final animations. Since I oversaw the development of enemies, I worked with every member of the art team to insure the vision myself and teammates had was fuffiled.

After I presented the three enemies, and boss to the team, the work got handed off to the concept artist.

Changeling logo

Madakar Unit Concept Art

Changeling logo

Afterwards the concept art would get back to the rest of the team where we would make sure that it was everything we asked for. Once that was approved, the modelling of the enemy would begin.

Once the modelling was done, it would be passed to the rigger and animator to begin working on the animation hot list while it was being textured.

Changeling logo

The animators had a list of animations that we would need for each character in the game. An industry professional gave the advice that a standard practice is to make sure the wind up and recovery phases of the animation have three key poses. He also mentioned that the speed of the animation can only be altered by 15% in either direction before it looks off. To insure that they were modeled with the correct amount of exaggeration I modeled out each animation for the enemies.

Changeling logo
Changeling logo

Successes and Lessons learned

Eternal Machination taught me the most about proper polishing and the best ways to make Game AI feel good. Constant testing both from mandated playtests and QA tests showed in the level of polish we were able to bring to the final product. The level of polish gave us the confidence to show off what we've done to our peers and industry professionals at GDC.

Changeling logo
Changeling logo

This also fared well at my college's events outside of passing with no marks against us. We were selected to present our game in the main hub of the school's showcase, Imagine RIT. In the expo for the game dev major, Eternal Machination won an award for best polish selected by industry professionals from Blizzard.

Changeling logo
Changeling logo

Tetherpunk

Play as Arya: junker, ship jockey, and fighter. Lacking working thrusters, her ship is equipped with her latest contraption, the Rope Tool — a grappling hook and a stapler duct taped together.Swing through the corpse of an asteroid mining gold rush. Gather rockets from the rubble of all-consuming corporate rivalry to propel yourself to blinding speeds. Launch those rockets to take down abandoned drones or set off the industrial explosives left lying around. Everything in this physics-led zero-gravity world is an opportunity for chaos and speed.While this project started as a class project, it evolved into a passion project for many people. I work as the AI developer, designer and producer for the game. I worked on nearly all the enemies and all of the bosses as well as our tutorial system.

Roles: Producer, Game AI Developer
Team Size: 8
Timeframe: 2 Days
Engine: Unity2D
Language: C#

Changeling

Changeling is a VR mystery, first-person 3D platformer game built upon the idea of magical realism and a sense of unease and wonder. You play as Aurelia, a dream-walker who has the ability to see through the eyes of anyone she touches. You are tasked with helping this family figure out what is wrong with their child, and as you contact each member, you see through the lens of their hopes and fears of what the child is.In the summer of 2021, I was the production lead on this project. This was my first time being a producer, and managing 15 other developers plus working with other teams was a challenge. I helped get 4 of the levels built while working alongside the sound team to implement voice acting into the game.

Roles: Producer
Team Size: 12 weeks
Timeframe: 16
Engine: Unreal 4
Language: C++/Blueprints

Asteroid Rush

It is said that the first trillionaire will be whoever figures out how to mine asteroids. Your company has asked you to fulfill that mission in mining the special ore located on these rocks. However, aliens that reside do not take kindly to visitors. Guide your crew to mine rocks and get out without any casualties, lest you provoke the company's wrath.As part of the Master's curriculum, this class asked us to develop rapid prototypes only based on a theme for each game. For this one, we were given the prompt RPG and had 4 weeks to develop. I was in charge of the game state, player behavior and win and loss conditions.

Role: Gameplay Developer
Time Frame: 3 Weeks
Team Size: 5
Engine: Unity3D
Language: C#

Tinysaurs

The only dinosaurs still around can fit in your pocket! Make fossilized creatures out of spare bones, use them to dig up more!I dragged this team together for Ludum Dare 56 for a "low stress game jam". Ended up doing very well finishing in the top 25% of all games in most categories. I did most of the coding on this project as well as coordinating with the team on their production.

Role: Gameplay Developer, Producer
Time Frame: 2 Days
Team Size: 7
Engine: Unity3D
Language: C#

Emu War

In 1932, the Australian govenment declared war on the emu population. This is how we think the war went down. In Emu War! you must join General Emunel and his emu horde by eating wheat and avoiding the watchful eyes of the Australian hunters who want you dead. Will you collect enough wheat to keep your flock happy? Or will the Australians rewrite history (Because in the actual Emu War they legitimately lost).This project is unique compared to many other courses as we were only permitted 2 hours of work per week throughout the entire semester. I was in charge of the AI and making the hunters as a legitimate threat to the player while still allowing for the player to work around them. This was one of my first cracks into making engaging enemies as AI. If I had more time, there is a lot I wish I could have done in terms of bug squishing, but given the constraint I'm content.

Role: Game AI Developer
Time Frame: 12 Weeks
Team Size: 5
Engine: Unity2D
Language: C#

Looking For Beans

Mark for delete?This project was created during a game jam in 2020. The theme was dreams and frankly I have no earthly idea how we ended up here. You guide a shadow demon to the fridge to get him beans while clearing the obstacles that stand in his way. Once again, How did we get here?During this project I was responsible for creating the automatically moving shadow demon, implementing points of navigation, the camera, obstacles and looping. This project is special to me. It was my first time working with an automated character. Even though the game is simple and crude, it one second place at the game jam and was the first time I saw that games I make can be enjoyed by people.

Role: Gameplay Developer
Time Frame: 2 Days
Team Size: 4
Engine: Unity3D
Language: C#

Circuit Breaker

Insert Game Description here

Roles: Producer, Game AI Developer
Team Size: 8
Timeframe: 2 Days
Engine: Unity2D
Language: C#

Producer roles part 1: leveraging talents

Part 2: Establishing the tone.

Part 3: What to do if it rains.