Design Philosophy in Skyflower

Skyflower is simply a game where players shoot stuff and try not to die. But in order for people to like doing that, there needs to be more to it: Challenges, goals, and immersion.

I’ve been putting this off for a while, and its finally time to write a long status update on Skyflower.

Skyflower is now up on Greenlight for attempt number two. In the redesign process I had time to think about what I really wanted it to be.

Gameplay 1: challenge

At heart, Skyflower is a shoot em up. You shoot things and things blow up. The challenge factor, or the actual gameplay, is dodging bullets. Often I get questions from playtesters and friends, questioning the lack of an ammo system, or the fact that levels can be cleared just by holding down the button and spraying wildly. That’s the thing: limiting bullets means limiting what the player wants to do, which is to shoot everything in sight. Because it’s fun.

This brings me to a key point: what is the goal of Skyflower? A game needs many things to function, but the main thing is a challenge. Players get satisfaction from solving a hard puzzle (Portal) or from parkouring a hard level (Super Meat Boy). For most games, the challenge is simple and defined. In Skyflower, the challenge is to dodge bullets. Don’t get hit. Don’t die. It’s not a complicated concept. The challenge is not to get to the end of the level! That is the goal. To reach the goal, players need to defeat the challenge. Simple. Limiting a player’s ability to complete a goal is perfectly fine (oops, you need to beat the boss before you can exit the dungeon). However, limiting the challenge is a tricky subject.

Take League of Legends, for example. In order to reach the goal, destorying the nexus, there are a bunch of other things you need to do first. And that’s fine. No one’s gonna rage that they can’t win cause they didn’t take any towers yet. It’s just part of the game. But change directions and look at the challenge of League: killing others without dying. Mana in League is a perfect example of limiting the challenge. It adds another level of strategy, keeping track of your resources. Which is fine, because League is a strategy game. But when someone’s out of mana, the game isn’t as fun. You can’t attempt the challenge. It’s not a challenge to go back and get mana, it’s just a chore. For strategy games, it’s all part of the balance and stuff like mana is fine. For some games, not so much.

There’s a very think balance between adding to the challenge and just gimmicks. You don’t want some pointless minigame that has to be played when a player is dead, or for League’s case, out of mana. The same goes for Skyflower. Imagine an ammo system is in place, and you’re  having fun playing the game, shooting stuff and not dying. Then suddenly you’re out of ammo. There’s a new minigame: managing resources. For Skyflower’s sake, this was unneeded. Because going all the way back, the challenge in Skyflower is not getting hit by bullets. There doesn’t need to be another layer on top of that.

Skyflower is not a war simulator where every little thing needs to be noticed. It’s just a game where players can shoot shit and try their luck and dodging the endless rain of bullets hurtling toward them.

Gameplay 2: level design

Now that all the basic gameplay is taken care of, we can get to the level design. Levels in Skyflower are randomly generated. While this makes everything so much harder to program, it’s worth. Random gen adds replayability, so it doesn’t get boring having to play through the same levels again. It lessens the gap between beginners and long-time players, because players can’t memorise the map or form specific strategy. It’s kind of like a test: it wouldn’t be nearly as hard if you knew the questions, right? Finally, randomly generated levels allows permanent death to occur much more easily. Image dying right at the end of a long run. If levels were premade, there would probably be two things that would happen: either you have do repeat the exact same levels again and again, or you would just respawn at the beginning of your current level. We don’t want either of those! Death means the run is over. But the run being over does not mean boring stuff until you reach your death location, it just means another chance to get lucky on items and new dungeons to explore.

Plus, random generation means players can rage at RNG rather than my level design skills :P

Gameplay 3: bosses

This should be obvious, but bosses in Skyflower are heavily inspired by bullet hells (notably Touhou). This stems from a little thing I noticed by playing some other games: sometimes bosses are less of a skill challenge and more of a check that you’re strong enough to move on. With Skyflower, I couldn’t care less if someone made it to the end of the game with really weak items. Good for them! However, in many RPGs this is a real problem, as players may get stuck. Thus, strength-check bosses came to life. But for many other games, bosses are all about skill. Bosses in Skyflower allow a different style of bullets, originating from one area rather than from all over. And this is why I love bullet hells.

Bullet hell bosses are awesome. Most of the patterns are just that: patterns. By using some mathematics combined with Skyflower’s bullet engine, some really interesting bullet patterns can be created. Bosses allow these patterns to come to life. Boss rooms are not randomly generated, to make sure each pattern smoothly flows into the next. Player strength still influences the boss fight (more items = more damage = less time the boss is alive = less bullets to dodge), but the fights are still mostly skill based. It creates a nice balance between skill and in-game strength.

Gameplay 4: progression

In most games where players die and restart, there are two forms of progression: getting stronger in the current run, and getting stronger forever. In Skyflower, the latter is skill. You don’t get to keep anything from the current run that will help you in the next (for now). Once you die, its over. All you keep is the experience. I’m thinking of doing a character-unlocking system, but it will probably be only visual.

On the other hand, in-game progression is embraced with open arms. The player gets stronger by picking up items that give them an edge in battles (in the style of Binding of Isaac). You earn items by killing things. So it’s in the player’s best interest to clear the whole level, adding reason to complete challenges rather than just rush to the goal. Furthermore, items can also be received by challenging minibosses or sacrificing monsters to the devil. Minibosses just live in their little dungeons, and are optional. Kill them and you get an item. Risk and reward. Simple. Same with the devil altars: to get an item, players need to lead 5 monsters into the altar. It’s hard, because they are going to be shooting at you as you lead them there. Again, risk vs reward. Player strength is less about lucky items and more about how many items can players earn without dying.


In the failed Greenlight, Skyflower had some really horrible art. It was all drawn using Flash. Anyways, that is over now. I’ve decided to more of a pixel-art retro route, akin to arcade machine shoot em ups. Heavy inspiration comes from Nuclear Throne, Monsters and Monocles, and Magicite. Pixel art allows my really bad graphic design skills to not suck as much. Plus, the effects and everything look really nice. There’s just one decision left, which is what kind of lighting to use. I’m either going to use a nice realistic lighting or a hard pixel by pixel one (no fade, just a circle of light).


Skyflower is simply a game where players shoot stuff and try not to die. But in order for people to like doing that, there needs to be more to it. Challenges, goals, immersion. It’s all part of the game. This whole process is what it means to develop a game. It’s not just about programming it. It’s about making the game you want it to be.

Latest Jobs

IO Interactive

Hybrid (Malmö, Sweden)
Gameplay Director (Project Fantasy)

Arizona State University

Los Angeles, CA, USA
Assistant Professor of XR Technologies

IO Interactive

Hybrid (Copenhagen, Denmark)
Animation Tech Programmer

Purdue University

West Lafayette, IN, USA
Assistant Professor in Game Design and Development
More Jobs   


Explore the
Advertise with
Follow us

Game Developer Job Board

Game Developer


Explore the

Game Developer Job Board

Browse open positions across the game industry or recruit new talent for your studio

Advertise with

Game Developer

Engage game professionals and drive sales using an array of Game Developer media solutions to meet your objectives.

Learn More
Follow us


Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more