Tappy Lander Dev Diary #4: Control

I love the mechanics of lander games and the fun, to me, is maneuvering your rocket through a series of subtle movements into a good position and a soft landing. It’s difficult but rewarding.

Traditionally these types of games had a variety of buttons: rotate, left, rotate right, thrust, etc.

Image

However, on the target devices I have one button, the touch screen; and I refuse to clutter the screen with complex controls just so it plays exactly like the originals (see my last post about UI.)

In order to simplify, I ask my favorite question: “What makes it fun?” and my cat looks at me like “Who are you talking to?!”

What I came up with…

  • Gravity – yes, still fun after all these years!
  • Rotating – a little frustrating to manage and even time consuming
  • Thrusting – absolutely, compensating for a force like gravity or your last thrust, in order to change direction, is fun.
  • Managing fuel – no way, maybe its just me, but I don’t like time limits. I don’t want to tell a player “You know this fun little playground I made?, well you can only play here for THIS long.”
  • Avoiding an obstacle or flying to collect an object – yes! an opportunity to test your flying skill.
  • Landing – yes, slow down and center yourself over the target for a soft, safe landing.

The Redesign

I immediately wanted to remove the fuel consumption issue. This is in essence, a time limit. It makes sense for quarter munching coin-ops, but doesn’t in a free mobile game. The gameplay is not made more fun by adding a time limit and removing it allows you to focus on manuvering even if you need to take your time.

Most classic gravity and lander games allow you to rotate your ship so that you can thrust in any direction. Again, this is something that I felt I could remove. With a simple up, left or right control scheme, I can move in any direction by timing my taps (except down, and gravity takes care of that.)

A Prototype

The prototype allowed me full control over my ship and maintained the fun of using your skill and instinct to manage the physics of flying through space. It was fun but simple; easier for general audiences to pick up and play but very challenging at the same time.

…and so I moved ahead with development! The next post will be about game physics.

Thanks for reading and be sure to like and follow Tappy Lander on Facebook and Twitter for daily updates.

 

Advertisements

Tappy Lander Dev Diary #3: UI

Because I had worked out the controls before putting pencil to paper, the gameplay UI has not changed much throughout production.

Tap left, up or right to thrust left, up or right

Sketch vs. final

The center circular button has been replaced with a thumb-shaped button because the controls need to bleed off the bottom of the screen to accommodate lots of different screen sizes. Also, there is no space between or around the buttons that allow you to see the background. Although the sketch suggests this, I felt it would be distracting. The control panel must feel like it is separated from the game completely. In fact, the top of the control panel acts like the bottom of the game screen. Other than that, the final is nearly identical to the sketch.

80s arcade control panels = good touchscreen design

Like a classic coin-op arcade game, the control panel was to be at the bottom with the viewscreen above them. Vision-obscuring on-screen controls for touch interface games is a pet peeve of mine and this layout would ensure that no thumbs or fingers ever get in the way of the action.

Don’t look down

The touch area for the three buttons extend all the way to the top of the screen and they are as wide as possible. The width and position of the buttons mean that you can control the game without looking at the buttons, removing the no-tactile-button problem which is a common stumbling block when making traditional games for touchscreen interfaces. The center button is skinnier than the others because you use the left and right buttons more frequently than the up thrust.

That’s all for the gameplay UI. Next time we’ll probably discuss the actual gameplay control experience.

Thanks for reading and be sure to like and follow Tappy Lander on Facebook and Twitter for daily updates.

Tappy Lander Dev Diary #2: Influences

I played Lunar Lander (1979, Atari coin-op) for the first time just a few years ago. It made a big impression on me and ever since, I have wanted to make a game like this.


In Lunar Lander, you try to safely land on a craggy planet before running out of fuel by rotating your ship and thrusting in the desired direction.

Gravitar (1982 Atari coin-op)

Gravitar (1982 Atari coin-op)

Gravitar focuses on flying through caverns and shooting at targets while saving prisoners. It’s very difficult and even has a level where you fly around a planet with gravity pulling you toward the center of the screen.

skydiver

Sky Diver (1978, Atari VCS)

Time your jump out of a moving plane and pull the ripcord before hitting the target in Sky Diver. Points are scored based on the accuracy of your landing. You have limited steering ability once your parachute is open and must take wind speed into account.

Sub-Terrania (1993, Sega Genesis)

Sub-Terrania (1993, Sega Genesis)

I love Sub-Terrania! Fly around a map using lander-style controls, shoot enemies and save prisoners-but with a snazzy soundtrack and nice presentation.

What does Tappy Lander borrow from these games?

  • The gameplay mechanics. Gravity pulls you down toward the target and you control your ship by thrusting in different directions.
  • You must not hit the landing pad too hard and more points are rewarded for accurate landings.
  • Get bonus points for rescuing floating vegetables, stranded in space.
  • Lots of dodging and maneuvering around traps and obstacles.

What does Tappy Lander do differently?

  • There is no fuel to worry about. Fly forever!
  • Controls are simplified: You can only thrust up, left or right.
  • No shooting. It’s all about precision flying.
  • In addition to touching items for points, there are items you must collect to complete a set.
  • More stuff that I’ll talk about in a future post!

The next post will probably address controlling the game and UI. See you then!

Thanks for reading and be sure to like and follow Tappy Lander on Facebook and Twitter for daily updates.

Future Stuff

Future Stuff

I just wanted to share a photo I snapped this morning on my iPad. This is the current top grossing app iPad app on the App Store. It costs $8.99.

