Ok, it’s here….the full update to what’s been happening with Zombox….
Near the beginning of this year I was feeling very burned out on Zombox. As a pure hobby project that I can only work on in my limited free time, it was still far from complete even after years of development. The thought of being an indie game developer for several years and having zero finished games was depressing. I felt I needed a break from Zombox — but not from game development in general…
I decided that I needed to pause Zombox development and create a different game with a much smaller scope. One that would give me valuable app store experience, Android device experience, user acquisition/management experience, and the gratification that comes with finally pushing out a finished, polished product.
This was around the time that Flappy Bird was in the spotlight, and it inspired me to try and come up with a super simple concept that would be fun, challenging, and ideal for mobile devices. It’s not easy to come up with an engaging, original concept that fulfills those goals, but then I had a dream one night about a hippo wearing moose antlers and a lightbulb flicked on in my head.
So, to make a long story short, I’ve spent the last few months creating a game called Jungle Moose. It’s about a hippo with an identity crisis who wants to cross a river full of piranhas.
It has no crafting, or zombies, or procedurally generated content. It’s just a simple, challenging, addictive game meant for casual mobile users who want some quick, hilarious fun. It has a wonderful music score by James Watkins (my composer for Zombox as well), and it has my signature over-the-top violence and gore, while maintaining a pleasing, whimsical aesthetic. I’m quite happy with how it’s turned out, and it’s completely finished at this point — just sitting in the App Store review queue. We’ll have to wait and see what Apple thinks of the blood and gore that is generated when the piranhas attack, but that can all be easily toned down for iOS if they decide it’s too intense. Regardless, it’s a finished product that will be released very soon for free on both Apple and Android, and it’s exactly what I needed to do in order to revitalize my energy for Zombox.
So….that’s it. It’s been all quiet on the Zombox front for the last few months because I was busy mud-wrestling with a cute, blue hippo. Once Jungle Moose is approved for the app store and released, it’ll be full steam ahead again on Zombox. I can’t wait to get back into it!
Thanks to those who continue to support Zombox and my game-developing efforts. Below are some video clips from Jungle Moose. The Jungle Moose website is still under construction (it’s just a simple landing page and it might not scale properly in certain browsers), but you can check it for updates if you want to find out when the game is released. I also re-designed my own website, which will now function as the main hub for all of my active projects.
Here’s a semi-outdated gameplay teaser (some of the menus were re-designed since this was posted):
There are lots of different unlockable game modes (hats) to choose from. Each one changes gameplay in a unique way. Click to play the video (no sound).
For example, the baby moose hat requires a lot more precision to kill fish, making the game much more difficult. Click to play the video (with sound).
With the magnet hat, explosive depth charges get pulled up to the surface. Accidentally swipe over one and it’ll explode! Click to play the video (with sound).
With the turret hat, instead of bouncing fish off your antlers you have to toss them in front of an automated machine gun. Click to play the video (with sound).
Here’s a clip of an unlockable boss fight. Click to play the video (with sound).
That’s all! Once Jungle Moose is released, look forward to more Zombox updates soon after!
Here’s a teaser of some of the new crafting stations you’ll be able to build in Zombox. After you build or upgrade each one, you’ll be able to craft many new items.
Can you guess what some of these will be used for?
So, since the inception of Zombox 3 years ago I’ve wanted to make it possible for items to lie on the ground, outside of any particular container they could be stored in. This is a standard element of many RPGs like Diablo, Torchlight, Minecraft, etc.
The reason that this was never possible in Zombox (up until now) is due to the sheer number of resources required to have an implementation of this idea work. If the actual item geometry is to be displayed on the ground, that’s a lot of extra polygons that an iOS device just wouldn’t be able to handle. If a graphical representation of the item is to be displayed (like, its GUI icon), it would require a lot of draw calls to display each and every icon that is dropped…and every draw call is another hit on the GPU, which would quickly slow the game to a crawl. Batching wouldn’t work on those icons unless they were using a texture atlas, and updating UV/vert lists on a mesh to match icon/world coordinates would be slow.
But then I realized that I could use a particle system to do all of this quickly, and in only 1 draw call. The solution is a bit of a hack that requires “freezing” particles at particular frames on a texture. To elaborate, Unity allows you to tell a particle system to cycle through cells on a texture sheet. This is how animated particles are created — you create a texture sheet with a grid of cells, each containing a different frame of animation. Then you tell Unity’s particle system to cycle through the cells at a given rate, which results in an animated particle texture.
Well, if I create a texture sheet that contains all of my icon textures, and then tell a particle system to advance to a particular cell of that texture sheet and freeze there, I am able to achieve the effect of individual sub-textures of a texture sheet displaying properly on individual particles. Once that’s done, the rest is easy.
So…as a result of this new system, several new things in Zombox are possible:
- items can be dropped or picked up, anywhere in the game world
- objects that contain items drop their items on the ground when they are destroyed. The dropped items will be degraded in the process, though
- when a player approaches an item on the ground, the item will hover around the player, alerting the player that they can examine the item
- zombies and npcs will now drop their items/weapons when they die. Thus, their items/weapons can be retrieved by the player following their death
Click here to see a scaled-down image of the particle texture sheet I created, which stores all item icons within it. This is the texture that the particle system which displays all dropped items references.
Here are some animations showing various player interactions with dropped items:
Some of you might remember the story from a couple of years ago where the creators of Project Zomboid had their laptops stolen, causing a major setback in the game’s development at the time.
Well, yesterday the house I live in was burglarized and (among many other things) 2 of my laptops and my main iOS development testing phone were stolen. I haven’t lost any Zombox code because it’s all backed up off-site…but losing the devices (especially the iPhone 4S) still stings. Had I not been careful to keep the game code backup up elsewhere, the ending to this story might have been much worse.
So this is a reminder to everyone: keep your data backed up off-site!
I hope to have some more substantial Zombox updates to post soon…currently working on fixing some annoying AI bugs that are proving very difficult to solve, so I don’t have much to show for that yet.
So now that the old navgrid pathfinding system has been replaced by the new navmesh system, I’ve gone in and re-written all of the AI code for npcs and zombies.
The old code was messy and relied on too many navgrid functions to simply adapt to the new system, so I started fresh. I’ve now unified all AI-related aspects of the zombies and NPCs (rather than have separate AI code for each), and optimized things like the flocking system and Line-of-Sight checking (using kd-trees and BVH trees, respectively). This allows the game to run faster with more zombies on screen at once.
While the iOS version of the game will typically have around 50 zombies visible at a time max, I benchmarked the new code with 650 zombies at once and it still runs at +30fps. Keep in mind the old code could handle around 200-250 before getting too laggy. So it’s quite an improvement!
Here’s an animated gif showing part of a group of 500 zombies crowing around the player/environment, using the new AI system (keep in mind for illustration purposes, their attacks have been disabled):
Here is a short illustrated write-up explaining how navmeshes are generated per-tile in Zombox. The illustration also demonstrates how non axis-aligned obstacles are handled.
So it’s been almost two months since the last update…I guess that means it’s time for a new one!
I’ve done a huge amount of work on the game in that time…..here’s an overall outline of the new stuff, followed by detailed explanations of each one:
- weapons now have durability
- individual items can now have perks
- the ailment system (hunger, fatigue, bloodloss) was completely redone.
- new shaders on everything allow for more precise damage decals
- item import system re-written
- character controller re-written
- vehicle management system re-written
- navgrid pathfinding replaced with navmesh pathfinding
Click any of the following images for previews of some of these changes, or click ‘Read More’ below to see all of the explanations in the full post.
So, it used to be that when you’d jump in water you’d immediately die. But that’s no fun!! So….
As you can see, you can only climb out of the water if there’s nothing blocking the ledge in front of you.
Also, I’m verrrry close to having all of the refactored city generation code finished. Hopefully after that point, I’ll be able to post more frequent updates!