A few years ago, I learned how to custom make graphics using c# and learned an appreciation for graphics in video games.
This class was a sequel class to the one where I built a game engine from the ground up. I say it's a sequel because it's also all done in c# Monogame, with no game engine (although we did do some class activities in Unity). By far, Graphics for games was the hardest game development class I've ever taken. But first, let's take a step back and talk a bit about what graphics are in terms of video games.
Have you ever played a game where you had the ability to see reflections in water (or a mirror), had the ability to turn invisible, or seen shadows cast across the ground? A fire that crackles allowing you a sigh of relief knowing you're safe from imminent danger? All of these are examples of graphics in video games. The aesthetic of a fire may be up to an artist but the functionality for all of these examples was something coded by one of the developers.
I'll be honest, when I first started the class, I didn't get it. 400+ lines of code for things that don't really seem to make a difference? Ludicrous! But then I watched a Let's Play of "Uncharted: The Lost Legacy" and I'm happy to say I was wrong. The setting in that game is stunning. The way light, shadows, reflections, and more come together, creating a setting that was so bright and colorful and suddenly I understood. It adds to a player's experience, bringing the game, characters, etc. alive in the theater of one's mind.
Why was learning graphics so hard?
I don't know if it's my setup or if I did something wrong but there were several moments where I would follow along exactly what my professor would do in class and it would break or freeze or not work as it should. There were several occasions where I had to restart a ~2-hour lab over from scratch because of this problem. I'm thankful my professor (we had no TA to my knowledge/recollection) was willing to answer all my questions, no matter how rudimentary.
My Favorite Parts of Learning Graphics
Skyboxes are like backgrounds that don't involve level design. I would describe them as the ✨aesthetic✨ of the level. For the following, we were supposed to design our own functional skybox and I had this idea for a zoo of sorts with monsters.
Spooky, isn't it?
So this would have been a cube so the floor and ceiling would be the skin and you'd start by looking at the locked door and as you turned, you'd see the Cheshire cat-like monsters to your right and the scooby-doo looking guy to your left. Then you'd look behind you and pointy-boy would be standing behind you. Real spooky.
For the final project, we had to choose a topic from one of the textbooks no other student has done before, get it approved (because not all topics can be done in c# monogame), and present it. I did mine on texture bombing and let's just say it was a few late-nighters, especially towards the end of the semester when all of my classes became particularly demanding.
Video of my final project
I'll be honest, I don't think I actually achieved bombing but rather a form of tiling. Bombing is when the pattern would be random but mine is all nice in a grid. Both have their uses even though it's not what I was going for. It is good to be challenged, that's where growth comes in.
Thank you for reading about graphics in video games, I appreciate it. Comment below your favorite use of graphics in a video game. If you like my content, consider subscribing to my mailing list. I'll see you in the next post!