Call of Oseron
Call of Oseron is my final Capstone project at Full Sail University. We have been working on the game for 5 months and plan to continue working on the game until the project is ready for release.
Call of Oseron is a third-person RPG with an open-world design where the player plays through quests and defeating enemies with a complex combat system.
Call of Oseron features an open world the player can explore and fight across 9 different zones. The game has a fully functional quest system to help guide the player through the story and game world. Call of Oseron features an in-depth combat system that gives the player a variety of ways to dispatch enemies and player customization through a talent system that the player can update as they level up.
During my time on this project, I acted in numerous roles such as tech designer/gameplay programmer, Project Manager/Team Lead, and asset integration/management. As the project manager, I helped the team decided what was going to be worked on and to develop feature lists to keep the team on track, I also worked with team members to ensure work on different systems kept in line with the team goals, and I helped fix/solve any issues that came up. I worked with the team to decide and control which assets were brought in from the asset stores or from artists and getting them implemented and tested properly. In my main role in the project, I worked as a technical designer/gameplay programmer. I took all the major game systems from the initial concept to fully functional implementation in-game. I was responsible for the development and implementation of the combat system, quest system, AI development for both enemies and friendly NPCs, combat management system, talent system, world management/control system, ability system, enemy spawning system, and I developed the debugging tools for the designers to use during testing.
Combat System: Our combat system consists of both used abilities and a combo system. This was made very simple by using the Unreal Gameplay Ability system within the engine. Our first iterations on the project had a custom-built ability system that was designed to operate in the same way as the gameplay ability system. Over time we realized we needed to spend too much time developing this system and not enough time developing the game so we switched to the GAS system within Unreal.
Quest System: We spent a lot of time developing this system. Our first system gave us a lot of ideas on how we actually wanted the system to work and how much more efficient we wanted the system to be. In version two we took a lot of design on how WoW did the quest system. Given our short time frame to get the project completed and the large goals we had this felt like it gave our game the ability to have an in-depth quest system that would guide the player through the game and provide a good story without going into a full-blown dialogue system to deliver quest to the player.
AI: Our AI system took full advantage of the GAS system, AI Perception, and Behavior tree tools all built into Unreal. This gave us the ability to make numerous enemies and give them special abilities quickly. The system is also open enough for further development to allow for more complex and dynamic AI development as the game progresses in development.
Combat Manager: This was a simple system that kept a list of all AI agents attacking the player and only allowed a specific number of AI agents to attack the player at one time. To give more variety to combat it would rotate around the enemies that were attacking based on a timer and on distance as the player moved around the combat area. This system also gave us a tool to be able to tell when the player was in combat or being attacked so that we could block things like the player resting to regain health.
Talent System: Our talent system allowed designers to create ways for the player to both gain passive boosts to their stats and active skills to change how the player plays the game. This system was designed from the ground up and went through three different evolutions. In the final version, it resembles the WoW talent system quite a bit. Again we came to t his decision because of the project time constraints and simplicity of UI and interactions while allowing the system to still be useful and fun for the player.
World Management/Control system: This system did numerous things for the game. The first thing is it helped define the zone in a way that could be easily understood by code and other systems. We used this system to disable AI and other active events when the player was not in the zone. This helped improve performance and ensure that the AI was not trying to path find on a zone that was unloaded which would cause crashes that we fought for quite a while. It also allowed us to give feedback to the player on where they were in the world. This system is designed in a way that it can be easily expanded for any needs that would relate to the world and the zones in that world.
Ability system: When we first started the project we rolled our own custom ability system. This system had built-in target acquisition, modular effect and damage ability that would be applied at the end of an ability, animation/montage support for custom effects, the system allowed for combos and different on use abilities. Everything including using a healing potion or damaging a player with a hazard used an ability to achieve this effect. In the end, we did not have time to fully develop this system for the needs of our game and we switched to use the GAS plugin in Unreal, which allowed us to focus on making fun and interesting abilities for the player and not spend so much time developing the system that would allow us to make them.
Spawning System: Developed a system that allowed the designer to fill the world with enemies. The system has two different types of spawners. The first is an area spawner that we called an AreaSpawner and this allowed the designer to have random enemies spawned over a large area. This was mainly used to fill areas like the woods with appropriate animals. Then we created the camp spawner. This spawner allowed the designer to specifically select where the enemies spawned and to assign them patrol points. This gave the area a more controlled feel when the player approached, like a bandit camp that has enemies standing at the fire and someone patrolling the perimeter.
Debugging Tools: This system allowed the designer to teleport to different parts of the world, it gave tools to add XP and assign talents and items. It really gave the designer the ability to test systems that would take a long time to test just by playing the game.