Developer Diary #18 — Lava Lamb

It’s been some time since my last writing, so I’ll just dive back in and talk about what’s been going on. The summer was somewhat slow for game work, with the bulk of my time spent on API integration for various platforms. I have not released Treasure Chasm yet, which is really ironic considering how rapidly I created it. There are many “reasons” (aka excuses) I can give, but the main issue is that I am still without music. Hopefully I will be able to wrap it up and release in the near future. I also participated in the Ludum Dare, and crossed the finish line for the first time. I spent some time after the weekend working on expanding the game, but soon found the overall design lacked enough depth to continue. Even the failure was great design experience.

For now, however, I have been working on a totally new game. It is just days from release. I started with thoughts about combining pinball with Doodle Jump. It turned out to be rich with gameplay, which I am thrilled about. Initially I was going to make the game about a series of interesting little monsters that jump out of a volcano. While the gameplay was going very well, the theming just was not right. I tried to make a few different monsters but the result was mostly just confusing.

Then, I made one little change. I scrapped the monsters and added a sheep. Something about the juxtaposition of wool and lava was really hilarious to me. After that the game really just fell into place. I watched a great talk by Rami from Vlambeer about game backstory which helped me assemble a structure about a stupidly brave lamb that has jumped into a volcano. For some reason you are supposed to rescue the sheep with giant pinball flippers. Also disco is playing. By that point, the title Lava Lamb just seemed very appropriate.

Right now, everything is “done.” This means I am in “struggle with Apple” mode. The only steps left are uploading app preview videos and submitting the final build. Hopefully that can be accomplished in the next few days, but the last couple weeks of Red Tape Jungle give me reason to be hesitant about any projections.

Ryan

Developer Diary #17 — Gifs Ahoy

Work on Treasure Chasm has finally begun. Boy has it been fast. I’ve never had a project take off so quickly. The last few weeks have been very interrupted by travel and grad school finals, so the rapid reentry has been very refreshing. I was pleasantly surprised to find that my pre-drawn artwork served as a to-do list once development began. With so much time to consider how the game should go, I found the gameplay was solidified and focused before I even began to program. There really is very little complexity, and I want to keep it that way. Projects tend to spiral out of control with too many ideas. So far, I have been avoiding that by sticking to a simple core. We’ll see how that plays out in the end game.

I’ve included some gifs to show off some of the game. The main idea is simple: dive below the surface to collect treasure, but don’t run out of fuel. Players can refuel at the surface as well as upgrade their submarine. As the players upgrade their vehicle they will be able to go further and further below the surface, where greater rewards are found. Along the way they run into many different kinds of obstacles. The goal of the game is to reach the bottom of the ocean to collect the greatest treasure. What players doesn’t know is that a secret buzzes in the deep. I am currently wrestling with the ending, giving it a satisfying bigness without bloating the project unnecessarily.

 

gif01

gif02

gif03

 

I can’t properly describe how much fun I’m having with this. Here’s to hoping it’s just as fun for everyone else. More to come soon!

 

Ryan

Developer Diary #16 — New Game! New Game!

dev05

A few days ago I started work on a new game. This is always an exciting time, so I am capitalizing on the creative high by doing as much pre-planning and asset creation as possible before piecing things together in Construct 2. I am usually so eager to see things moving on the screen that I can skip important steps. Then I waste time and focus correcting them later. Right now I am streamlining the gameplay and organizing the flow so that the resulting game is cohesive and simple.

Photo Mar 21, 3 47 33 PM As an artist, one of the best ways for me to plan a game is dive right into asset creation. As I create elements, I think to myself, “what purpose does this serve the gameplay?” and, “what is the simplest way to include this?” That way, as I am creating art, I am solving key problems before being faced with less important but more distracting problems. With this game, I am telling myself that I should be able to play and enjoy myself in my mind before writing any code. It’s tough but so far has been absolutely worth it.

I hope to catalog development on this game better than I have in the past, so more posts/screenshots/gifs should be on their way shortly. Feedback is very appreciated. Drop me a line on Twitter or leave a comment below.

 

Thanks for reading!

Ryan

Precarious Potions Post-Mortem

“Yesterday I released my first app to the App Store and Google Play.” What a phrase. As of today there are over a million apps in the App Store alone. I am still learning how to “make it” in this market and am beginning a new journey as I write. What an exciting week! For the sake a post-mortem, though, how about we rewind a bit?

Beginning

I started work on Precarious Potions the summer of 2012. I was working an awful job and discovered HTML5 as an alternative. I had been making games for the past 10 years, but never thought I could earn a living doing it. I started making Precarious Potions as a way to learn the platform. I put it to the side while working on other games, and established a sustainable business over the next year and a half. Whatever I was working on, I kept coming back to Precarious Potions. It reminded me of Cut the Rope and Jenga in all the best ways. It was just so compelling I had to finish it.

20131210-202503.jpg

Learning Experiences

So what have I learned during this time? I have grown immensely as a game designer. I refactored the game at least twice. The scope of the game has both exploded and shrunk and has settled somewhere much grander and yet simpler than I originally intended. I learned how to build atmosphere and adventure without an enormous amount of assets. I disposed of stereotypical tropes like the “level wall” nearly every puzzle game uses blindly. I questioned my reasons for making games and for following cookie-cutter models given me by the games I was emulating.

I learned how to design levels—and I’m not talking about using a level editor to place elements on a page. I’m talking about creating lists of lessons players should learn to play the game without instruction. I’m talking about deconstructing what male and female players from ages 5 to 99 do automatically when presented with a stack of books and a bottle on a touch screen. I’m talking about using zero tutorial text. What I learned the hard way is that creating good puzzles is about first knowing your player really well and then simplifying until the player has the knowledge and ability to make complicated decisions on their own. Of all the areas I grew while creating Precarious Potions, this was at once the most painful and the most rewarding. I still get a headache thinking about it, but am prouder of fewer things.

