Monday, August 22, 2016

Getting Past Those Creative Bumps

If you're an independent game developer, especially if you're a solo dev, chances are you have specific vision for your game. You can envision in your head what the player is doing, how the world looks, and how you want the player to feel. Having this idea is a good first step, but once you start working, reality can get in the way.

What I mean is, during development, you will run into a planned feature that proves too difficult to implement, or that doesn't turn out to be fun. You'll be frustrated, because without this feature your game won't match the perfect vision you have in your head. It will be ruined.

The first thing you should do if you start thinking like this, is stop feeling bad about it. Don't start a cycle of depression that could result in you losing all motivation. This has almost happened to me several times while working on my current project, and I don't want it to happen to you. The best thing you can do at that moment, is let it go.

That's right, forget about it for now. Don't stop working on your game, just focus on another piece of it for a while. The creative process doesn't run on a waterfall method. You can't start with a design document for a piece of art, implement it as specified, and release it in a perfect state. Creativity is fickle and ever-changing. Your ideas will shift and warp during the development process, and you should let them. I'm not saying let your mind run wild with possibility and let scope creep take over. I'm just saying to give yourself a chance to work through the possibility of changing your grand vision.

I read some advice in an article once, and some version of it has stuck with me. It's "let the game tell you what it needs". I've interpreted this to mean - play your game, and always be reevaluating. If something is not working, would take too much time, or you don't possess the skill to accomplish it, you need to quickly decide either to give it up or figure it out. It's a tough decision to make, and both options have their merits depending on the situation. You can postpone the decision, but until you make it your brain won't let it go. The most important thing is to make that decision and move on, instead of giving up on the entire project.

I'm starting to ramble a bit so I'll try to wrap up my thoughts. I've found that it helps to go into a project with an understanding that you don't fully understand your idea yet. Give yourself time to prototype and experiment. Brutally cut features when you need to, and always be open to adding features that the game tells you is necessary.

Friday, August 19, 2016

The Mechanics of Stretchy Dash - Part 4: Lane Boosts

If you're interested in how I developed the basic concept of Stretchy Dash, check out my post about it's prototype.

This is the final post about the mechanics of Stretchy Dash, my upcoming mobile runner game.

A bit into development, I realized that I wasn't fully utilizing the stretching mechanics that is so central to the game, especially horizontal stretching. I wanted to add something that would make your position in the lanes matter more. There should be a decision between grabbing ALL the pickups, and increasing the value of just the ones you care about most.

I decided to make the lanes themselves into a mechanic. What if sometimes, a lane would be highlighted a certain color that matched the color of a pickup. When you were on that lane, and pickup up a matching pickup, that pickup would count double. This worked out great! It provided interesting micro-choices while playing to maximize your efficiency, raising the skill ceiling of the game.

The Player Boosted by a Green Lane Highlight

With the Lane Boost mechanic, I was able to design groups of pickups with varied amounts of complexity. Overall, it's this mechanic that made Stretchy Dash feel most complete, and it's the one that I'm most proud of.

I'm currently in the final stages of developing the game. If you're a game developer too, you know that also means I'm in the longest stretch of the development process. Since this is the first game I'm releasing to the world, I've been learning a lot about marketing and polishing. You can look forward to some posts about that in the future.

Thanks for reading!

Thursday, August 18, 2016

The Mechanics of Stretchy Dash - Part 3: Pickups

If you're interested in how I developed the basic concept of Stretchy Dash, check out my post about it's prototype.

In this post I'll continue describing the mechanics of Stretchy Dash, my upcoming mobile runner game.

I'm excited to talk about this post's topic - Pickups - since I'm very proud of the way they've turned out. First off, I should say that in runner games, pickups are commonplace. Often, there will be a generic "score" or "coin" pickup that is everywhere, as well as rare "powerup" pickups that do various flashy things. This is where I started, and then I added a few interesting features into the mix.

In Stretchy Dash, you're goal is to gather as many points as possible. The simplest way to do this is to run over "point orbs". Every point orb you pick up adds to your score. The amount of score you receive per orb scales with the game's current difficulty. Okay, sounds pretty standard. So where's the unique part?

There are a few interesting ways you can increase the amount of score you receive from a point orb. The most important modifier is your overall score multiplier. Picking up multiplier powerups adds to your multiplier bar at the top of the screen. Whenever this bar fills, your score multiplier increases and the bar resets.

A Multiplier Powerup

You'll also find shield powerups during play. Shield works similarly to multiplier in that you collect powerups to fill a bar. Once your shield bar is full, you receive a protective shield around you that protects you from one collision. You can have multiple shields up at once. While the shield bar takes awhile to fill, having a shield is very helpful for getting past those difficult obstacle groups.

