Peter Malamud Smith's Web Presence
  • About
  • GAMES
  • Writing
  • Music
  • Witcheye

Boss design: The making of Cycloptopus

7/19/2017

0 Comments

 
Designing bosses (and all challenges, really) for this game is tricky, because the character's abilities aren't bounded the way most platform heroes' are. A lot of standard platformer tropes don't really work. Because Mabel can fly, I can't put her in danger of falling off the screen; I can't put a boss's vulnerable spot high up in the air; I can't assume that the player will stay within a certain distance from the floor.
 
As I mentioned last time, I also wanted to avoid filling the screen with projectiles; that would make a boss harder, for sure, but it wasn't the feel I was going for in this game. My reference point here was Super Mario Bros. 3, not Ikaruga; I wanted enemies large and small to feel engaging and challenging, but always clear, simple, and readable too. 
Picture
An old-school segmented snake boss from the frustrating but memorable Fantasy Zone II
My initial idea for the boss of World 3, the ocean world, was a classic multisegmented serpent type boss, of the kind seen in countless 8- and 16-bit games; given Witcheye's focus on precise attacks on moving targets, it seemed appropriate and challenging. Ultimately, though, it felt a little too rote (again, see "countless 8- and 16-bit games"), so I decided to save it for a later miniboss, with some little twists, and do something more interesting for World 3.
 
It occurred to me that an octopus with rotating tentacles could work--a test of how well you could control the character in World 3's water physics, creating a constant threat in a simple, instantly understandable way. Here was my first prototype:
Picture
Cycloptopus here recoils when you hit him, and the tentacles rotate faster with each hit until he dies.
 
So, not the prettiest thing, but call it a proof of concept. When I finally had it all rigged up, it was actually pretty fun, but it felt a little primitive, both visually and gameplay-wise. Visually, it's a weird angle to be looking at an octopus, and the concept of moving around the thing a full 360 degrees required that it stay at that weird angle. Gameplay-wise, the rigid sprite-based tentacles felt stiff to engage with, and the fight felt unstructured--just doing the same thing over and over. A song with no chorus, if you will. The distinction between hittable spots and damaging spots also felt fussy and unclear; sometimes it seemed like you were OK, but the space between tentacles at the base was really small, and that made it frustrating.
 
All that aside, the idea worked well enough that I decided to go with it. The first thing I had to fix was the look. I drafted up a less awkwardly posed body for the boss, and decided to replace the rigid single-sprite tentacles with multisegmented ones (again, a nod to the multisegmented 8- and 16-bit style of yore). I was pretty amazed when my tentacle code worked on the first try.
 
This was already feeling better, but the problem with a cramped target area remained. I decided three tentacles would be better than four--enough to get the point across, so the poor guy wouldn't look totally disarmed, but leaving enough space to hit his fleshy underside.
Picture
Speaking of fleshy underside, once I saw my new creature in motion, I realized that, obviously, when he was presented at this angle, the simplest thing would be to hit him from the top or the sides, avoiding the tentacle area altogether. That clearly would defeat the entire purpose of the tentacles, so something needed to be done. I added spikes around the top and sides of the head to ward the player off. This had the added benefit of making him look cooler and more regal, like some kind of samurai squid. 
Picture
On to the question of repetitiveness. What was the right way to vary the tempo of the fight? Was it enough to just have the tentacles speed up as you hit him? No--it felt like there needed to be more of a sense that you were proceeding through phases. Now, an aside here: I don't really like long boss fights. I don't like bosses with endless phases; I don't like bosses that soak up a ton of hits. The bosses in the Metroid Prime games make me want to stop playing. (My fire-button finger is aching at the memory.) When a boss takes ten minutes to fight, the designer also can't make it very difficult, because it would be too annoying to retry. The ideal to me is a Mega Man boss--fast, tough, quick to restart, doable in seconds once you know how.
Picture
A classic.
So I didn't want to slow things down too much. I just wanted to give the fight some structure and make you feel like you were making progress. For the same reason, I also don't like bosses that have long periods of invulnerability (who plays games for the thrill of waiting for a glowing orb to open up?), so I had to be careful about how I did it. 
 
