Juiciness

This video literally changed how I look at game development. I strongly encourage you to watch it if you’re at all interested in making games.

These presenters explain the concept of “juiciness”. Juiciness incorporates things like eye candy, animation, sound effects, tweens, and is essential to make your game fun and engaging. I’m now looking for ways to incorporate “juiciness” into every game I make.

Starling Tween Transition Cheat Sheet

I’ve been making games using the Starling Framework, and I’ve been using a lot of tweens. Tweening is a great way to add what I call “juiciness” to a game (I borrowed that term from here). Tweening gives your user interface some animation, and if it’s not used too much, can really make your game more fun.

There’s a whole bunch of different motion types that can be used with tweens. This graphic helps when trying to picture the various tween transition types, or “easing” functions – not just in the Starling framework, but in any other platform.

sparrow-transitions

Graphic originally from here.

Saying No

A poem on priorities:

It’s easy to be busy.
It’s hard to slow down.
It’s easy to ignore
what’s most important for me now.
I could do what I don’t wanna do:
things that nag at me inside – but
it’s easy to be busy,
for in busyness, I hide.

It’s easy to be busy
and fill my life with fluff.
It’s easy! My schedule’s full
of tasks and goals and stuff.
And there’s no end to TV shows
and Movies I can choose.
And it’s easy, oh, so easy,
to distract myself with news.

It’s easy to be busy.
I cannot seem to stop.
I run from here to there
putting out fires til I drop.
And lying on my back I muse…
I HATE it when I fall.
It seems, sometimes, that busyness
is not so easy after all.

“I can do that.”
“I’ll make that happen.”
My time suitcase bursts it’s clasps.
I fill my calendar
with everyone who ever asks.
Yes, it’s easy to be busy,
and it’s hard to take it slow.
What’s NOT so easy is learning
to simply say, “No.”

Written by Jonathan William Litster. Used with permission.

Supporting “the other landscape” in AIR for iOS

Most iOS games are either portrait-only or landscape-only. The AIR application descriptor file lets you easily specify this. All you have to do is add the following to your descriptor file, inside the initialWindow tag:

<aspectRatio>landscape</aspectRatio>
<autoOrients>false</autoOrients>

The above configuration will result in a landscape app that will be right-side up when the home button is on the right – known as “landscape right” – that doesn’t rotate to portrait when the device is turned. However, it will ALSO not rotate when the device is turned to “the other landscape orientation” – if you position your iDevice so that the home button is on the left, your app will be upside-down!

To have a truly industry-standard game, you’ll want your portrait games to support both “Default” and “Upside Down”, and your landscape games to support both “Landscape Left” and “Landscape Right”, as Apple calls them:
iphone_orientations

To accomplish this, we need to think about the concept of “stage orientation” as opposed to “device orientation”. Adobe’s StageOrientation class defines four orientations – DEFAULT, ROTATED_LEFT, ROTATED_RIGHT, and UPSIDE_DOWN. These orientations describe the orientation of the Flash stage relative to the physical device. DEFAULT simply means that the stage is oriented to match the physical orientation of the device. ROTATED_RIGHT and ROTATED_LEFT mean the stage is rotated either 90 degrees right or left. UPSIDE_DOWN means the stage is rotated 180 degrees.

For our game to work properly, we want to allow the stage to be in either the DEFAULT or UPSIDE_DOWN orientations, but NOT the ROTATED_LEFT or ROTATED_RIGHT orientations. Fortunately, Adobe has added some events that help us do just that. If your app descriptor has autoOrients set to true, the StageOrientationEvent.ORIENTATION_CHANGING event will be broadcast when the device’s accelerometer has detected the physical orientation has changed, and the Stage is about to rotate to follow suit. If you call Event.preventDefault(), you will prevent the Stage from rotating. So all we have to do is disallow rotating to the left or right, and allow rotating to the upside-down or default positions.

To accomplish this, add the following to your application descriptor file, to enable the Stage to rotate to follow the device’s physical orientation:

<autoOrients>true</autoOrients>

