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.
Most of what I've managed to find time for lately has been behind-the-scenes stuff that wouldn't make for anything particularly interesting to share. To counter that, I spent last night expanding on my vehicle controller and now have a working combine harvester for mowing down large groups of zombies at a face-melting 12 MPH.
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.
I figured I'd take a little time to share a visual of the editor issue I am experiencing. The video below depicts gameplay footage featuring 220 zombies spawning in a pre-defined area and highlights the fairly significant performance impact I experience when updating my project to any editor version released since 2020.1.17f1.
Today is a rare blank-schedule day and I am taking full advantage. I will be powering through the final leg of this "jetlag" that stems from switching back to a day-routine versus the recent night shifts I had been working by keeping myself busy. The plan is to bounce between cleaning my house and making some progress on my project in a way that I haven't really had the time to recently. I am past the point of being too tired to work on anything complicated, so my plan is to knock as many small and/or polish items off of my to-do list as possible; nothing too complicated or with any chance of causing problems that I might not be able to scope for given how many times I yawned just typing out this paragraph.
I am very tired as I write this due to the fact that I'm still in the process of moving from working nights back to days, so this post will be brief. I hadn't planned on sharing anything and instead was just recording some new gameplay footage of my time manipulation system. I was curious how slow I could set the time scale and still get decent-looking results, and it turns out that I can slow things down to a crawl.
I spent some time playing around with another particle system from an Asset Store package last night, this time adding the first weather effect to my zombie shooter. This scene is created using a simple particle system, some fog enabled in the render settings, an updated skybox, and lastly a small adjustment to lighting. It was thrown together in a hasty manner but I hope to polish things up soon.
I recently built a simple shooting range in my test scene so that I'd have an easier way to try out weapon updates. Nothing special here really, but it's already proven to be worth the effort when it came to testing out a new crosshairs package I purchased from the Asset Store. I've set up a few cubes that hold targets which pop up at random intervals and the goal is to continue to shoot targets to prevent all of them from standing up at the same time.
My YouTube channel recently hit 100 subscribers, and as a way to celebrate, I decided to showcase updates to the minigun special weapon using a horde of 100 zekes. I've improved the particle effects for shell casings by adding just a touch of a trail and also adding collision detection for static world colliders. Audio has been improved as well, ditching the previous version's method of playing a sound effect once for every projectile that was fired that had locked me into a minimum value for the fire rate in order to keep too many effects from compiling and playing over one another. I've since leveraged the same code used to play the looping sound effect for the flamethrower to play a looping clip for the minigun and the difference is music to my ears.
I had a bit of time last night to work on my placeholder safe house last night. Free time for working on this project is pretty rare these days, but this upcoming week it seems as though I'll have some time to add polish where it's needed and to really test out the concept of nighttime hordes trying to break through the barriers.
Last night was likely the last chance I'll get to work on my project until next week, so I decided to spend some time inching my way towards implementing the next game mechanic: fortifying safe houses. As much as I would love to say that this concept came to me quickly and easily, it was actually a several-month-long process in which I spent a fair amount of time letting my mind wander whenever I was away from my desk and free to bounce around ideas. I considered a lot of things and came up with a lot of concepts, and this is the first step in the right direction I have taken in a while. That's not to say that I feel I've taken wrong steps, but more to say that the progress I have made has essentially been building on the core mechanics that existed, and this new progress is really beginning to expand things into something that could be considered a game loop.
I added some new layers to the player-character's animator this weekend and now have states for both relaxed and unarmed. This is another short-but-sweet update that required very little code to pull off and, as you can see from the video, will certainly need some polish at some point. My goal here was to put the unarmed state in place so that I can build the next major mechanic for this project, freeing the character's hands to work with items that will be implemented over the course of the next several days (hopefully).
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.
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.
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.