Jean Lorenz Alarcon, preferred to be called Renzy. Professional game developer since 2020. Excelling in various fields such as UI, gameplay systems, networking, and tooling programming with experience in major game engines such as Unreal, Unity, and Godot. On my off time I like to play video games, or try programming things outside my expertise like application development and graphics programming. I'm open to any game developer positions, but also open to broaden my horizons to positions like web dev, embedded, or as an application dev.
Engines: Unreal, Unity, Godot,
Languages: C++, C#, Java, Unreal Blueprint
APIs: DX11, OpenGL, Firebase, PUN2, Unreal Networking Solution, SDL2, Dear ImGUI, Box2D, Win32
Source Control: Github, SVN, Perforce
On My Way Home is an endless runner game submitted for Brackey's Game Jam 2024. Avoid obstacles by either switching lanes or jumping over and sliding under them
It was made using Godot and was my biggest Godot project at the time.
Download and play now at Itch.io
Mechroneer was the first game I developed. It was my student capstone project. Mechroneer is a MOBA similar to Battlerite, but with customizable robots. Build your own robot by mixing and matching various parts. Those parts will determine the stats and abilities available to your robot. Toss your robot into the arena to fight against other players or AI.
The game was made with Unity and I oversaw various aspects of the game such as the ability system, the UI stack, networking, and the overall architecture of the game.
Download now at Itch.io
WordMeetsTee is a mobile game where scrabble meets golfing. Each turn you pick a club and gain letters to build as many words as possible to try and reach the hole. Play solo or against other players either in real time or freely quit and come back later when your opponent has finally made a move.
WordMeetsTee was made in Unity and I was in charge of networking, microtransactions, cloud saving, UI, and various gameplay systems.
Chess Soccer was developped for a game jam back in 2020. The name of the game is quite literal; using chess pieces to play soccer. Capture pieces to give them a temporary time out. Grab the ball, pass it around, and try to score into the goal! First to 3 points wins!.
This game was developped in a pair. I did all the programming while my partner did the art and sound effects
Download now at Itch.io
This month, I tackled the topic of Physics and Physics Engines. Always wanted to know how it worked. I could just look at some open source engines and look at there code, but what's the fun in that, so of course I'm going to code my own?... Well I didn't end up getting any coding done since unlike rendering, I'm pretty rusty in physics, and had no clear goals or much a clue for what goes into a physics engine, so I didn't know where to start.
I ended picking up the book "Game Physics" by Ian Millington which goes over exactly what I was lacking and a nice refresher on various physics and some math topics. I already knew some high level basics, since it's something you run into when using physics engines in the first place, like collision detection, and forces. But the actual details on how these are implemented and all interact with each other... I just don't know where to start.
One thing I did attempt to do for fun was trying to make strong types for units and try to use that for the engine.
In C++ there are a few units libraries out there already, a prominent upcoming one is the mp-units library,
however it didn't support operations for multiplying and dividing different units to go from say "m" -> "m/s",
though later on, I discovered it actually does, but I guess I was doing something it didn't like as the equations
I wrote was giving me compiler errors.
In order to properly calculate the correct unit type for a given equation I turned to metaprogramming, and boy is it a daunting task.
It requires a lot of variadic template manipulation that I couldn't figure out so I just did the next best thing, copy
pasting the exact resulting units when multiplying / dividing, but there were a lot of cases to consider.
Speaking of units, did you know a Newton (N) is defined as kg*m/s/s? I mean makes sense considering F=ma.... I guess I wasn't paying attention to high school physics as I never made that connection back then. On New Years, Youtube recommended me the video "Cursed Units", and after watching that made me realize, implementing operations to the units library is even harder than I thought.... and I already knew it was going to be though.
During my studies, we learnt some basic rendering with OpenGL. Going up to drawing some primitives, texturing, and some basic effects.
I wanted to learn more, so the first topic of my monthly learning was to go beyond the basics. I booted up Learn OpenGL in order to read up on
those topics and implement them myself, but with a twist, I'm going to implement them in DX11 as I ended up liking it's API more than OpenGL when I was learning on my own.
I got as far as to doing basic shadow maps, and surprisingly, the technique is so simple and pretty genius. This is also when I started to understand making render passes.
Even though I've only gotten to basic shadow mapping, this gave me new found awe on modern renderers as not only is the code to support basic shadow mapping is starting to get decently complicated, my code isn't even structured at all yet. Just imagining what a renderer in a AAA engine needs in order to support all their techniques while also being strucutured, I can only begin to imagine how crazy complicated these renderers are.