And add this to your app’s main class, to only allow a subset of those rotations to actually take place:

// we can control which orientations we want to allow with the following code
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, onOrientationChanging );

function onOrientationChanging( event:StageOrientationEvent ):void
{
	// If the stage is about to move to an orientation we don't support, let's prevent it
	// from changing to that stage orientation.
	if(event.afterOrientation ==
		StageOrientation.ROTATED_LEFT || event.afterOrientation ==
		StageOrientation.ROTATED_RIGHT )
		event.preventDefault();
}

And voila! Your app now support both portrait orientations, or both landscape orientations!

Condensed from http://www.adobe.com/devnet/flash/articles/screen_orientation_apis.html

Also helpful: https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html

500 miles week 4

39 miles total! Week before last was slow again, but my family came to town for thanksgiving this last week and partially due to their willingness to be walking buddies, I got 15 miles. So I’ve had a couple of slow weeks (3-4 mi) and a couple of better weeks (15-17 mi).

I wonder what I did differently during the slow vs fast weeks.

Well, week 1 (a good week) was the first week and I was really gung-ho, seeing as the workout program was still new and exciting.

Weeks 2 and 3 were slow, but I also had crazy work deadlines, some late nights, and started doing some light strength training at the same time.

Week 4 I had people to go with me, and I was on vacation half the week for Thanksgiving. I pushed myself on walks, did some more strength training, and generally was under the influence of my health-conscious, active-lifestyle family.

It’s amazing how much it helps me get out the door to have someone want to go with me. As in introvert, I often neglect this motivating factor, either from not being able to think of someone to invite, or from not wanting to impose/expend social energy.

It’d probably be a good idea to work on changing that.

500 miles week 2

Well, the second week of my 500 mile challenge is done. And I sucked it up. I let work, doctor/dentist visits, etc get in the way of my morning workout, and the only reason I was able to log 3 miles for this week is that the wife and I wandered around inside the mall today for an extended period of time. I walked a full 17 miles the first week, and only 3 the second.

But that’s ok. I did get out one morning for 2 miles. I worked til the wee hours of the morning on client deadlines several times this week. I cooked some new recipes this week. I finished two websites in addition to my daytime gig. In short, I accomplished quite a lot. And I can be proud of that. The most important thing to do now is to keep moving forward. I’m not disappointed in myself, well, only a little. I’m more motivated than ever. At the mall today I even planned ahead for the snow that’s sure to come (the first real snow of winter happened today, though it melted quickly) and bought a new pair of water-resistant shoes for walking in the snow. I didn’t want to spend the money but I know myself and once the snow comes, I’ll go out once in my old sneakers, get them drenched, and never do it again until spring comes. This way, even if the newfangled shoes get wet, I still have dry ones for the workday.

20131117-122011.jpg

I got this. Only 480 or so miles to go. Fun fact – 500 miles is more than enough to get to Vegas from here, and is also 2% of the earth’s circumference. I like figuring out distances (especially car odometer mileages) in units of the earth’s circumference.

500 miles

[wppb progress=”162/500 miles” option=”animated-candystripe green” location=inside fullwidth=true]
(updated 11/2/2015, started 11/2/2013)

I have a goal to walk 500 miles.

I will accomplish this by walking 30-60 minutes, 5 days a week. This means I don’t have a date by which I want to finish this, but rather an amount that I want to do every day. Assuming I walk 2-3 mph for 30-60 min per day or 10-15 miles/wk, I will finish the 500 miles in 8-12 months (assuming I don’t get in better shape and start doing more miles per week before I finish). Setting a goal of 500 miles helps to gamify the arduous task of getting in shape, and making it public helps to increase the pressure on myself to actually follow through and complete the goal, because if I flake, it’s not just me I’m accountable to, but everyone who’s read this post.

I really like the concept of “leveling up your life” as espoused by this article on Nerd Fitness. I am starting this personal challenge as a way to apply gamification into my life.

Oh, and of course, the inspiration for the title of this personal challenge comes from the timeless song by The Proclaimers: