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

Developer Diary #15 — Red Tape

This is Apple.

Alright, it’s about time I wrote. I’ve put off writing until I could announce Precarious Potions, but in light of recent events I will abandon that plan and write anyway. The past couple months I have been beating my head against the red tape gates of App Store submission. Precarious Potions is ready to go on Android, but iOS is proving to be a ferocious bureaucratic monster. I’ve tried to get around not owning a Mac but in the end I gave in. I will be buying a shiny new app submission box. Woe is me and all that.

On a more positive note, the New Year has brought a great deal of business with it. It has been encouraging to find email waiting for me almost every day. It looks like my work is getting out there and generating its own interest. That said, I do not know where most of my website views come from (you are a mystery to me). I can only think that the largely false “If you build it, they will come,” has become true in “build enough, long enough, and somebody will show up.”

20140206-215744.jpg

I have also spent some time reskinning JuJu Berry (the matching game I made for a local frozen yogurt shop) into an improved version with my own IP. I am thrilled with it and will be charging full steam toward Apple’s red tape nightmare again as soon as Precarious Potions is out the door. The current version is available for license now.

I am finding myself growing a passion for this style of match three game. I know that’s weird. It also rings a bit anti-indie. However, I think I have stumbled on something really incredible. I know match three has been done to death, but it is always done to death the same way. In the end, it’s about bottle-necking the player with number of pieces. But what if it was fundamentally different? What I am asking now is, “what if the bottleneck is removed?” What if the limiting factor becomes player memory and organizational prowess? I cannot describe how excited I am to play with these ideas. It’s just waiting to be done.

Things are really looking up! I can’t wait to report on Precarious Potions. Fingers crossed for late February!

-Ryan

Developer Diary #14 — Ohio Game Developer Expo

Last weekend my wife and I attended the Ohio Game Developer Expo. The OGDE is a completely new event which was held on Ohio State University’s campus in Columbus Ohio. This was our first event like this, so we approached it with a bit of anxiety. To make things interesting, we had just finished a week of grad school finals. We had zero opportunity to catch up on sleep before waking up at 4am to make the drive to Columbus. Friday morning, we had nothing ready for our trip. After our last final, we managed to design business cards, a poster, a table layout, and desktop configurations of two tablets and a laptop. I also created and exported stable builds of each game in a few hours the evening before. Then: packing, booking a hotel, sleeping a little, loading the car, driving off into the dark, and suddenly we were setting up.

20131210-202503.jpg

The expo was a huge success. It turned out to be an intimate affair, with about 30 booths and a steady flow of traffic given the space. We had the opportunity to meet and talk to a bunch of great people who live only a state or two away. Living in the Midwest can be isolating as a game developer. It seems the big-kid clubs are all in California, New York, or some other coastal region. It was unbelievable to meet real people who made and played games. To all of those who we met at the event: I’m so glad for your presence. It was a true joy to meet you.

20131210-202238.jpg

As you can see in the photo, we showcased Precarious Potions at the expo. I made a special build which reset all save data when the game was started so that players got a fresh experience, every time. I have heard more than a few times to make sure your build is ready for public consumption before a show, so I took time to get things ready. In spite of this, I expected problems. The best way to find all the ways your game is broken is to show it to real people, after all. Yet, we had none. The hardest part of the event was keeping my introversion in check with coffee.

I now feel very prepared to launch Precarious Potions. The feedback was incredible. I kept fishing for critique, but no one could (or would) say anything against the darn thing. One woman described it as “pleasantly frustrating.” Another compared it to Cut the Rope, which is absolutely what inspired me at the start. No one needed instruction, not even children. In fact, the kids learned much faster than the adults. One kid ran back to his mother’s booth after playing and presented me with free merchandise from their table. In general, people played much longer than politeness dictated–and some played a very long time. I left the event excited and ready to wrestle with multiple ridiculous submission processes.

Which is what I am going to go do right now. Expect a release early January!

-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