Menu

Untold stories of a game developer

Tag Archives: programming

In our latest game dev adventure, we were looking for a way to use our sticker app as a level editor for our upcoming puzzle app that uses the same set of assets.

A little backstory…

Our latest app allows users to pull an image from a tray at the top of the screen and resize it, rotate it, flip it and place it onto a background to build a scene. It’s basically a sticker book, or for those of you over 30, it’s like Colorforms.

Our next app is a jigsaw puzzle that, upon completion, is filled with interactive characters. It also just happens to use the same backgrounds and stickers from the aforementioned project.

…so, as I was saying, we needed an editor that would allow us to place the characters in the puzzle (to avoid painstakingly positioning them a pixel at a time.)

THE HACK

Since the sticker app saves each scene you build in a file called stickerData.txt, and the touchscreen controls work much better on an actual device than our mouse-and-keyboard app simulator, we hacked the app so that we could tap a button on the options menu to email out the stickerData.txt file from the device.

Now I can position the characters anyway I want on the iPad and email that data to my partner without even touching my computer. Here’s to creative solutions *clink!

You’ve practiced and taken all variables into account. You zero in on the target. Finally, through the combination of calculation, instinct and luck… SWISH! Two points!

I believe the popularity of physics in games is due to two things.

Familiarity Physics gameplay allows you to use the instincts you have developed since childhood. You’re using real-world skills to do the impossible in a virtual environment.

It Feels Good It gives you a sense of accomplishment that you only get in physics simulations. The same feeling you get when you successfully shoot a basketball.

Tappy Physics

Being created with Corona SDK and Box 2D, an open source physics engine, Tappy Lander is a game that pits your piloting skills against your biggest enemy, gravity. The physics engine handles the forces of your thrust in a semi-weightless environment splendidly. It also handles collisions so that your ship explodes only when it feels like it should, and the falling debris bounces around on the ground realistically. Although some of the collision code is built from scratch, most of it relies on the Box 2D engine. Friction, bouncy-ness and gravity of each planet varies and is all controlled by Box 2D.

Emergent Gameplay

One of the joys of physics is that you get all kinds of fun and sometimes unexpected results. The first time I landed in the prototype I noticed a little bounce. At first I thought “Wow, that looked realistic and cool”. My imagination sparked, I quickly then asked. “What if you get extra points for a higher bounce”?

Tricks

Both the slide and the bounce trick (seen here in the Tappy Lander Trailer) was made possible and inspired by side effects of the physics code. Some planets have less friction than others, allowing a super long slide if you come in at the right angle with enough thrust. Other planets are softer and bouncier, allowing for a super high bounce. Tricks yield lots of points when done correctly but are very risky and easy to botch.

Sliding A proper slide requires that you touchdown onto the landing pad and slide off of it into the planet terrain. If you touchdown on the planet terrain at any speed your rocket explodes. Oftentimes when attempting a slide you will either overshoot the target or skip off the target and hit the ground.

Bouncing If gravity is low and you come across a soft planet, conditions are perfect for a high bounce. Remember, however, one of the fundamental rules of landing: hitting the target too hard results in an explosion-so be careful! A 2000 point bounce unlocks the “Megabounce!” achievement and its possible to get an even bigger “Gigabounce!”

That’s how physics work in Tappy Lander and now you know the origin of the trick system! Next… I’m not sure what I’ll talk about yet!

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

I went with Tappy Lander! because it sounds fun to me and it’s descriptive of the game’s content without being boring. In the game you will tap the controls to land your rocket on the target (trying not to explode in the process.) The name is actually informative in that tapping is a better strategy than holding the buttons because of the precision of the physics-but I’ll talk about that in another post.

Other factors that went into naming the game:

We are targeting phones as the primary game platform. I’m very particular about little details and it bugs me when the words under the icon on my phone have a “…” appended to the text. Best case scenario, the title in its entirety is completely visible and “Tappy Lander” as well as “Tappy Lander!” fits.

This game falls under the “lander” genre of games, the first of which is Lunar Lander (1979 Atari coin-op)

If I’m being completely honest, “Tappy” was inspired by “Flappy”. It was Flappy Bird that inspired us to try quick, simple projects and I’m having so much fun developing this game. No apologies!

The next post will probably be about influences.

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

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.”