I decided to divide the Cycloptopus fight into three phases; each time you score three hits on him, he'll freak out and thrash around the room in a circle, waving his tentacles, then return to his normal pattern, but moving faster. You can't hit him while he's circling, so I'm breaking my own rule here (OK, it's more of a guideline), but the move is dangerous and fast; it's not like you're just sitting there waiting for him to finish. Here's how it broke down:
 
HOVERING - SPEED 1 
score 3 hits
THRASHY CIRCLING
HOVERING - SPEED 2
score 3 hits
THRASHY CIRCLING
HOVERING - SPEED 3
score 3 hits -> victory
Picture
This felt pretty good--there was variety, increasing difficulty, concrete evidence that you were making progress, rising tension when you saw how fast he was moving after the thrashy part. One quick tweak I made after a few runs on this version was that it didn't feel climactic enough to beat him. The last hit you had to score, he was moving at the same speed as the previous two hits. So I added a final phase:
 
HOVERING - SPEED 1 
score 3 hits
THRASHY CIRCLING
HOVERING - SPEED 2
score 3 hits
THRASHY CIRCLING
HOVERING - SPEED 3
score 3 hits
THRASHY CIRCLING
HOVERING - SPEED 4
score 1 hit -> victory
 
This gave you one last scare when he was moving super fast at the end--hard, but you only have to hit him once. I thought that would give the player the feel of a nail-biter ending, while being not TOO likely to kill them frustratingly right at the finish line.
 
The pacing felt great now, but something was bothering me; it was possible to just hang out at the bottom of the screen invulnerably and wait. Doing that didn't accomplish anything, but it didn't feel active and engaging, either. Plus, I had character to think about. I didn't want it to feel like you, the player, were just going into this creature's domain and beating him up when he essentially had no beef with you. His aggression needed to match yours.
 
I decided to give him a projectile--but only one, and a simple one. Periodically, he'll fire a wide crescent-shaped beam straight down from his eyeball. That meant that you couldn't just hang out underneath him forever. Suddenly the bottom half of the screen felt like an active space.
 
Having him fire without warning felt a little unfair, so I made his eyeball flash for a few frames before he fires. He also slows down a little in his endless circling. Both of those effects give you a warning even if you aren't looking directly at him. 
Picture
Now things were really cooking. It's amazing to feel a gameplay element becoming more fun as you tweak it; it's hard to believe that you can do it sometimes, but if you're tenacious, all the little changes really do start to add up to an intangible "rightness."
 
A few more little changes were in order. Because the water physics of this game push you upwards on every frame, you'd sometimes get hit by a tentacle immediately after successfully hitting the boss's underside; the upward push kept you from bouncing safely away. That didn't seem fair or fun, so I did two things: I added a "hard rebound" flag to Cycloptopus's attributes, so that the player's rebounding speed upon hitting him is doubled. That pushes you more quickly out of the way. I also made the collision boxes on the tentacles quietly disable during the boss's invincibility frames, so that if you happen to catch the edge of a tentacle while rebounding, you'll pass safely through. This had the potential to make the tentacle collision feel janky or broken, but because you were getting slapped back downward quickly, the disabled tentacles ended up being mostly invisible to the player--just a little margin of grace to make the experience less frustrating.
 
Speaking of which, the boss was HARD. I could beat it, but by this point I had played it possibly more than anyone else in the world ever would, so I wasn't a good barometer. (And even then, I still got hit every time.) So the last round of tweaks was simple: I slowed down the boss's tentacles, slowed down his speed while hovering, slowed down the speed of his projectiles, slowed down his thrashy freakouts, and shrank the hitboxes a little on both the projectiles and the tentacles. (As I wrote about here, this last one is a good trick to keep in mind. You don't want to do it so much that the game feels broken, but if you can give the player an occasional feeling of "YIKES I just BARELY missed that"--because the graphic of the damaging object is slightly larger than its effective boundaries--you can make the fight more exciting and less frustrating at once.)
 
Voila! A boss that's distinct from the other enemies, intimidating, challenging, easily "readable," not a hit-sponge, not a producer of bullet hells, difficult but beatable within 30 seconds with a little practice. It was truly gratifying to start from a simple idea (and a janky test version) and work up to an engaging fleshed-out encounter. (And, PS, I did eventually get my segmented serpent.) Thanks for reading!
Picture
0 Comments

Designing an Uncluttered Game

7/5/2017

0 Comments

 
One tricky part of designing Witcheye was that the player is overpowered. Since you can fly anywhere you want, what's to stop you from just flying over all the enemies? The obvious way to address this was to give enemies a ton of dangerous projectiles. After all, that's what shoot 'em ups do, sometimes to hilarious/ecstatic extremes. 
Picture
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
​But I didn't want to make a shmup; I wanted to make something that felt like a platformer. Having a ton of projectiles flying around felt like a cheat, and like it would clutter up the simple, clean feel I was going for. There's definitely an appeal to the sensory-overload approach, but it wasn't what felt right here. Basically, I wanted about the same projectile density as Super Mario Bros. 3. 
Picture
OK, that's more like it
Working within that restraint forced me to be more creative about how enemies would threaten you. Many of them DO have projectiles, but they're generally quite simple ones that function almost more as melee attacks. At least until later in the game, there are few challenges with really complex "bullet hell" type patterns. 
Picture
Buddy, I know you're really trying, but...
That also meant carefully designing level layouts to give enemies the advantage, funneling the player through tight areas where enemies without big fusillades of projectiles could still pose a threat. This is part of why the game is contained to horizontally scrolling levels: it's a way to keep the action tight and focused, with lots of forward momentum, and no incentive to just drift off in another direction.
Picture
These jellyfish can be hit from above but not from below; the contours of the level introduce them in a way that gives you the advantage, but then turns the tables once you've had a chance to see how they work.
But even with those design principles in place, you'd still have the temptation to just fly over a lot of the game without really interacting with the enemies, and that wouldn't be much fun. 

Witcheye tries to address that in two ways. One, most levels contain locked rooms that require you to engage a set of enemies in order to win a key and a way out. 
Picture
Not a prisoner, I'm a free man...
Two, there are four collectible gems in each level, usually held by enemies (or as rewards for exploration). These are totally optional, though they're required to get the best ending, and if you miss one in a level, you'll get an empty slot and a dinky cowbell sound on the end-of-level wrap-up screen, instead of a satisfying slot-machine-y clatter. 

Watching people play, I've found that almost everyone instinctively goes for the gems--or just for the simple fun of fighting the enemies, which makes its own satisfying set of sparks and sounds. If you don't, that's fine too! I'll always try to design in a way that allows a range of approaches. As always, the goal is to nudge the player gently in a general direction... without making them feel like they're being nudged. 

​Thanks for reading!
Picture
0 Comments

    Peter malamud smith

    Thoughts on developing Witcheye for iOS and Android

    Archives

    March 2018
    February 2018
    August 2017
    July 2017
    June 2017

    Categories

    All

    RSS Feed

Powered by Create your own unique website with customizable templates.