Daniel DeEntremont told us how he came up with the idea for Squirrel With A Gun, explained why Unreal Engine 5 was chosen for the game, spoke about the production processes behind its environments and gameplay mechanics, and shared some advice on preparing a game for a Steam release.
In case you missed it
You may find these articles interesting
Hi, I'm Dan DeEntremont! I work professionally as a 3D Artist at Muse VFX. We do 3D visual effects primarily for TV and sometimes for feature films. We've worked on shows such as Teen Wolf, Dusk Till Dawn, Y: The Last Man, and What We Do In The Shadows. I actually have no professional game development experience. Luckily, many skills from VFX art transfer over, so dipping into indie game development wasn't 100% unfamiliar.
I've had a strong passion for game development since I was a kid. My first gamedev app was called the 3D Game Studio, in which I made a game where you shoot a bunch of Luigis. I studied at the DAVE School (Digital Animation and Visual Effects) in Orlando, FL. At the time, courses were geared toward pre-rendered 3D effects. My first job after the DAVE School was in Los Angeles, doing VFX for a bug-monster movie called Infestation, and I've been doing visual effects ever since. Even so, I continued to hold that candle for game development and kept developing my skills as a hobbyist.
Getting Into Indie Game Development
Indie game dev is interesting because there isn't usually one single issue you're spending a lot of time on. Instead, there are HUNDREDS of little tasks to complete. Compounded, it takes a lot of time and makes it very difficult to estimate when you'll be finished with a level or mechanic. Since time is limited, you also need to watch out for "time sucks". I personally could noodle shaders and lighting for a whole day, but those hours are usually better spent elsewhere.
The creative vs. marketing side of things is where I'd really love to split myself in two – one to do the game and the other one to make interesting tweets and gameplay snippets. We've been so fortunate that Squirrel With A Gun went viral last August. It definitely marketed itself for a time, and now there is an interested base of players. It was also VERY fortunate that I already had a Steam page up when it went viral, so people could wishlist it.
You often see game marketing professionals on Twitter who speak of the importance of a concise elevator pitch, and it really doesn't get more convenient than "You're a squirrel, and you get a gun."
Squirrel With A Gun
I'm sure many indie devs will tell you that they have a thousand game ideas always bouncing around in their head. One thing I found humorous was the idea of a small animal holding a regular-sized pistol. It's going to sound weird, but the idea may have been subconsciously inspired by stand-up from Eddie Izzard and Kat Williams. They have both referenced a squirrel with a gun in their bits.
Choosing the Software
As a hobbyist, I used the Unity engine for some time and even released a mobile game about monkeys on the App Store. What really drew me to Unreal was a part of the engine called Blueprints. It's a visual scripter that allows you to program with nodes instead of text. It's fantastic for rapid prototyping, and so far, I haven't needed to delve into C++ for Squirrel With A Gun. Unreal also has a great "groom" rendering system, which allows the squirrel to have realistic strand-type fur.
I've also used Blender for rigging and animating the squirrel and humans. Houdini is a program I use at work, it helps with the fur combing and lots of procedural modeling.
There's a certain intrinsic humor in a cute animal committing violent acts. But it also helps that the violence isn't ultra-realistic. Characters ragdoll in an exaggerated way. The non-enemy humans eventually get up, even after losing all their HP. Though in my opinion, it may be a fate worse than death, as the squirrel could continue to torment them.
Designing the Game's Environments
Epic Games gives out free assets every month, which greatly helps speed up the process of level design. Since I'm the only one doing the 3D stuff, it's a big time saver to have these great modular neighborhood pieces. There is definitely a negative stigma over using asset packs, so I'm giving the neighborhood a little flavor to keep it from looking generic. For example, one of the houses on the block is owned by an eccentric fellow who has placed landmines over his front lawn.
All of the assets tend to need some uprezzing because their detail level was built for a camera 2+ meters in the air. Playing as a squirrel, you get really close and notice the collision hulls are off by several centimeters sometimes. This may be imperceptible as a human, but as a squirrel, your feet may clearly sink into the ground.
Setting Up the Fur
As for the squirrel's fur, I began the process in Blender because that was where I rigged the squirrel's skin. Blender's fur system ended up being too bare-bones for what I was planning. So, I switched over to Houdini.
One challenge has been getting the fur to work with the outfits. To my knowledge, Unreal currently doesn't support alpha masking on the fur shader or changing the length based on a map. This becomes a problem with shirts and pants because the fur tends to poke out of the clothes, and you'd want to mask it out. I ended up separating the fur into layers (torso, legs, ear tufts, etc.) and turning them on or off based on the outfit or species' specifications. It's working nicely with the current wardrobe, but I may have to further divide layers if I add something like a tank top.
Programming the Squirrel's Movements
I frequently reference YouTube videos of squirrels to see how they move. I learned a lot about animal gaits on this project. When squirrels move, they "bound" which is basically hopping forward. Left limbs are mostly aligned with their right counterpart. Rabbits also have a "bound" gait. When a squirrel jumps, it isn't too different from a bound, so I was able to repurpose a few keyframes and give the body more of an arc as it goes through the air.
And after all that focus on realism, the squirrel picks up a gun, and I suddenly have a lot more creative freedom for animation!
The Shooting Mechanics
One thing that I wanted to do from the beginning was make it so that the squirrel flies backward from the recoil. It's a funny concept, but it makes the shooting a lot more chaotic than a typical third-person shooter. Since you won't be making as many precise shots, the bullets tend to kill enemies quicker.
When platforming, the squirrel can take advantage of the gun recoil by shooting downward. The kickback of a pistol gives it some extra midair jumps. With full-auto guns, it acts like a jetpack.
The exploration part of the game has been pretty fun to do. Since the world is not 100% realistic, I have some leeway to make surreal obstacles, such as electric transformers rotating around telephone poles that can shock you, or a floor of a house that is literally lava.
Probably the biggest unexpected hurdle for the combat has been from making AI characters. I want to make sure the enemy agents are challenging, but not unfair, and that takes a LOT of tweaking and debugging. They also need to make somewhat intelligent decisions for when the squirrel jumps to a place out of reach. In this game's case, the enemy will try and find an object to throw at the squirrel.
Then, there are the citizens. They have some general behaviors, like walking around the neighborhood, approaching the squirrel, and even taking a photo. And, of course, they flee when threatened. There are also some special citizens who must act in different ways. Usually, they're involved in a puzzle to collect a golden acorn which is a highly desired collectible.
Preparing a Game for a Steam Release
There were some growing pains when preparing the game for Steam. I have to confess, it isn't as exciting as developing game mechanics or making a cool new item. Just this week, in fact, I was learning about playtesting and what I'd need to learn if I ever decide to make DLC. That being said, the Unreal to Steam pipeline is pretty straightforward. The tricky part is learning all the bells and whistles to export a proper build out of Unreal.
I think one unexpected perk of a title like Squirrel With A Gun is that it becomes very easy to search. If you see gameplay of a squirrel holding a gun, it doesn't take much effort to locate the Steam page.
There have definitely been a few indie games of interest to me, but I didn't remember their title, so I could never find them via Google. Speaking as a gamer, I would be most attracted to an indie title of something I've never seen before, be it gameplay or art style. Another piece of advice would be to set up a Steam page as soon as possible. Someone on the Unreal Slackers Discord advised me to make a Steam page early in development. If they hadn't, I would have missed out on all the wishlists when Squirrel With A Gun went viral.
My biggest piece of advice to new indie developers is to not over-plan. It's very easy to spend days thinking up an elaborate system, only to find it falls apart in practice. It's much more time-efficient to dive right in.
I would also highly recommend posting your work on social media. Posting regularly can help you keep on a schedule and see your progress over time. And just as important, it is part of your game's marketing.
Working part-time, it's been very tricky to nail down a roadmap. The nature of the VFX industry is not unlike the games industry in that there can be intense crunch times, which doesn't leave a lot of hours for extracurricular gamedev. We're actually working on a plushie campaign with Makeship that, ideally, can put me on Squirrel With A Gun full-time. That all being said, I'm aiming to have a playable demo by the end of April, and hopefully a game launch by the end of 2023 or early 2024. Although I haven't yet committed to any certain date on the Steam page.