Game Development:
Currently I am focusing on making a game engine using OpenGL, C#, and .Net Framework (as of Feb 1st 2023). The purpose of making this engine is to streamline the process of game dev for myself personally. That said what I have made is more than a game, because I needed to also design tools. The project itself comes with libraries for designing a game using the engine. Included is a level editor, and a program that stitches textures together, creates and saves items for the engine, and also can be used to design dialogue trees. I was primarily inspired by the game engine "Genesis 3D" which is where the name comes from and isn't actually inspired by the bible at all. I chose this particular naming convention because my first try was just a mod of "Genesis 3D" and I called it "Exodus 3D." That said you can infer that this is my third try at making a 3D game engine, and you'd be right. At some point I do want to release the source code.
Check the project out here: Number3D
Below is information about the next games. Most of it talks about the project itself and what I have learned, not any info about the art itself.
"The Editor" and "Agathe Saves the Day" uses the same C++ engine I designed myself.
Modine Slip
"Modine Slip" is a proof of concept. It is the first game developed with the "Numbers3D" engine and outside of that isn't too special but it is worth mentioning first because "Numbers3D" is my current project and it's important to see how it grows by comparing this first one with the ones I release in the future. That said there isn't much to say. It generates the levels semi randomly but it's all done through C# classes. It can run levels made with the legacy editor displaying the earliest version of custom levels. This early on the textures can also be modified as well. Outside of that this initial game is not as feature rich as future games (and the current iteration) will be. All projects have to start somewhere however and this is the beginning of my journey into 3D engine dev.
The Editor
This was the first project I ever worked on and is the most aimless and simple. This one was made with C++ and SDL. The most interesting thing to note is the fact that this game has a completely randomized free mode. This games also has a dyanmic "lighting" system, which is really just a grid of black squares that is visible or hidden depending on if there is a "light zone" in that area. Additionally it has a basic GUI system which is the beginning of what you eventually see in Number3D. In fact, the most important part about this project is the fact that it's the precursor to a lot of things I would do later on.
Agathe Saves The Day
"Agathe Saves The Day," uses all the code from the previous game and just improves upon it. Additionally, for each large project I wanted to try a new style of gameplay. This does away with the block by block random generation and toyed with consistently designed worlds that contained randomized elements within them. This also ties into the next feature introduced which is global flags. This is important because the NPC that will trigger the global flag is in a randomized house, and, the houses themselves can randomly contain either an infected citizen or a random NPC, among those being a stationer which is required to progress. Using a system similar to the darkness from the previous game (and the last) I also implemented weather as well. On the topic of global flags the end boss also changes depending on the actions you take. This is also the first game I developed that had a stat system. Both this and The editor was made around the time I left high school.
More importantly I started actually designing a game. The previous game was pretty random, it had features I was familiar with but they were just in there for the sake of it. There is a plot, specific actions in the world must be taken to advance it, and the runes you get aren't just random runes but actually hold plot significance. The character's abilities and her companion are important to the world building and lore of the series. That said as most of the narrative was drafted in and shortly after high school I've rethought it quite a bit. What matter is "Agathe Saves the Day" is the first demo that represents a full gaming experience.
Art Death
Art death is the only project made with an engine not made by myself, it uses Unity. In fact, the struggles I had working with Unity is what made me conclude I needed to make my own 3D engine. Those struggles being 3D modeling. "Art death" has performance issues due to bad models and shaders. That said this project allowed me to focus on programming the game itself instead of focusing entirely on developing the engine. This way I was able to spend more time thinking about the systems themselves and how they all intermingled. Though it seems like the world is just a random collection of things each stat informs gameplay on some level. Luck dictates items in chests, strength allows you to break things, dexterity allows you to spawn more and so on.
Additionally I was also able to program around the world building. That sounds a little strange so I will just give a few examples. I wanted to create a psudeo ecosystem. The main enemies "feed" on the plants in the world so you can see them flying to them all. Related to the strength mechanic breaking objects there are boarded up homes that serve to gate progress in addition to adding a little bit of world building to the game. Agility allows the player to fly higher and the world is designed around that. Overall though this doesn't have anything specificlly unique as far as programming goes it does show I can integrate smaller components into larger systems.