Eat. Sleep. Indie. is a small game development team founded by myself (Al Ridley) and my daughter (Zoey). With more than a decade's worth of game development & testing experience, we recently combined our efforts as Lead Developer & Lead Play-tester to help bring Creative Storm's title Age of Gladiators II to Steam. We have both been holding controllers and sitting at keyboards since we were old enough to hold up our heads, and we bring that passion for gaming and a keen dedication to any project we work on.
I have over 2 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.
I went down the 2020.2 rabbit hole a bit further last night and can say with confidence that the performance decrease I am experiencing is due to ragdolls. Somewhere between 2020.1.17 and 2020.2 character joints took a small performance hit, and when that small hit is extrapolated to 200 zombies, it drops my framerate down by about 20%. It is a bit disheartening to know that my project currently exists in Unity editor purgatory, but I have a plan that I intend to implement tonight that could render the issue moot - fingers crossed that it works so that I can finally leverage URP to the extent that I have wanted to for months.
After confirming my suspicions, I decided to have a little fun.
Don't let her small frame or single-digit age fool you; Zoey is a pro at finding gameplay bugs. Possessing a knack for attempting to do things in ways that most others wouldn't, her contributions to the work at ESI have been paramount in ensuring a top-quality game is delivered.
Her love of video games began before the age of 2 when she would join me at my desk, grab the mouse and wander the world of Revery. Since then she has helped prepare several projects for release, including a children's book about the Forbidden City in China and receiving her first game development credit with the release of Age of Gladiators II.
With the release of 2020.2.3, I've decided to finally take the plunge down the URP rabbit hole. I spent a lot of the Unity 4.x and 5.x cycles keeping up with the latest version of the editor and dealing with the growing pains that come with that; these days I tend to wait for things to get ironed out before diving into any major additions to Unity, and as a result, URP has been sitting on my "learn to-do" list for a long time now.
My quick review of URP: I love it! I like the overall look of the default URP shader over that of the Standard shader and there are also significant performance improvements for any projects that are using real-time lighting - especially those with a single real-time light source, a configuration I use for just about any prototype I am working on. I'll get more into details regarding performance improvements a bit further into this devlog; for now, I want to cover the issues I ran into with regards to my zombie shooter.
After spending the early part of this past Wednesday play-testing and fixing bugs for my client's project, I decided to spend the rest of the day working in Blender as much as possible, and eventually opted for setting up a new special weapon for my zombie shooter. During stretches where most of my time is spent programming for my day job, I tend to favor working in Blender when I have time off, or even creating Prefabs in Unity that will be leveraged at a later date. One of the things I enjoy most about this work is the fact that it bounces me between the creative and the technical at a fairly constant rate, and I have always found one to be a refreshing break from the other.
The majority of my freelance work lately has been programming core mechanics for my client's game. Today was a day off that I had intended to spend entirely outside the confines of my home office, but I got inspired to put some improvements in place for a few particle effects in my zombie shooter, given that this work gave me the chance to play around in Blender and required no programming whatsoever.
For the first time since I added this devlog to my portfolio site, I have been given the green light by a client to share progress on their project. I was recently made lead developer for what will be the first release by Mind Shower Studios (social media links provided below) and I couldn't be more excited to be both working on and sharing this project.
As is the case with any new project, there were some growing pains during the early stages of development. This project started out as a 2D game, made a very brief turn towards voxel, and is now leaning towards a more traditional low-poly aesthetic. The screenshot below depicts the various versions we have play-tested along the way, but the good news is that these transitions didn't derail progress for very long at all, mostly due to the fact that they were made early and without the assumption that what existed was set in stone.
It's been a productive few weeks with regards to freelance work since my last devlog, but not so much with my zombie shooter. I just haven't had the ambition to work on it much, partly due to my schedule and partly due to the fact that I needed some downtime. I did, however, put a concept into place that I have had on my to-do list for quite some time, and now have a base/headquarters for my player to call home.
I decided to spend a bit of my lazy Sunday afternoon testing out the performance improvements I put in place back in December. I haven't had much time to work on this project, to the point that today is the first time I've even opened it in two weeks. Work has been steady and I believe in making hay while the sun is shining, and as always, my job takes precedence over my own projects.
I had planned on recording some new gameplay footage today to share with everyone, but I ended up getting lost in level design instead. I'm currently expanding the downtown area of my map and placing various props to fill things out a bit. I still have a long ways to go, but progress is progress, and after play-testing the level a few times, I think it's definitely going to be worth the effort to get this done before recording a new video.
As promised, here's some gameplay footage of preliminary work on the crafting system. This video also features a new lethal item, tentatively named 'Shrapnail' due to the fact it is essentially a soup can filled with nails and black powder. Slightly different than the standard frag grenade, this new explosive sends shrapnel out in all directions, severing the limbs and decapitating nearby zombies at random.
Finally managed to get some free time tonight and have begun work on a crafting system for my zombie shooter. Pretty basic stuff here: you loot items and then combine them into something useful like improvised nail grenades and Molotov cocktails.
If you've read my last few posts and are wondering why I have not done what I said I would - updating everyone on the work I did on my zombie shooter early last month - the answer is simple: freelance work always has, and always will, come first and foremost when it comes to my game development career. It is the means through which I provide for my daughter and I love my job; I enjoy meeting new clients, I enjoy turning GDDs into playable prototypes, and if I'm being honest, I enjoy just how hectic things can get. The act of constantly calculating where and when to put my time and balancing my work schedule is - in all honesty - a bit of a rush for me.
I implemented some performance improvements for my zombie shooter earlier tonight, and the end results were more significant than I had any right to hope for; in fact, they were so significant that at first I was convinced I had an error in the scripts I had written to display the exported test results using Google charts. After having run the test repeatedly and double-checking everything, I am happy to report that just a few hours of tedious work has resulted in a frame rate boost of 15-20%. The chart below displays the average frame rate recorded during a performance test scene at 4 different shadow quality levels (no shadows, low-quality, medium-quality, and high-quality).
I was able to get my WebGL MMO demo up and running again today, thanks in no small part to some IL2CPP bug fixes in recent Unity editor updates. The demo is now available to play for free and should run in most modern web browsers (disabled for mobile devices, at least for now). This process was as simple as updating the project to the latest 2020 editor version, and even though I still need to keep compression disabled in order to side-skirt some bugs that are still present, at least it is up and running again.
The first thing I want to share that was completed prior to my recent social media and devlog hiatus is an alternate firing mode for the rocket launcher; or, more accurately, an alternate type of ammo. This new rocket consists of five fireworks which, after a short distance, separate from one another and fly off on their own random trajectory. Any fireworks that collide with an obstacle or zombie cause an explosion similar to the original rocket, and any that reach a specific altitude explode into a burst of color mid-air.
For those of you who have visited this devlog in the past, you can likely see why it is I haven't posted any updates to my zombie shooter in a while. With my new portfolio site up and live, and everything I own that isn't used on a regular basis boxed and ready to go, I am very excited to be well on my way to moving back out West and continuing my freelance gamedev career through the 2020's.
Felt like trying out a new weapon this afternoon. I'm still back-and-forth on whether I will have melee weapons as an option in this game, but it's always fun to test things out since you never know where inspiration can come from.
The other night I had gone through the ridiculously-long list of asset store packages that I have purchased over the years to see if there were any I had forgotten about that could be leveraged in this project. That hunt is what led to my inclusion of the compass system, and I had forgotten that I'd also imported a dynamic bone package with the intention of using it for hairstyles. After work tonight I opted for some quick Blender work to wrap up my day, and I have now created two simple rigs for the above hairstyles. I will likely leverage this system more in the future, but this is the first time I have used this particular package since learning how to create simple rigs in Blender, so I am pretty happy that I got everything to come together without much fuss at all.
I set up an electric scooter using my vehicle system during my lunch break today and it turned out better than I thought it would given the short amount of time I had.
Today was a long day full of meetings and it's looking like my free time to work on this as much as I've been able to recently will soon be coming to a close in favor of freelance work. I managed to get a few things in place between bouncing from Discord to Zoom to Skype, and wanted to share before I close up the home office early; with contract work being very likely in the next day or two, I am going to take a break from game development before I end up burning myself out just before starting a new project.
This latest gameplay footage is a culmination of everything that's been done these past few weeks, which includes the new day/night cycle, character equipment and armor, weapon mods, and even the first in-game achievement.