A Shield Powerup

These mechanics for multiplier and shield reward you for consistently picking up powerups throughout the game. It's a slow build that feels good. As a designer it allowed me to place more powerups for you to pick up, which I think is more engaging than just finding a temporary boost once in awhile.

Next time, I'll finish up this set of posts by describing how I pushed the concept of pickups even further with Lane Boosts.

Thanks for reading!

Friday, August 12, 2016

The Mechanics of Stretchy Dash - Part 2: Obstacles

If you're interested in how I developed the basic concept of Stretchy Dash, check out my post about it's prototype.

In this post I'll continue describing the mechanics of Stretchy Dash, my upcoming mobile runner game.

Let's continue with a mechanic that comes standard in the runner genre, Obstacles. Obstacles exist to encourage movement and to give you something to avoid. Colliding with one will cause you to lose the round, although there is a way around this that I'll explain later. As the game goes on and difficulty increases, you'll cross paths with more and more complex and scary obstacles.

When you think about a runner game, obstacles are a given. So, I wanted to make sure that my obstacles were unique in look and feel. I decided to continue with the theme of combining basic shapes and simple materials to create more complex objects. My obstacles have a red color to designate danger, and are often spiky to differentiate them from other objects in the scene.

The first obstacle I created was the "barrel" type - the only type present in the prototype. Barrels are unique in that they extend slightly beyond their lane, intruding into adjacent lanes. Even if you're not in the barrel's lane, if you're in an adjacent lane you'll still be wide enough to collide with it. This encourages stretching vertically to make yourself skinny and avoid the barrel.

The barrels are interesting, but are quite static. By the time you reached a barrel on the path, you already had plenty of time to know how to avoid it. I wanted to create moving obstacles that would keep the player guessing as they approached. The "roller" and "spiky ball" obstacles move around, so it's more difficult to guess the position they'll be in when you cross paths with them. To keep things fair, they do move in a predictable pattern, so skilled players may be able to guess they're intersection point sooner.

Besides gathering more than one point orb at one time, there were no obstacles that encouraged stretching horizontally. To encourage this, I created a "low wall" obstacle and changed horizontal stretching to make you shorter as well as wider.

Now that I had some individual obstacles, I was able to combine them together into preset groups that would spawn in game. Some groups are more difficult to avoid than others, and some are more rare than others. As difficulty increases, you'll start to see more and more complex groups of these basic obstacle types.

At the time of writing this post, I'm still trying to come up with a new obstacle that will encourage vertical stretching. Right now, only barrels accomplish this. Otherwise, vertical stretching only helps to dodge the occasional spike ball that came a bit closer than you thought it would. Once I come up with a solution, I'll be sure to let you know.

Next time, I'd like to describe the unique way pickups are used in Stretchy Dash.

Thanks for reading!

The Mechanics of Stretchy Dash - Part 1: Stretching!

If you're interested in how I developed the basic concept of Stretchy Dash, check out my last post about it's prototype.

In this post I'm going to dive right into the mechanics of Stretchy Dash, my upcoming mobile runner game. I'm going to keep these introductory posts concise to give you a quick-and-dirty idea of how the game works.

Stretchy Dash is based on a few core concepts: Stretching, Obstacles, Pickups, and Lane Bonuses.

Let's start with the core mechanic of Stretching. On top of switching lanes left and right, which comes standard in most runners, you can stretch yourself  both "forward" (making you skinny and long) or "backward" (making you wide and flat).

Stretching will allow you to interact with various situations in different ways. Want to fit between two wide obstacles without hitting them? Stretch skinny! Want to grab two pickups at once that happen to be in different lanes? Stretch wide! The rest of the game's systems have been designed with this base concept in mind, making stretching and movement decisions more interesting.

Stretching "wide" to grab two pickups at once.

Stretching "skinny" to squeeze between two obstacles.

It was incredibly important to me to get the feel of stretching right. In the original prototype, you could hold down the stretch controls as long as you wanted, providing you had enough energy. This worked fine on a keyboard using the arrow keys. However, this type of input turned out to be very awkward on a touch screen. Swiping and then holding felt pretty unnatural, and caused your finger to cover important parts of the screen for an extended period of time.

To solve this, I ended up using a swipe input to start the stretch, and then simply end the stretch after a few moments by returning to the default ball shape. This felt great and also made stretch controls consistent with movement controls (in that they both used a simple swipe). As a result, the final product will have a simple four-directional control scheme that gives you a surprising number of options while playing.

In the next few posts I'll be describing how the rest of the game's mechanics support the core stretch mechanic.

Thanks for reading!