My name is Al Ridley and I'm a freelance game developer with a focus on working with small teams and individuals to assist in the process of bringing game design documents to life. With over 20 years of general programming experience, I bring plenty of knowledge and passion to any project I work on. Whether your goal is to test out a game idea via the construction of a prototype, or you're looking to add another team member to meet deadlines, I am available to work with you remotely to get your project ready for release.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||
Looking to hire a game developer? |
|||||||||||||||||||
Email: info@eatsleepindie.com | |||||||||||||||||||
Discord: eatsleepindie#0989 |
I have over two decades' worth of experience as a freelance programmer and almost 10 years experience with Unity and game development. I began my freelance career programming data-driven web applications using Coldfusion & PHP, and following over a decade of success, I decided to cash in all my chips and begin a life-long dream of developing video games for a living.
Work over the last several years has ranged from having a small part in games - setting up Steam SDK, building multiplayer frameworks, etc. - to Lead Developer for Creative Storm Entertainment's sequel Age of Gladiators II. The development team was small and so my responsibilities were numerous, ranging from rigging character models to programming AI for the arena.
|
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||
Looking to hire a game developer? |
|||||||||||||||||||
Email: info@eatsleepindie.com | |||||||||||||||||||
Discord: eatsleepindie#0989 |
I have over two decades' worth of experience as a freelance programmer and almost 10 years experience with Unity and game development. I began my freelance career programming data-driven web applications using Coldfusion & PHP, and following over a decade of success, I decided to cash in all my chips and begin a life-long dream of developing video games for a living.
Work over the last several years has ranged from having a small part in games - setting up Steam SDK, building multiplayer frameworks, etc. - to Lead Developer for Creative Storm Entertainment's sequel Age of Gladiators II. The development team was small and so my responsibilities were numerous, ranging from rigging character models to programming AI for the arena.
|
|
After roughly 2 months of ill health, I'm very happy to finally be back in my office and working on RIZN. I spent all of last week working on Runiq Online, finishing up the new features that I had started last year as a way of ensuring that I was well enough to get back to work. Now that I seem to be in the clear to work full-time again, I'm ready to dive back into freelance work next week as well.
My online presence has been non-existent these last few months due to the majority of my 2023 having been spent incredibly ill. Since the start of the year, I have been admitted to the hospital twice and came terrifyingly close to death at one point. It's been a long road back, but I am finally feeling back to normal, and this week has seen my first days spent in my home office in quite some time. I've never been big on sharing details of my personal life online, so I'll leave it at that and get right to the work.
I've spent these last few days finishing up what I had started working on for Runiq Online before this all happened. At the time I was unaware of the health issues that would plague me for 9+ weeks and I was feeling that I needed to take a bit of a break from my zombie shooter project before the final push to get the Alpha release out. Had I known what was to come I likely would not have worked on Runiq at all but given that things were close to being finished when I fell ill, I figured it would be best to get it wrapped up and published before diving back into RIZN - something I am incredibly anxious to do.
Even though progress on RIZN has been a bit slow as of late, I do have some updates and new features ready to share. Work has been incredibly busy (more on that later) but I put time into this project when I can, being careful to take breaks when needed to avoid burnout.
Freelance work has been very steady recently which hasn't left me with too much time to share progress on RIZN. I've been spending the majority of my free dev time fixing bugs and implementing small adjustments to make sure that gameplay is as smooth and performant as possible. As far as what's new, the three major recent additions include an incredibly large propane tank, a missing persons board, and (finally) the first melee weapon.
Well, it's been about two and a half years now since I built the first prototype that would ultimately evolve into RIZN, and I've finally reached the exciting point in the development process where the bulk of the main mechanics and systems are in place and I'm free to polish things up and toy around with new ideas. With zombie attacks and the pooling system finished up last month, I've spent the last few weeks fixing a lot of annoying bugs and playing around with concepts that have existed on my Trello board for as long as I can remember. This devlog covers a few of the new features added since my last post.
As promised, this devlog will cover the second half of work completed for RIZN the last several months. I've still got a few small items to wrap up before all of this can be considered completed, but I figured I'd share since the bulk of the work is done and I don't expect any problems going forward. With these items knocked off my to-do list, nearly all major systems for this project are done and working, the only exception being the mechanics for using research stations to work towards a cure for R1Z-N.
It's been nearly three months since my last post here because I decided it would be a good idea to take an extended break from all things social media related before the final push towards the alpha release of RIZN. I'm happy to be back and sharing progress now and, although I've been silent since March, I was still hard at work and have a lot of updates to share with everyone. I'll be splitting this work between two articles to save everyone from a single, novel-length post, so expect another post to follow this one within the next few days.
I've been continuing to make progress on my MMO demo and have settled on a placeholder title: Runiq Online. On top of adding several new features including spells, a lantern, and a complete UI overhaul, I've also released a Windows download for those who would prefer it over WebGL, available here and on itch.io.
I just finished up moving my MMO Demo project to a SmartFox Overcast server (with some generous help from the SmartFox team), and I'm happy to announce that the WebGL demo is available to play for free directly in your browser again.
Freelance work has been keeping me pretty busy these last two weeks, but I've got some free time this weekend to wrap up the few things remaining in order for me to record a 20+ minute gameplay clip. With the culling system now complete and fully tested, I've spent a lot of time playing through two quarantine zones and putting props, crates, etc. in place to ensure that as much of what's done can be shown as possible. I'm circumventing random generation for this clip in favor of loading predetermined zones and structure layouts to make sure that everything plays out according to plan, especially considering that I've still got a ton of work left to do insofar as balance.
My custom real-time zombie culling system is finally complete. In the end, I saw even more of a performance boost than I had originally anticipated. I was immediately able to spawn 1,000 zombies in a quarantine zone, upping the previous max count from ~600 in scenes that contained a lot of world geometry.
Work on my zombie occlusion culling system is finally complete. The following video might be easier to see on YouTube so I've provided a link below for convenience. Zombies on the left side of the screen (frustrum culling only) will be sent for rendering anytime they are within the view frustum, which includes zombies that are occluded (hidden) by world geometry. On the right, the system I've been working on in my spare time now culls any zombies that are occluded, skipping the rendering process for any that cannot be seen; in practice, this will often amount to several hundred zombies that no longer need to be rendered every frame.
I just finished up the next milestone in my real-time occlusion culling system. With this update, the only step remaining is to apply it to zombies and reap the rewards. I'll likely save the final step for tomorrow since there's some clean-up I need to do, and I also want a good night's sleep before I wrap things up.
I'm already overdue for some sleep so I'm going to have to make this short, but I just hit another milestone in my zombie culling system and wanted to share before I turn in. In my previous post, the data being used for the video only ever queried the culling data for the position that the player spawned at; I've since expanded on this by baking all necessary data and performing the query based on the player's current position, which results in the following:
I'm currently working towards a major update for RIZN: real-time occlusion culling for moving zombies using data that is pre-baked in the editor. Frustum culling has been in place since the start, and for those that are unfamiliar with these terms, I'll explain what they do, why they're important, and why it's worth the time to do this.
I decided to try out a new zombie type yesterday and am happy to introduce Betty, an oversized zombie that charges at the player and self-destructs once she's in range. I've set her up with ballet lessons for this video, but the concept should be pretty evident, especially considering this type of zombie is fairly common in zombie shooters.
I've just hit another milestone in my quest to finally get a full-fledged gameplay loop in order. Quarantine gates and doors are now working, consuming a key from the player's inventory and providing a way to move on from their current quarantine zone to the next. The zone generation system I covered in a previous devlog - now implemented in actual gameplay - has added a lot of fun to my dev sessions in that I am can now take short breaks from the work and do a quick playthrough. With these new additions in place, the only part left to close this loop is to expand on my zombie spawner so that more undead can be spawned efficiently in these new zones as the gates/doors are unlocked.
Today is March 14th which means it's Pi Day, and to celebrate I decided to test the limits of my zombie spawner with 3,141 zombies at once. Happy Pi Day everyone!
I've been slowly pushing forward with random level generation over the last few months and have finally reached a point where I can say with confidence that the concept is proven and working even better than I'd originally hoped. I opted for randomly generating levels at runtime so that the demo I release later this year can feature Survival Mode, a game mode that lacks any narrative and instead tasks the player with simply surviving the hordes of zombies as they work towards finding a cure for their infection. This would allow me to release the demo much sooner, leaving me the remaining time until release to focus on the narrative itself and fixing any bugs, etc.
Every once in a while, I get inspired to work on something completely pointless purely for the sake of gaining more experience with the tools I use every day as well as having some fun. Yesterday was one of those times. Inspired by an episode of Adam Savage's "Savage Builds," I've wanted to build a Panjandrum ever since I watched him attempt to build his own. Sadly, Adam's efforts did not pan out as he'd hoped, but I'm happy to say that even though this little side project took twice as long to complete as I had expected, my Panjandrum was both lethal and left me laughing on a level that this project seems solely capable of achieving.