PPleveldesign

What Now?

I also learned that HTML5 is powerful, useful, and mature. We are no longer in the era of cute web demos. “Write once; run everywhere” is no longer a buzz-phrase. You can do it today—I did it yesterday. If anything, Precarious Potions shows that there are options outside of proprietary languages and plugins (all of which are great in their own right) that are legitimate and robust. It’s not perfect. It’s got weird bits and awkward places, but I would recommend it and I intend to keep using it.

I love my game, and I hope you do to. I’ve released it for free with zero ads and in-app purchases. I am honored to have a partnership with the great guys at gamemix.com who have made that possible. If you’d like to give the game a spin, you can play it on iOS, Android, and/or the web via www.precariouspotions.com. If you like it, consider rating or sharing with a friend, your mother, or your favorite house pet. Tweets, posts, and +1’s are sweet, sweet gifts.

Have a wonderful day, and I hope you enjoy playing.

Ryan Davis, Creative Ink Games

 

Photo Mar 03, 7 24 42 PM

Precarious Potions Launch

img

Today is finally here! After many months of tough love, Precarious Potions is ready for the world. What can I say? There really are no more words.

It’s free, it’s fun, and it won’t ask you to harass your Facebook friends. Play in an app or a browser through the power of HTML5.

http://www.precariouspotions.com

Have a wonderful, fantastic day.

Ryan

Anyone Can Make Beautiful Games: Tweening

I’ve said it before, and I’ll say it again. Anyone can make beautiful games. Last time I wrote about this I made a list of things you can use to make your games beautiful, but this time I’ll go into bit more detail about just one concept so we can drill down a bit further.

For those who are not yet aware, tweening is an animator’s term for the process of drawing frames between two distinct and separate images. In traditional animation, the lead animators usually create the rough outline for a scene and pass on their work to a team of animators who fill in the gaps. Good animation has excellent use of tweening. You should not be able to tell where each key frame is.

Game developers also benefit from tweening. If you would like to read more about why we tween, you can look at some of my previous posts. For this post, however, I will be talking more specifically about how to tween. Let’s start with an example.

Below we have a fairly typical title screen. It’s got a title, a play button, and a help button. It looks ok, but really isn’t all that eye-catching. Clicking the play button moves to the first room of the game, but in a jarring, static sort of way. Though it isn’t the best, most indie games look like this. In fact, nearly all HTML5 games work this way.

tween_01b

Here’s how to stand out: tween everything. In the example below, I have taken all four menu elements and added a tween to them. The title image uses a tween called Ease Out Elastic. I have applied it to the width and height of the image. Both the play and the help buttons also use the Ease Out Elastic function, but what is affected instead is the y position. The black bars on the side use a simple tween which subtracts 10% of the distance per loop cycle. The function is very easy: x = x + (targetx – x)/10. You can play around with the number on the end to change the speed of the transition. Lastly, when the player presses the play button, rather then immediately jumping to the next room/layout/canvas, using some sort of transition can make everything look better. I generally use a fade, though there are many other options.

tween_02b

One last note on tweens. Because tweening inherently delays the game (however briefly), it can leave “beautiful” and enter “frustrating” if it is too slow. Human reaction time is about 0.3 seconds after the initial stimulus. In that time, our eyes can see almost 20 separate frames (assuming 60 frames per second). This means that game designers have about 20 frames to flash a transition without worrying about holding the player up. Sometimes even two or three frames are enough to satisfy the player. This is very important for tweening elements that might hang up the game (between-room fades, buttons, etc.). For this reason I never let a fade between rooms last longer than 0.2 seconds.

20131011-191551.jpg

Below I have included some resources for javascript, GameMaker: Studio, and Construct 2 users. You can write your own functions, but in the end it’s the same math. I have found them extremely helpful.

Javascript: http://easings.net
GameMaker: Studio: http://www.8bitwarrior.com/?p=823
Construct 2: http://www.scirra.com/forum/behavior-litetween_topic53288.html

Happy Tweening!

-Ryan

Developer Diary #12 — Forward Movement

This must have been the week to wrap things up. I now have two finished games to write about. As I wrote in the last post, I have been working with a local business. Now that the project is over, I can share some details.

The game is called JuJuBerry: The Game. JuJuBerry is a frozen yogurt store. It turns out frozen yogurt is highly adaptable to games. They have over 80 different toppings and 18 different flavors of yogurt which change regularly (nothing beats fringe flavors like Red Velvet and French Toast soft serve). I decided the toppings would make a great matching game, so I took the very popular “match three” model and gave it my own twist. The project took about a month and overall was a joy to work on. I spent a lot of time and energy on devising ways to help bring people into the store via the game. The coming months will tell how beneficial the game has been to the business.

20130905-131831.jpg

Play Here

After finishing JuJuBerry: The Game I moved on to Breakout Cove, which has been sitting sadly idle while my focus was diverted. I took a couple days and wrapped up the end-game and found/created the sounds and wrestled them into cross-platform submission. I am very pleased with the result. I hope to use the new skills I have acquired while working on this to influence my future work. I have placed a link in my portfolio and am taking orders for non-exclusive licenses.

20130905-132512.jpg

Play Here

Both of these games are a big step forward for me. Looking back at my portfolio I can see a dramatic increase in both focus and quality for these games. I am figuring out what to spend my time on, how to transition between segments of the game fluidly and coherently, and how to direct the player without being frustrating. I am also seeing a maturing of my art style (which in its current form is only about a year old) that is moving from “pretty” to “polished”. I have a long way to go yet, but the forward movement has definitely been encouraging.

-Ryan