Yeah, you know what I’m about to say: the release is pushed back again. This is the third time in a month. I’m now targeting the launch to the 21st. So what the heck is going on this time, right??
Weighing feedback from youtubers, they’re having a lot of fun with the mechanics, but there just isn’t enough content yet. We’re on the verge of having a waterfall of content thanks to our level editor being nearly complete, so it seems very stupid to launch prior to that. At core, that’s the issue here.
The Level Editor
I say that the level editor is “nearly complete” because there are a lot of polish things with it that have been slowing me down in actually creating content. My big fear with any player-made content (not to mention my own content) is that we have tacky things like wall sconces three inches from the wall, etc.
I have a lot of experience in 3D editors, and there are a variety of ways of solving this problem. Various sorts of grid snapping, vertex snapping, and drop to the ground things usually are the key. This works very well… IF all your content is a very uniform sort of size.
Overall our content is a pretty uniform size, and I’ve been doing things like building the wall structures myself in probuilder, then exporting them to finished geometry and texturing them, etc. But one example of this going awry is I accidentally made one wall with windows in it 0.25m thick instead of 0.1m thick. Then when I went to use that, it didn’t line up. Of course. But I probably wasted 5 minutes trying to figure out what I’d done there.
Those sorts of problems are compounded when you start talking about “props” type items that are of extremely arbitrary sizes. Having a center of rotation on them is a pretty tricky thing as well, because even when rotating the offsets around the rotation center of the objects, I wind up with things that are not fitting together when rotated 9 degrees because the OTHER thing (in this case a wall) is not conforming. Specifically the wall should have been rotated 270 degrees instead of 90 degrees in order to have its axis aligned just-so, and thus it’s about 0.03m offcenter and the wall sconce now sticks into the wall a bit. I now have to adjust my grid scale and fix the sconce by hand. I also have to actually know to check for that.
In other words, it’s not a casual undertaking because there’s a bit too much freedom (in some respects), versus the editor inferring what you want to do. There are a variety of games that do this well, most notably Minecraft and 7 Days To Die. You’ll note that those are 3D-tile-based, of course. I’m not going to do THAT.
However, it’s possible to do that sort of thing with an invisible tile grid that nonetheless has orientations baked into them. And which exists only in the space of the editor, not in actual gameplay-space. There are some games that do this I think, and 7 Days kind of does that with its objects in general, but I can’t think what the games are right off the top of my head. At any rate, editing needs to be freer and more fun. It’s ALMOST there, but not yet. I need maybe another day, maybe two, to perfect that.
The approach that this game takes to procedural generation is one of combining prefab scenes together to make a whole. It’s using a heavily modified version of DunGen, which is a really cool component. But DunGen wasn’t able to use runtime-created geometry, and I had to invent my own data format and get that in there along with a variety of other enhancements that are game-specific.
Along with those enhancements have come some pretty tantalizing realizations: I can do even more. DunGen already supports things like prefab groups that swap in and out (so you have something that is, for instance “a living room set” that gets chosen at random to go in living rooms of type A). That gives you some pretty combinatorial numbers of distinct results that players encounter, while still having everything be hand-designed at core.
It’s a super flexible approach, and I’ve actually coded about 95% of it. I need to have time to code the interface, though, and make the interface make some kind of sense, which means that last 5% can be a real pain in the butt. I figure I can knock that out in a half day or so.
Another thing on my wish-list is having certain types of tiles do pre-combining into mega-tiles before going into DunGen proper. Actually that’s a really complicated subject, and I have three different approaches in mind, one of which wouldn’t take much code at all. And honestly this is something I can experiment with during early access. But we were talking about procedural generation, so I figured I’d mention it.
Level Editor Assets
In order for levels to be created, it requires building blocks. The more building blocks, the better. It’s no secret that we’re using asset store assets for a lot of these things, but we’re also creating various things ourselves in Probuilder (me), or in Sketchup or Maya (Blue).
And then when it comes to EVERYTHING, I’m doing a lot of post-work to wire them up for fracturing or physics, for the occlusion system, to have the proper PBR effects, to have the proper texture efficiency (mostly compression — seriously artists are wasteful sometimes), and doing things like setting up IES lightmap cookies on lights so that you get super-amazing-looking lighting.
Overall I have a freaking massive list of things that I need to get in place with this. Just for the apartments levels alone, it needs easily a few thousand objects. I have already directly integrated several hundred, and I’ve partially-processed another 1800 or so beyond that. But each one takes some time, and it’s hard to get more than a few hundred objects done in a single day.
With a tile-based approach for the level editor, this will be faster, but still. (And the only reason I can do all this so fast in the first place is that I’ve made a custom unity editor extension for myself that I call the “Arcen Object Manipulator), which gives me one-button access for doing a ton of tasks. And gives me hyperfast access to editing box colliders, because I wind up having to create a lot of those. A lot of artists wind up using mesh colliders (efficient ones usually, but still), which are mega-expensive to process on the CPU compared to box colliders. It’s a major no-no.
So I’ve done everything I can to speed up this process for myself, but even so it’s a process that is time-consuming (on my sort of timescale). A few hundred objects in a day is actually freaking amazing when it comes to most games, but when you’re still setting up your first full batch of them it can feel really slow. When I’m doing something like the military base level assets, certain things like concrete floors or the utility-style lights can be used in there as well as in the utility halls of the apartment buildings.
So I have every reasonable reason to believe that this process will go amazingly quickly and people will be very surprised at how fast new content comes out while we’re in Early Access… yet at the same time, there are some humps I have to get over first or I’ll be torn in too many directions to fully address any of them. If we release on Monday, that’s exactly what was going to happen to me.
We have a ton of robots already complete and animated… and not in the game. By a ton, I mean that we have something along the lines of 17 distinct robots that are just sitting there waiting for me to have time to do something with them.
A game like this doesn’t need the sort of insane enemy variety that something like Starward Rogue does, but all of the robots should each have a good and unique feel, as well as a number of sub-variants. You see this with the spiderbots, for instance, and their three variants.
So why haven’t I done more of these? Well, to some extent it’s a “cart and horse” situation. I have a lot of cool ideas for the various robots, but a lot of that requires specific sorts of rooms. You can’t just stick any enemy in any rooms and expect for them to be fun to play. Some of the ones that would require a lot of motion on your part would be a nightmare in a claustrophobic hall, for instance. But it’s nice to be able to create both claustrophobic halls for you and wide open spaces where (for instance) the apartment building has partially collapsed. As well as lots of stuff in the middle.
To me, the design of most of the enemies is inextricably tied to the sorts of locations they populate, and I can’t really test them to make sure that they work right until I am able to create those environments and test THOSE. For that reason I’ve erred very much on the side of focusing on location rather than enemies first, while at the same time writing down tons of notes for the robots (and further locations).
Actually my BIGGEST focus so far has been on the feel of the raptor itself, and its move-set, because that’s the #1 thing that needs to feel good. And then spaces are designed to conform to that, and enemies are designed for the spaces that can fit the raptor, and so on. So there’s actually a bit more of a waterfall effect there than a true cart-and-horse effect, but still.
This Isn’t Just A Beat-Em-Up
The fact that it’s been described that way pains me a bit, but I completely understand it. Right now the goal is “go kill all the robots in the demo level,” and you do that by attacking them with teeth, claws, and slapped-back shots. So, sure: beat-em-up.
Even so, some of the placement of enemies like the turrets are designed to lead to mild puzzle elements where you can approach a situation multiple ways, but the obvious ways are going to lead to death or taking hits that you should not. Basically it’s the sort of “puzzles” that a game like Dark Souls might give you (although it’s super dangerous to compare this game to that one, because they are very different beasts).
This is another case where there have to be more rooms (more content) before the puzzle-y nature of some of that will really show through. I remember that in Far Cry 2 — and actually in Red Faction: Guerrilla — there were some places that were entrenched enemy fortifications and I had the most fun in those games trying to dismantle them. But once you figure out a way that works for you, then you’re done with that fortification.
Here I (and other designers, and even players) can create a lot more content with a lot more of those sorts of situations, and enemies can be specifically designed around that sort of thing. But that takes time. The demo currently shows that off to an incredibly tame degree, and so it’s easy to go “yeah that’s a brawler,” which I think sells it a bit short.
The other thing that I have figured out how to handle, but which isn’t at all in the current demos, is stealth. Having multiple branching paths and similar that you can explore, and the ability to in many cases see enemies before they see you, allows you to sneak by enemies in many cases. You actually can already do that in the current demo, although there’s no real reason to since you have to fight every enemy anyway in order to win the level.
To me, the sort of stealth that involves “don’t go in the light or you die” really bugs me. The kind that revolves too closely around lines of sight also bugs me, because I can never tell if these bushes or those bushes are enough cover or not. Because of branching paths and the ability to be on different levels from enemies in this game, a lot of those problems can be bypassed and it’s clearer when you’re hidden from an enemy.
So why hide from them? Well, the structure of the levels will be changing — the demo game mode of “kill all the robots” was never the real game mode, and it said that from the start. The real mode will have a big stationary robot named “father brain” at the end. If any robots are aware of you (think having stars in GTA), his shields are up. If no other robots currently know about you, then his shields are down and you can kill him and win the level — no matter how many other robots are still remaining at the moment.
And there you go: stealth. You can avoid enemies and get to father brain and kill him more quickly, but if they see you that just means you have to fight them in order to complete the level. It’s a nice non-binary system, because you can take a Red Dead Redemption attitude of “no crime was committed if there were no surviving witnesses” and kill certain robots with no regard to stealth while you sneak by others.
But for THIS aspect to work, I need to get the forcefield effects finished (the visuals are set, but the physics is about half-done), and get father brain himself set up in place (Blue has created him, and animated him, but I have yet to texture him or light him or rig up the ways you can knock pieces off of him to destroy him, etc). Chalk up another half day there, reasonably.
Part of the reason we keep having delays is that we’re listening to feedback from existing testers and youtubers doing previews, and things that they say — or sometimes don’t say, but rather just a nonverbal reaction they have — tend to be instructive.
One of the things that has become clear to me based on that as well as some RPS comments is that when the raptor is running around fighting silent robots in sci-fi corridors, that feels generic. Now granted, I love those sorts of environments and we will have them — and we’ll make them as unique as possible. And in general with the robots and their movements, and the raptor and its movements, we’ve tried to really bring out as much personality as possible.
That said, the switch recently to having our game’s first procedural levels be inside of apartment buildings was I think a good move on the personality front. That feels viscerally familiar (we’ve all be in an apartment, but we’ve most of us not been in a space station or anything that looks like it), and also really fresh (we’ve seen raptors in labs and the jungle on TV, but not in our homes — a T-Rex in the back yard was the closest that got).
But the other part is the robots themselves. We’ve been working recently with a wonderful voice actor named Ben McAuley, and he’s voiced a TON of lines for just the robots we already have. About 30 lines for each kind of robot just seeing you at all. They aren’t long lines, but they gives some personality to the proceedings, and actually give a sense of each robot being a unique individual (some are bored, some are considering cowardice, some are ready to go guns blazing).
Those robot voice cues tie into both gameplay (ones without a gun remark on that) and story itself (things they say hint at the story, which otherwise you could completely skip). But it doesn’t slam your face into it, and we’ve recorded so vastly many lines for each robot so that you aren’t hearing “I took an arrow in the knee” a million times. We learned our lesson with Bionic Dues, where there are only about 6 voice clips per robot, and many of them were super distinctive in a way that got really repetitive.
Anyhow, I think that this is important for really having players connect with it. Some of us just latch onto the mechanics themselves and that’s enough, but for people who haven’t been jonesing for a raptor fix quite as bad as I have, I don’t know that that’s enough without actually having a game with personality to hold it up.
So What’s Wrong With Me, Then?
Why am I such a big idiot and keep giving these too-soon release dates? Right, that bit. Well, I’ll break it down I suppose:
- I legitimately thought that each target was hittable.
- However, new information (bug reports, youtuber feedback, etc) made me re-scope certain things.
- In general I underestimated how much time it would take to create the level editor, by a substantial margin. Getting it functional was not bad at all, but then huge amounts of polish have taken up all that extra time. Having a really killer editor is important for purposes of us being able to crank out quality content, though, and for purposes of players being able and/or inclined to do so as well, though.
- I have been heavily incentivized to pursue aggressive release dates for early access because we continue to bleed money pretty badly even after layoffs earlier this year, and the Steam summer sale was a flop for us this year compared to most prior years.
- Overall I’ve had a huge amount of internal back-and-forth (and discussions with my wife and staff) about the virtues of getting this into the hands of people early versus making sure the first impressions are positive enough that people want to tell others about it and jump on the bandwagon early.
- When it comes to Youtube and Twitch, we’re trying to really build as much attention and pre-release awareness as we can as well, and that’s still an ongoing project that I don’t want to prematurely end. The ball is rolling well on that, but my thought is that people have more interest in something that isn’t available to the public yet. Right now the current demo is just too short for them to really make a series out of playing it, and I feel like that hurts the ability of word of mouth to spread.
Overall there’s a lot riding on this game, and I’m more than a bit twitchy based on that. Consistent repeated delays sends a bad message that I’m quite aware of and regret, but at the same time it’s important that people see enough of the game that they form the right opinions about it.
By “right opinion” I mean that, if they see an early simplistic build and conclude “it’s a brawler” when the actual gameplay is a lot deeper, that’s a problem. If they see the actual gameplay and then think that’s still not deep enough or whatever other problem, that’s their right and not something I’m going to call “wrong,” whether I agree with it or not. But if I hand them an unripe strawberry and they say strawberries are terrible, then that’s on me. 😉
Not that I’ve seen a single video talking about it being bad, which is super encouraging. That’s another thing that keeps encouraging me to go “just release it soon, just get it right on out there,” etc. But I think at the moment that would be a disaster for various reasons listed above.
Right. I’m working all this weekend, and worked most of last one. Next weekend I won’t be able to, and next Friday and Monday are also out for me unfortunately. So:
- My top priority right now is getting the level editor and the procedural generation in shape so that Blue and Misery can start designing content with it.
- And then I need to get as many assets in there for them to do further work with as possible.
- Then I need to get father brain in there, and ideally some more robots as well.
- Throughout this period I need to do level design of my own (something I love).
- I’ll need at least one more pre-EA recording session with Ben as new robots are added.
- Ideally I’ll put together a new trailer.
- There are some mechanics-polishing things that have to be done inevitably as time passes, too.
Given that, and looking at the calendar and how long things have been taking me and other people, I conclude that a reasonable time to release is the 21st. That’s an extra 10 days, although I’m out of commission for 4 of them (bah). But the key thing prior to those 4 days is making sure that the level editor and so on is in such good shape that Misery and Blue (and others, if they so desire) can proceed without me and I’m not such a bottleneck as before.
Will we hit this deadline? Honestly I don’t have the confidence to tell you yes at the moment. 😉 I think we will. We certainly can. But am I going to see some Youtube video three days for now that makes me smack my head and go “oh gosh, that’s right, THAT needs to be addressed?” That would certainly impact the schedule.
It’s also possible that Misery and Blue and I won’t be able to create enough content fast enough, for whatever reason. It’s possible that I’ve underestimated the amount of work on some component here, and the 7.5 work days I have between now and launch won’t be enough for whatever reason.
I will say that I’m highly motivated to get this out prior to the end of July. August is really a huge sales doldrum, and anyhow waiting that long just makes the financial pressure loom even larger. So I mean, the spirit is willing. 😉
All righty. This is over 3700 words long at this point. I figured that with this news, folks deserved an explanation for what is going on, though.
Talk to you soon!
Click here for the official forum thread on this post.