28
2026Audio is one of the first systems that makes a Unity project feel better, but it is also one of the systems that grows messy if it starts as one script with a few AudioSource references.
LoL Engine’s audio layer began with practical needs:
– Play sound effects by ID
– Manage music and ambient tracks
– Pool AudioSource instances
– Support fades
– Support 3D positioned audio
– Persist player volume and mute settings
– Keep track-level settings data-driven
Then music playlists became their own service.
Read More»24
2026Save systems look simple until players depend on them.Writing JSON to disk is easy. Keeping save data compatible, diagnosable, and recoverable after months of development is the harder part.
That is why LoL Engine’s save system became one of the most important production systems in the package.
22
2026The center of LoL Engine is not a specific gameplay system. It is the service layer.
Most Unity projects eventually collect managers: audio manager, save manager, event manager, pool manager, localization manager, resource manager, game state manager, and a few project-specific systems. If they grow independently, they become hard to initialize, hard to test, and hard to replace.
LoL Engine’s approach is to make those systems explicit services.
Read More»15
2026LoL Engine stands for Labour of Love Engine. The name is personal, but the design goal is practical: stop rebuilding the same Unity infrastructure for every project.
The important decision was what LoL Engine should not be.
It is not an RPG template. It is not a combat kit. It is not a scene-flow opinion disguised as a framework. The package is meant to provide reusable production systems: initialization, service registration, audio, saves, events, resource loading, localization, object pooling, time, notifications, deterministic random streams, and utility patterns for content-heavy games.
Read More»10
2026A good product is built by adding features; a stable product is built by having the courage to delete half of them.
One of the most important parts of building LoL Engine was not adding features, it was deleting them.
At one point, the engine was trying to be too many things at once. It had framework code, game systems, wrappers around Unity features, experimental combat mechanics, character management, questing, UI, scene flow, boot screens, and pieces of specific game ideas all living too close together.
That was useful while prototyping, but it was bloat. It took a deliberate cleanup pass to admit the obvious: LoL Engine should not be a game pretending to be a framework.
Scope Creep
The scope creep was
03
2026Inception
LoL Engine did not start as a product. It started as a way to avoid rebuilding the same game systems over and over again.
But the seed was planted much earlier.
Curse of the Manticore
In college, I made my first game in C++ and Visual Basic. It was called Curse of the Manticore.
27
2024Small utility built in Python to extract icons from an image sheet containing multiple icons on them.
The extracted icons/images are saved in the same directory as the source file and a ZIP file is created with the images.
Usage: python extract_multiple_images_from_composite.py <source_file> <output_directory>
Source: Github Source Code
26
2024Small utility written in CSharp to bulk rename files in a folder and a way to revert them in case of a blackout. This utility goes well in conjunction with the Icon Extraction Utility
Usage: bulk-rename <rename|reverse> [excluded-extensions]
28
2016Igot the opportunity during my first job to train a batch of professionals working on other programming languages about SQL, PL/SQL, Oracle and performance tuning and how best to write high performing SQL code. I was chosen as I had quite the expertise working with PL/SQL. I managed to find a cache of some documents and training materials I created for those sessions.
I have attached them with this post
Read More»28
2015Simple tip calculator is a simple gratuity calculator application I designed and built for iOS as a personal learning project when learning Objective C. I had a blast designing the different screens and this was the first time I attempted designing and building a UI.
My core competencies was always back end programming with mainframes,
Read More»