20-day TapTap Spotlight Challenge 2024

Lucid Dream | 20-day TapTap Game Jam 2024 unity Unity C# ...

April 5, 2025

Unity Modular Inputs with ScriptableObjects

Managing inputs in Unity can quickly become unwieldy, especially when dealing with multiple devices and input schemes. This guide explores a modular approach using ScriptableObjects to manage device-specific icons, decouple input events, and enable dependency injection for flexibility. Goals Ease of Management: Simplify handling device-specific input icons. Decoupling: Avoid relying on a centralized input manager. Flexibility: Use ScriptableObjects for modular and reusable input definitions. Drawbacks InputActionDefinition OnInput returns a CallbackContext that can have any information Subscribers have to assume the CallbackContext has the info they need (ex. a Vector2) Steps Follow these steps to implement this architecture: ...

January 8, 2025

Shadow Detection: Why Render Textures Were a Mistake

During a game jam centered around the theme of light, I worked on a project that required a shadow detection system. You can check out the game here. The challenge was to detect when objects were in light or shadow and identify the closest shadow to an object. Initially, I thought render textures would be an elegant solution, but this approach turned out to be a mistake. Here’s why. The Initial Appeal of Render Textures The idea was to use a camera positioned above the scene to capture light and shadow data into a render texture. This texture could then be sampled to determine if an object was in shadow or to find the nearest shadow by analyzing surrounding pixels. It seemed promising because it provided a dynamic map of the environment, avoiding the performance cost of casting multiple rays while also letting us easily find the closest shadow. ...

October 28, 2024

Real Time Rendering Notes

Some notes I’ve made while reading Real-Time Rendering Fourth Edition. Chapter 2 Summary: The Graphics Rendering Pipeline flowchart LR A[Application]:::app --> B[Geometry Processing]:::geo B --> C[Rasterization]:::rast C --> D[Pixel Processing]:::pix classDef app fill:#f9f9a3,stroke:#333,stroke-width:2px; classDef geo fill:#9fe0a6,stroke:#333,stroke-width:2px; classDef rast fill:#b5d3ff,stroke:#333,stroke-width:2px; classDef pix fill:#f9c1a3,stroke:#333,stroke-width:2px; Overview The graphics rendering pipeline is a core concept in real-time graphics. Its purpose is to generate a 2D image from a virtual 3D environment, which includes objects, light sources, and a virtual camera. The pipeline ensures that objects are appropriately rendered by processing their geometry, materials, light interactions, and textures, among other factors. ...

September 5, 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. You probably wouldn’t want to draw normals on the screen directly and mess with the rest of your render passes. ...

May 7, 2024

GitHub Basics for Designers

This will be a short tutorial about GitHub to get you quickly up and started conceptually if you have little to no experience. I may gloss over some things if you’re already familiar. What is Git? Git is a version control system. It keeps tracks of a repository of files and records all changes made to the files. Most popular in software development for managing code bases. It provides a system for multiple people to work on the same files by tracking changes, allowing easy reverting, and merging multiple changes. ...

May 7, 2024

Fundamentals of Combinatorics

Why I’m Writing This This semester I took a role tutoring MATH14998 (Computer Math) at Sheridan College. I originally felt a little out of water given how long it’s been since last studied math. Throughout the term, I’ve learned a lot about what it takes to teach and some of my short comings and strengths. One of them being, I have a sense of what concepts are particularly difficult grasp and finding ways to explain them so that the students can actually understand the concepts rather than memorize formulas. Now my delivery of the explanations could use some work but I’ve put together some explanations that I’m quite proud of, one of them being combinatorics. And so, I’ve included a compilation of those notes here. ...

April 19, 2024

Cyberpunk 2077 Thoughts

Stealth Gameplay My favourite way to play has definitely been stealth with the mixture of hacking and tech being incredibly satisfying and fits a unique power fantasy I haven’t experienced elsewhere. Being able control the battlefield by hacking things like door and explosives, or just zapping enemies on command, adds an almost sandbox like environment for the player to interact with. There’s also the satisfying choice of weaponry from silenced pistols and rifles to melee weapons ...

February 1, 2024

Slime Hunter Pitch

First semester finished! With all the final assignments, I completely forgot about this blog. Whoops! In any case, I wanted to do a little retrospective on our final pitch assignment. Final Pitch The idea of this assignment is simple, we create a game idea and we pitch to the class with a short, 5 minute, prerecorded presentation. The presentation should be informative and succinct and give the viewers a clear idea of the game. ...

December 19, 2023