Shadow Detection With Render Textures

I participated in a game jam where we worked on game with the theme surrounding light. If you’re interested, you can check out here. For now, I want to focus on the shadow detection system I developed for the project. The designers originally came to me with the challenge of detecting when something is an light and shadow. That by itself would seem easy enough with some careful usage of raycasts....

October 28, 2024

Slime Hunter: Action-RPG

Trailer created with Blender by me Slime Hunter Slime Hunter is a 3D Top-Down Action RPG set in the fantasy world of Slimeria, where players hunt cute and dangerous slimes. Featuring comprehensive combat, spell, and inventory systems, diverse enemies, and a beautifully hand-built environment. Slimeria is a fantasy world where Slimes are the primary fauna alongside humans. For mysterious reasons, the slime population has grown significantly while more dangerous breeds wreaking havoc on local towns....

July 12, 2024

Responsive Melee Combat

What is Responsive Combat Whether it’s an attack, dodge, or block, responsive combat ensures each feels immediate and with appropriate feedback. Games like Hades got this nailed down to a tee. Attacks feel punchy with minimal delay and the player rarely feels like their fighting with the controls to get the game to do what they want. By providing precise control over the character’s abilities, responsive combat enhances the sense of agency and satisfaction, leading to more intense and rewarding gameplay experiences....

June 5, 2024

Unity Custom Passes with URP

I’m documenting some of my adventures looking into the Scriptable Render Pipelines in Unity. I have the goal of creating a stylized 3D pixel-art render pipeline heavily inspired by t3ssel8r. What is URP Cel-Shading Rendering To an Intermediate Texture During rendering passes, it’s common to store information by rendering to a texture instead of immediately rendering to the screen. For example, if you want to just do a pass to collect depth information, you can draw that information in memory and hold on to it to reference for later usage....

May 7, 2024

Handling Normals from Unity to Blender

While trying to import a plane from Blender to Unity, I ran into the issue of the normals facing the wrong direction once imported into Unity. This was particularly an issue when it came to vertex shaders as any vertex transform performed incorrectly. This crux of the issue is that Blender considers the z-axis to be the vertical axis while unity considers the y-axis to be. So, for a plane in Blender, the normals would face towards the positive z-axis but when imported to Unity, they remain so which to Unity is actually along the horizontal plane....

May 15, 2023

Introduction to Unity Shaders

Shaders are programs used to describe how pixels should be arranged, colored, and transformed on the screen. The simple definition extends to so many applications especially in 3D graphics in movies and games. Every computer generated prop placed in a scene is carefully designed to look a certain way, all with the help of shaders. Shader’s make use of the GPU to constantly run concurrent calculation on every pixel and you can decide what those calculations do through programming with languages such as HLSL and GLSL....

May 6, 2023

3D Character Unity Setup

I followed this tutorial https://www.youtube.com/watch?v=bXNFxQpp2qk&list=PLwyUzJb_FNeQrIxCEjj5AMPwawsw5beAy&index=3 Adding a 3D Character Animation States Unity has it’s own skeleton rigging system called Mecanim. To add animations to a character, you first need to add an animator component to your character model and then create a character controller object and link it to the component. Double clicking the controller will then open up a panel to handle state transitions between animations. There you can add each of the states you want to transition your model to and from....

May 3, 2023

Folder Structure and Making Mistakes

When using a programming engine or framework, one of the things I get stuck on the most is how to organize all the directories and files for a project. Every technology has its own separate ethos when it comes to the separation of concerns. It’s such an important part in order to not have a growing project becoming a nightmare for other’s to work with, or even yourself after spending some time away from it....

April 28, 2023