First off, awesome news: Bleed 2 is headed to PS4 and Xbox One on Feb 6 and 9, respectively!! Finally!! That’s basically the one-year anniversary of Bleed 2 on Steam, and I can’t think of a better way to celebrate the milestone. As always, the port and publishing are all thanks to Digerati Distribution and Nephilim Game Studios.
Naturally, the console version comes packaged with Endless Mode — coming out on console is what pushed me to take another shot at the mode in the first place, and I’m glad it came together. Speaking of coming together, here’s one more blog post to detail some of the miscellaneous work that was needed to make Endless Mode a reality!
For instance, the boss that concludes every level (there has to be a boss fight, right?) Thanks to my work on Challenge Mode it was pretty easy to set up bosses, with 16 of the Story Mode bosses available to be fought! The selection is slightly limited at the start of a run, but quickly expands the farther in you get. There might even be a chance of a boss rush happening, if you’re really unlucky…!
As a side note, when things like bosses, chunks and environments get randomly chosen they’re all recorded in a list, to make sure you don’t see repeats too close to each other (and in the case of bosses, you should never see the same boss twice in a run.)
There were lots of bugs that needed to be solved, as well. One I struggled with was with regen blocks (from Bleed 1’s dragon level) that can respawn on top of you, carry you, and push you into walls. I strictly avoid 1-hit kills in Bleed 2, so there was lots of fiddling to make sure blocks wouldn’t push you inside the level (which in most games is handled by one-hit KO’ing the player.)
No matter what I tried, the best solution I found still had a bug where the blocks would hurt you if you ran into them from the side… so, I solved it the same way I did in Bleed 1 — lots of spikes! Every field of regen blocks has at least one tile of spikes next to it — so if you’re running into it from the side, you’ll be standing in spikes anyway, so you won’t be able to tell if it’s the spikes hurting you, or the glitch. Hurrah!
More boring stuff had to be dealt with too. New menus were made for Endless Mode; to start it, win it, lose it, etc etc etc. I made a screen that plays while levels are generating, and that was fun (it shows both characters running in co-op, which I think is a nice touch.)
A screen like this has to play over level creation, otherwise the game hangs while the level is generated, and that looks really ugly (plus, you straight-up aren’t allowed on consoles if your game freezes like that.) I also added the option for seeded runs, so you can have Endless Mode blind races if you’re the speedrunning type (and since I roll my own RNG, seeds *SHOULD* produce the same levels cross-platform! Even consoles, I think!) You can see a run’s seed from the pause menu, if you want to share it or play it again for whatever reason.
I also had to consider scoring — Endless Mode has five levels per run, while Arcade and Story have seven, so I did some tinkering behind the scenes to support both cases. Endless levels also calculate their own target completion times for the level clear screen — the target times are very generous, possibly way too generous, but I wanted to err on that side of things.
There’s also a streak feature, which tracks how many wins or losses in a row you’ve racked up — with new achievements for winning a certain number in a row, naturally. Oh, and playing seeded runs, or with cheats on doesn’t mess with your streak, so you can play around to your heart’s content (and you also can’t cheese the achievements by playing the same seed over and over again, heh.)
One last key bit of polish I’ve mentioned was chunk edge blending!! Up until almost the very end, the edges of chunks were super obvious and it looked gross. As a last-minute thing, I added a step to level generation, after the giant arrays have been created. It checks every chunk’s borders, looking for areas where the edges touch, and replacing the graphics with smooth floors, solid walls, or whatever is appropriate based on the collision information of the two. It seals the illusion of Endless Mode being a bunch of seamless levels!
Sorry if this came off a bit like a filler post… I just wanted to mention some miscellaneous things, and to show that just making random levels was only one part of creating Endless Mode! Thanks for reading — and if you come back next week, I’ll get into one final small-but-cool, unfortunately-PC-only extra. See you then!