iOS 7 is a 3D operating system and the latest iOS chips are 64-bit. I believe that Apple is positioning their tablets, phones and future items as a true replacement for many gaming consoles and PCs used for work and play.

Look at the quality of some of the 3D titles available on the App Store. Playing them on your television with a controller is just an update away. From there, maybe it won’t be long before I can start working with Photoshop or Illustrator powered by a tablet or Apple TV.

As hard as it is to imagine, PCs could be replaced in the next decade and hopefully, it will be with something better–something we haven’t thought of yet.

The Right Way

confusion-1

Cheesy clip art rules.

I just read an article about the difference between wireframe, prototypes and mockups in app design. My response to the poster was this:

Although it is important to have a common language with the people you need to communicate with, there is no one right way to develop any idea into a finished product. In my opinion, articles like this can intimidate developers and prevent them from finishing a project because they are too worried about not doing something “the right way.”

Many projects never get past pre-production. Many developers never make a game because they are afraid of how their peers will judge them when they don’t seem savy enough. Many programmers never finish a project because they are intimidated by the complexities of doing things “the right way.”

I’ve met with many developers and toured game studios. The truth is, there is no right way to do anything, there is only what works for you at the time.

Popular terminology, programming languages, coding techniques and hardware platforms change but the goal never does: Reach the finish line however you can.

…and never let someone stop you because you’re not doing it “the right way.”

Apple Now Gives 100 Promo Codes Per App Version (Instead of 50)

Apple Now Gives 100 Promo Codes Per App Version (Instead of 50)

I just snapped this photo about ten minutes ago. I double-checked on a second app and it’s true. Apple developers now get 100 promo codes instead of 50. This has been enacted retroactively on all our apps.

This is a good thing. We have found promotional code giveaways to stimulate our sales. Win-win.

Jumping

Jumping

I’m a huge platformer fanatic. This starts with Donkey Kong, matures with Pitfall and solidifies with Super Mario Bros. -the best jumping in video games that even Nintendo themselves can’t replicate.

Let’s make a glossary for the sake of this discussion…

Jump
Launching something away from the ground at some direction and some velocity which will be affected by a force (usually gravity) in order to return it to the ground. (Note: typically a plain-ole jump but this stuff could apply to slingshot-ting birds, firing cannonballs, etc.)

Return
Your return to the ground after jumping/launching

Jump Velocity
The strength or speed of your jump

Jump Direction
The angle or direction of the jump

Forces
Gravity, wind, friction or some other directional force that affects a jump in some way but the user has no control over.

Dynamic Velocity
Player has control over the strength or speed of your jump to some extent

Dynamic Direction
Player has control over the direction or angle of your jump to some extent

Committed Jump
A jump over which the player has no control of velocity or direction once launched (see: Castlevania, Scorched Earth, Angry Birds)

Dynamic Jump
Player has control of velocity, direction or both to some extent once launched. (see: Super Mario Freakin’ Bros., Sonic, Crash Bandicoot)

Floaty Jump
Dynamic jump into weak gravitational force resulting in oversteering through a slow return. Floaty jumps make it hard to apply your built in real-world understanding of physics resulting in unintuitive control. i.e. it sucks.

How do game developers program a jump?

First off, if your game does not rely on complex collisions with weird shapes or is not some sort of simulation you do not have to use a physics engine. You can write the code yourself.

I’m not discouraging the use of physics engines or other people’s code but if you’re really going to tweak the gameplay to perfection make sure you know how to change every value in the code like gravity, friction, velocity, etc.

How do developers code a jump?

Probably something like this:
If the player presses the jump button turn on gravity for the player and thrust him upward at a velocity that is higher than the force of gravity.
Since the gravity is always on (as long as you’re jumping) it will eventually override the vertical velocity and pull you back down. This results in a nice realistic smooth curve.
When the player hits the ground-turn off gravity for the player.

What can we tweak to make it more fun? Vertical stuff.

  • Vertical forces like updraft or gravity. For best result make it relate-able to real life so players can accurately gauge a jump-but don’t overdo it.
  • Vertical velocity value, the length of time that velocity applies (leave it on for a jetpack)
  • Player control over the length of time velocity applies. Here’s where Super Mario Bros. nailed it. The player can tap the button for a small jump or hold it for a higher jump. They can control the height of the jump by holding the button down longer. Genius!

After a set height however the player must come down so they do eventually lose control of the vertical velocity. Remember: the level design really matters here. Super Mario Bros. has three platform heights that Mario can jump to on any given screen. This means there are times that you can do a little vertical climbing even though the game is horizontally oriented (but this isn’t a discussion in level design so…)

That covers vertical motion. What about horizontal?

Good ole physics dictates that we can calculate vertical and horizontal math separately. So here’s what happens with horizontal:
The player can either NOT have control over movement in the air or they can press forward and backwards to guide the jumper. Friction should be added for a good heavy feel.

What can we tweak to make it more fun? Horizontal stuff.

  • Horizontal forces like friction or horizontal wind. For best results have friction so there is a weight to the player.
  • An object in motion tends to stay in motion. You shouldn’t be able to turn on a dime in the air.
  • Horizonal speed at the time of jump affects the angle or direction of the jump. In Super Mario Bros. you have to be running to make a long jump. Although you can “steer” in the air, it is limited and the weight of the character feels great.

I simply want developers to think about and spend time on perfecting these values and forces. If you’re lucky it’ll feel like Super Mario Bros.

Now go play Super Mario Bros. and think about the forces, feel the control and you’ll start to understand why the jumping in Super Mario Bros. itself is fun to play with and has kept players coming back for over 25 years.