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....

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

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....

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

C++ Test Review

Just some scattered notes for test review. Object Composition Object memory is stored contiguously. If an object has pointers, those pointers are still stored contiguously but point to wherever the data is. Object Ownership One simple approach is to say that whatever creates the object becomes the owner of the object Thus, it becomes responsible for deleting it Inheritance Polymorphism Zombie* bob = new Zombie("Bob"); Zombie* sally = new ZombieSoldier("Sally", 100); bob->attack(); // prints "Bob throws a punch" sally->attack(); // prints "Sally throws a punch" // wait....

October 16, 2023

Satisfying 2D Movement

I’m in the middle of working on my first mainline c++ project at school. We’re tasked with making a simple vertical spaceship shooter using c++ with SDL and some pre-made assets to form the game. At the moment, I’ve set up most of the classes I will need and have a simple ship that renders onto the screen. Naive Movement My first iteration of ship movement does have some forward thinking but allowing ship movement to continue by holding down keys....

October 13, 2023

Portrait Action Mobile Games

As I was looking for games to play during my bus rides, I realized the convenience of being able to play phone games one-handed, or just simply in portrait mode. It’s a lot more comfortable to hold, especially in tighter environments like a bus. There’s lot’s of options for this but they mostly amount to puzzle games and such. Instead, I wanted something more actiony and rpg-like I could play in that format....

October 11, 2023

C++ A Personal Guide

A compilation of various features and gotchas I’ve encountered while studying C++. Instantiating Object Member Variables When to Use Initializer Lists Intializer lists offer a secondary method of initializer member variables for a class. A question comes up of why would we use this method as opposed to initializing the variables on declaration of just in the constructor. Below are a few core purposes. Initialize Const Members You could initialize these on declaration but what if you we want to pass in their values as arguments to the constructor....

October 4, 2023