Keywords: HDRP - New input system - Cinemachine - Shadergraph - VFX graph - Light baking - Post Processing - Atmosphere - Game play - Game design - Scrum - Communication - problem solving - character controller - Enemy AI - Optimization - Unity collaboration - Build - NavMesh
Overview
Cor Domus was made by our team's heart. It was born in Global game jam 2019 when we were taking our studio class. The theme was "Home" and we chose heart as home. The game is designed as an allegory for the trials and challenges of a new relationship. The characters’ journey reflects the different stages of their relationship, from the beauty and uncertainty of the Forest to the trying, tumultuous Mountain Path, to the tricky and treacherous Ruined City, and finally to the peaceful Shore. As of the game play, Cor Domus is a cooperative puzzle/action game for two players. The
game’s central mechanic plays into the theme of new relationships; when both characters are close to one another, they regenerate health and share a life bar. When the two characters are apart, however, their life bars are separated, and their health slowly drains away. Cor Dumos changes from Game jam on the left to the final version on the right
My role in the game was varies. As the tech lead, I was the main programmer and the shader creator. Since all of the artists were Unreal Engine users, I was in charge of choosing right tools in Unity (such as HDRP, Shadergraphand and etc) that the artists could adapt and learn fast; and to make sure we can finish the project with a good quality. Making particles using VFX Graph, backing light, post processing and atmosphere for final version were other tasks I worked on. I was also one of the main game designer for Cor Dumos. The following will be my challenges and things that I learned from the project. Our Art bible will have more information on tasks that I wasn't involved in.
Game Art
I was working closely with our Art lead to create all the tools that the art team needed for our game style. Shaders, particles, backing lighting and atmosphere were my tasks in terms of game art. The followings are some of my works in details.
Shaders
At the time we were making Cor Dumos, shadergraph was a new and beta feature in Unity. Lack of resources and bugs were my main challenges. However, It was still easier and faster than coding shaders. I made 30 Shaders to support our team needs. Some of the m were similar but in different variant. For instance, I made 3 different type of toon shaders that were reacting to light and textures differently. I would categorize the shaders in to 3 types. One is still shaders. Second is animated shader and 3rd would be responsive shader.
Still shaders are the one without any vertex animation and their parameters wont change during the game play. Water was the most challenging still shader that I had to create. Realistic transparency, border line and a shading that could match our style were in my mind when I was making it. Trees and grasses are using animated shaders. which essentially animates the vertices. I made different variant of animated shader such as shaking grass, slow animated tree trunk and smooth grass wind. Some of the Shader's variables needed to be changed during the game play. For example, when the players were getting close together then their cracks would shine. Or when the more character get closer to a specific object then the object will get shinier base on distance.
Particles
VFX graph made creating particles easy and fun. Although there weren't many nodes back in the time, VFX graph was still a powerful tools to use. Gates, power line and projectiles were the particles that I worked on. Rest of the particles, such as fire leafs and the water fall were made by lead art using standard particle systems.
Light, Atmosphere and Post processing
I never worked on Light, atmosphere and post processing until after graduation. I still wanted to work on the game to fix some of the bugs and also improve the visuals and mechanics. However, my teammates where busy with their life and they couldn't work on the game anymore. So, I toke over the visuals as well but I was still getting feedback from team. 3D fog, backing light and post processing were the changes I did to transfer to where the final version is. Fallowing is some before and after the changes.
Game Play Development For the Game development, I was in charge of the new Input systems, physics, character controller, NPCs, some other game play related tasks such as changing shader values in real-time or character animation. Beside that, I was in charge of picking up the best tools to develop our game faster. For instance, Cinemachine helped us to save time on creating a professional camera system. Figuring out challenges with the Unity collaboration service, Importing assets and manipulating them while multiple people are working on same scene where other responsibilities that I had.
Character Development
Creating a character controller can be very challenging. Luckily, Cor Dumos didn't need an advance character controller. So, I decided to use Unity's "Character Controller" instead of making a custom Rigidbody based character controller. Walking on stairs, slope, platforms, dragging crates and ray-casting where the physic activities that the character was involved with. We only had three type of enemies. Projectiles, NPC and boss. While all these three where completely different in core from each other, we didn't have different variant for each enemy type. We also didn't have saving game mechanism. So, for those reasons I decided to not using the scriptable objects. Animation and state machine was another are that I had to work with the artists closely. Character scale, rigging and animating for games were some of the discussion areas. My previews works in animation came handy in the discussions. Using Unity's Navmesh for the NPC AI was quiet easy.
Player animation state machine
|