Development Logs

June 3, 2025 — Exciting progress

Today it dawned on me two things that I want in this engine, 'scripting' by using std::functions in a map, and a master texture for each level. I started work on the first part which did not require too much startup code. This is exciting news because this will allow me to enable/disable scripts and see it change before my eyes during runtime! I pushed changes that show the example code working but they will need to be more organized so that all the scripting functions are in a centralized place. In the example, I added to the game object class a map of actions where one of them is rotate and allows all the coins in the map to rotate on the fly. This was also a fun use of lambdas in C++ which is an odd thing to see. Now for the later of the game engine wants. I have seen examples of using a master texture to enable only one load from disk to parse the texture making the load time speed much faster (this will also help with lightmaps in the future). This can be done by manipulating the texture coordinates per object to point to pixels in the master texture's image file. Now, I have not messed with the textures and object loading in general since first implementing it so this will be a fun trip through memory lane. I will get to implementing this when I feel that scripting is in a good working order. Exciting things to come!

May 30, 2025 — Day two, what do I want to talk about

Over the last twenty four hours I have been thinking to myself what would I want this page to be. How should I populate this page with topics meaningful to me and also keep it interesting? I believe in the meantime while exploring the future of this page I will continue to fill this page with learned technical programming knowledge. Starting with issues I have been battling today with the small amount of work I have added to the engine. I pushed a commit today that implemented 'fully functional' split screen mechanic that allows two players to move AABBs around the map (In the future I will discuss the nail-biting process of rolling your own a physics system). In creating a split screen using Opengl you are required (at least with my current high level knowledge) to render the sceen twice using two glViewport commands and two different camera 'views' which in ErlEngine's case means between render passes switch the camera's position since the renderer take the view from the camera to do the whole rendering process (as it probably is the case for most engines). Luckily I have a decent laptop and the frame times for two render passes is still above 200 frames. With all this said, it has stil been stitched together and I need to implement a system to enable split-screen on the fly (this will require more research on my part). When I am able to accomplish split screen on the fly it will allow me to create a system that will dynamically check player distances and toggle split-screen when needed. After pushing the changes I started working on fixing the Engines runtime editor. After some previous camera changes the controls for the editor were broken (these growing pains of updating one part and breaking another is like a persistent cold sore). After fixing editor controls (Mouse/Keyboard) I added a long overdue and highly needed quality of life update. I DISPLAY THE OBJECT'S FILE NAME IN THE EDITOR AND NOT JUST THE DIRECTORY. Now, this may seem like a no-duh should have always been the file name but never underestimate the whack-a-mole programming logic of creating your own large repository and still wanting to see continued progress.

May 29, 2025 — Up and running

After fighting with cloud host I was finally able to get this website set up. I have owned this domain name on and off for about 10 years but I have never truly added a proper webpage to it. The website holds my namesake and will contain musings about my personal interest and current development projects. My Github page contains all of my current projects. The most important of the projects being the Erl Engine. I have been working on creating a game engine for the last 8 months using Opengl and C++. With no prior knowledge of game development, it has been a great source of growth in both my development skills and programming interest in general. Download and run it for yourself, but be warned it is a work in progress and is not by any means a complete project.