What I'm finding is that it actually takes a lot longer than I anticipated. The core game play is done, but now we have to build out the non-game play related stuff. Get all of the animations working perfectly. Get the right sound effects. Add in game music. Polish everything. Create a good VR menu system, figure out how we are going to actually market this game, get it published on Steam, build our website beyond the placeholder content it currently holds, figure out a way to get customer feedback, etc. After I get all of this done, my top worry is that our game is too simplistic for people. I mean, you pretty much spend the game trying to dodge zombies in a dark graveyard while trying to use your hands to throw fireballs at them. It's kind of like... moving around and throwing exploding darts?
One thing which I'm particularly happy with is the way you can charge up your fireballs. The longer you hold your fireball, the bigger the explosion gets and the more "force" the explosion generates. There's no limit to how big you can make the fireball. Zombies have a fixed amount of explosive force they can withstand before exploding into little bits and pieces, so it's really quite fun to make zombies explode into flying gooey bits of blood and flame. A game lasts for 10 minutes, so theoretically, you *could* spend the entire game time charging up a single fireball and then explode it right before the game ends. I think the resulting blast would pretty much be like a nuclear explosion which kills anything in a line of sight. Maybe I should make a steam achievement for that?
Exploding Zombies! The flying bits of burning zombie flesh depend on how powerful the charged fireball is and where it hits, relative to the zombie. In this one, the gibs come flying straight at me because the fireball landed slightly behind the zombie.
Here, the fireball landed right at the zombies feet, so he exploded in a big firework. Very satisfying It's even more fun to explode groups of zombies. M-M-M-Multi-kill!
I have also drastically improved the artificial intelligence of the zombies. Previously, the AI system was really rudimentary. When a zombie spawns, they'd know where you are and slowly shamble towards you. To "move forward", a zombie would shoot an intersection ray in front of it, find the impact position on the ground, and then set its position to that point. If you do this in really small increments, you don't see any teleporting effects. However, the zombies can climb any slope with no problems, and there is no such thing as an obstacle to avoid. If a gravestone or tree intersects their path, they'll step right on it. Once the zombie gets closer, they charge at you. Once they're within melee range, they attack. It was a bit too simplistic and the zombies just didn't feel very "alive". Now, that's changed.
I decided to learn how to use the Behavior Trees which come with Unreal Engine. These are completely new to me and required a bit of studying (and trial and error) to figure out. My hackish AI implementation was done entirely with hard coded blueprints (UE4's visual node scripting). It wasn't very flexible and relied on a state machine to process different actions. Behavior Tree AI is weird. It requires a bit of a paradigm shift in thinking about programming instructions. I won't get into the technical details on how they work or my implementation, but I will say that after implementing my new zombie AI, the AI system is a lot more flexible and reusable. The "state" is kind of implicit within the behavior tree because the tree based structure causes the state to be sort of an emergent property. I thought this was really cool. I can now get away with just four states: "Spawning, Alive, Dying, Dead", which are more like "life states" than behavior states.
The resulting zombie AI is also really fun to see in action. When a zombie becomes active, it will know where the player is located and will generally wander towards the player position. It's a very casual "chase", in that the zombie is generally moving in the players direction. The zombie will figure out where the player is located and pick a random direction vector which is no greater than 90 degrees from the player direction. It then walks along that path for a fixed period. Once it reaches its destination, the zombie looks around with his head and tries to use its visual senses to detect the player (I got the cone of vision to track head movements!). If the zombie doesn't see anything, he picks a new wander position which again, gets him closer to the player position. The zombie keeps doing this until he finds the player. Once the zombie sees the player, they start chasing the player. If the zombie reaches the player, they perform a melee attack. The zombies also have vision and hearing senses as well. If the player is able to get outside of the zombies vision range, the zombie will go to the players last known position and search for them, and then revert to their wander behavior. It is possible for the player to sneak up on a zombie to a certain point, but eventually the zombies hearing range will be able to detect the players footsteps. Lastly, if you throw a fireball and hit a zombie with it, the zombie will figure out where the fireball came from and will move directly towards the point of origin and then do a "search". In terms of movement, the zombies now use a Navigation Mesh as well, so they figure out the most optimal path to reach the player while avoiding obstacles and non-walkable terrain. So, zombies are now about as smart as they can be. The only thing they don't do is dodge fireballs.
One of the guys in our office is a professional music composer. He moved up to Seattle from Los Angles. He used to work in the movie industry, but wanted to get into making music for games. We've made a deal where he makes the music for my game, and in exchange, I teach him how to make games by writing code. I've got him working on a pong game for now, but I'm realizing it's going to take him a lot of practice to get really good at thinking in code. He usually doesn't know where to begin, so I have him work out the 'concept' of what he's trying to do before writing any code. If you don't have a conceptual understanding of how something should work, you don't have a snowballs chance in hell. Without the conceptual understanding and the expected results from your conceptual model, how are you supposed to verify that some section of code works as expected? This is what I'm drilling into his head right now, and the code is merely the implementation of the conceptual model. Anyways, I'm excited to get professional music in exchange for lending my expertise.
Funding & Investment
I've mostly given up on investors.
What I'm hearing in Seattle is that if you really want investors, you need to go to where they are: Silicon Valley.
Yeah...I'm not going to do that. It's too much of a risk in terms of the cost vs. benefit ratio.
Cost: My plane ticket, hotel, and the opportunity cost of not developing my game.
Benefit: very slim chance that a VC likes my pitch enough to give me a Series A round of investment. (My formal pitch sucks, I'm much better at informal over coffee).
There's a few so called "investment groups" out here in Seattle, where you have to PAY money to pitch to investors. I did it once. I paid $500 for the "priviledge" to give a two minute lightning pitch to a full room. My pitch sucked, I got nothing. I am to blame, and I realize that. Someone else more experienced at pitching may have fared much better, but of the ten people who pitched, I didn't see a single one get funded. I kind of feel ripped off. Now I know better. Never pay to pitch. There's another group out here where you have to pay $2,000 to pitch. I've made lots of connections into that group but what's not going to happen is I'm not going to pay to pitch. I think the better approach is to get into these circles of people, network, and pitch informally.
I'm currently renting out my apartment and my car as a means to lower my costs (which also required a bit of upfront money to make suitable for rental!). Heh, I'll rent out anything of value to buy
more time. Hustle! Hustle! Hustle! Such is the life of an indie with no cash flow, right? But, it's kind of a good experience which can be used to get perspective on making games. If you're in the games industry, you're ultimately in it to make money so that you can continue to be in it. You want to be financially sustainable. So, you make a game and you want to make it good enough that people will buy it. That means you have to give people value for what they purchase, right? So when you look at the game you're making, put yourself into the position of a person who has a limited amount of money and time, and ask yourself, "why would I want to spend my money and time on this game? What do I get out of it?". If you can't answer that, you don't have a commercially viable product yet. (But hey, I haven't sold shit yet, so my credibility is zero.)
On the positive side though, I've started to build a network of advisors!
One guy is the CEO of another company and his company was in the process of getting acquired by another company for several million dollars. I've now met with him twice and he's given me some very good guidance on what to do and what not to do, and sets my expectations. One thing that really strikes me is the quote he said: "As an entreprenuer, you will waste 50% of your money. It's the cost of being an entrepreneur."
"WHAT?!" I said, in shock. "I'm smart, if I expected to waste any money, it'd be no more than 10%. How is it fifty percent?! I can't afford that!"
He had some reasonable justifications, and now I'm wary and on the look out for these money sinks.
Anyways, he's a great resource and I will certainly credit him when the time comes to recognize the people.
I met another guy who is also a good person to get advice and mentorship from. He's an old guy who works as a wealth manager at a large bank and is very connected in the tech scene. He's also helping me get to where I want to go, and will be coaching me on business strategy and such.
It's people like this who I am eternally grateful for.
Where am I at? The only chance I have at investment is if someone sees and understands what I'm trying to do and advocates on my behalf to people with deep pockets (slim, but possible). So, if I assume I'm not going to get investors (aka, big money pile to work with), then I have to assume that the only money I have to work with is what I've got in personal savings and the money I can get from renting out my car and apartment. I can also assume with relative safety that launching a kickstarter campaign would also fail because it's 40% product, 60% online popularity (See: The Oatmeal). Patreon is pretty much the same thing -- two months in, I've gotten zero dollars (my fault: I have zero marketing). It's quite unlikely that I'll get any sort of grant from Epic, and even if I did get one, the ceiling is $50k, which might be enough to push a project from 90% complete to 100% complete, depending on team size and cash burn rate.
So, this zombie game is actually getting kind of fun. You put on a VR headset, use your hands to throw fireballs, and try to make groups of zombies explode into flaming bits of flesh while not getting your brains eaten. We'll polish it up and release it. If it's well received, we'll add additional spells, creatures, environments, and game modes. I'd really love to get my hands on the SteamVR lighthouse and build support for it... but first, we gotta release something which gets our name out there and tracking on peoples' radars! My only hope is to release our 'zombie mage shooter game' to steam greenlight and hope that enough people will buy and play it. I'm thinking of selling at $10. This release will give us valuable intel and experience on what it takes to release to market and what the customers like and don't like, which we can then use to put into our "Master of Mages" game. If zero people buy our zombie shooter game, that's also very valuable information because then we can start asking "why not?" and get a better understanding of what people will and won't pay for and what their expectations are. Is this what my mentor means when he says we'll waste 50% of our cash?
Anyways, we're super scrappy and boot strappy right now. When we release to greenlight, I'll be sure to make a special announcement here for those who are interested.
PS. If you have a good name for our zombie game, let me know. I have no idea what to call this thing.