Yesterday I went to the Pennsylvania Academy of the Fine Arts. Primarily, we were there to see the David Lynch exhibition, because David Lynch is great. While we were there, though, we browsed the entire gallery. I always found history dry in school. But in a museum, I love looking at history, partially because it’s so interesting to see what things were different in the past, and what things remain the same.

In a salon-style gallery in the Academy, this picture is hanging in a prominent corner.


This is a painting by John Vanderlyn, depicting the mythological figure Ariadne. The full title of the picture is Ariadne Asleep on the Island of Naxos. It was completed in 1814, so this is its 200th anniversary year.

You may recognize the name Ariadne from its use in the move Inception. Ariadne is associated with the classic labyrinth story. In the myth, Ariadne fell in love with the hero Theseus, and helped him to escape from the minotaur’s labyrinth. This picture is supposed to depict the moment where, after eloping with Theseus, Ariadne woke up to find that the man she thought she loved had slipped out in the night and abandoned her.

You can click on the picture above to enlarge the painting, and there’s another image of this painting here in this long internet gallery of Ariadne paintings. She’s a fairly popular subject! She’s kind of a cool character because she was a problem-solver, but artists did seem interested in depicting this sad moment in her story.  In some versions of the story she’s then discovered by the God Dionysis, who falls in love with her and ends up marrying her. Being the wife of the goddess of wine doesn’t seem like a bad deal at all. I think it would be super chill to get a bottle of Merlot with Ariadne and talk about adventure games.

But the thing that really struck me about this piece is this.

An info screen in the gallery explained that when this painting was initially hung, it was controversial. Some concerned women wrote a letter to the gallery about some pictures that they found too offensive, the Ariadne among them. I took a picture of the info screen containing the text of the letter.


I think it’s legible when enlarged, even with my reflection on the glass. In case it isn’t for you, it reads:

Philadelphia, February, 1891

While thanking you for the many beautiful pictures with which you have decked the walls of the Academy, we desire, in the name of the womanhood of Philadelphia, and as voicing the expressed sentiments of very many, — several of whom are stockholders in the Academy, — respectfully to protest against the flagrant indelicacy of many of the pictures now on exhibition.

It is the general sentiment, that never before in Philadelphia has modesty been so ruthlessly assailed. As Christian women, as modest women, we feel this to be an offence to our womanhood, an attack on the delicacy of our daughters and the morality of our sons.

While in thus expressing ourselves, we do not mean to impugn the motives of those who admitted these pictures, yet we are convinced that the claims of ‘Art,’ often so loftily insisted on, should never take precedence of the higher aims of public propriety and morality, the interests of which would be greatly subserved by excluding from public view such pictures as [...] the ‘Ariadne’ of the Permanent Exhibition.

To emphasize this protest we would add, that one of the ladies endorsing it, whose relatives and friends have contributed a number of beautiful pictures to the Exhibition writes: ‘I am very glad to sign this paper; I only hope it may accomplish its object; I hate these pictures with a bitter hatred.’


[Fourteen names]
Representing, by actual count, over five hundred (500) of the Christian women of Philadelphia

I thought that this was incredibly interesting.



New Local Flavor

A new edition of Local Flavor is up at Tap-Repeatedly! This time, I went to New Jersey to visit the islands. No really, check it out!

I have some other great content in the works right now, but first I want to take a small moment to talk about journalistic integrity.

You see, everyone that I’m interviewing for the Local Flavor series is … someone I know. In some cases, I’ve clicked on their Greenlights, backed their Kickstarters, or watched them develop their games while they were developing those games. For anyone confused about the relationship between game journalists and game developers, rest assured that I am still a journalist developer critic academic who works for a company that manufactures hardware and does game publishing. Hope that clears that up.

If you’re interested in being part of the Local Flavor series, even if I haven’t met you yet, let me know! You have to be making cool things (games or game-related) and in reasonable physical proximity to me (though I have one interview from Boston coming up).

Travel Schedule and Downtime Update

Technical posting will mostly be on hold starting July 19. That’s because I am getting ready for a busy travel schedule in the second half of July…

Starting with MGX and TechReady, in Atlanta and Seattle, in the next two weeks. These are internal Microsoft events so I won’t be able to post much or tweet much publically. Sorry! If I’m quiet, that’s why. I return August 2.

After that, I am speaking (!) at VGU Con in DC on August 16! If you’re in the area hope to see you there!

ETA: I was hoping to get another post out, but I gotta board a plane for a wedding. Ah, summer. See you next month!

To give you some more game tech content to whet your appetite, check out my co-worker Dave going over the Prime 31 plugins. These are the same free plugins I plan to try out to enrich my game for Windows Phone. You can find plugins for all platforms here:


Sun Run: HUD Stuff

My game more or less works now. I added an additional enemy type, a “hill” that the player can crash into. I also added a quick HUD that shows a score which increments as the game progresses. None of the things I’m showing right now look nice. The hill is just placeholdered with the “capsule” in Unity and looks pretty weird, like an old Mario World hill in silhouette. The HUD is just black text. And my startup and end screen that I’m about to show are even worse… but the time for makepretties will be later; now I just want to get things working.

The code I wrote just does a “break” when the player dies. This obviously won’t work, so I need to add some additional scenes to my project.

I have two additional scenes: Splash, and GameOver. Splash will be the scene the player sees when the game first loads up. GameOver is after the player dies.

To make sure my game sees these scenes, I have to to go File-> Build Settings, and add each new scene to the build with the Add Current button. I should see a list of three scenes.


Notice I am working in Windows Phone mode right now. So here’s this very ugly loading screen…


Ha ha, I’m sorry, I still don’t even have a proper title for the game. But this is just a single sprite, so later, when I have a very pretty loading screen, all I will do is replace this placeholder with my pretty screen and we’ll be good to go! A small script advances the scene. I add this script to the sprite and set “scene” to be SunScene (the primary scene for the game). Then when the screen is clicked, the scene loads and the game starts. The updated script to kill the player uses Application.LoadLevel to load up the game over screen, and the game over screen also uses a click to return to the home screen.

Stuff to do:  make prettier splash screens, make a prettier score HUD and keep track of the player’s score, maybe with leaderboards? Playtest and work on feel and hitboxes, then add some Windows Phone features and publish. When HUD and score tracking are complete I’ll upload a couple web builds. Maybe you can test for me?


Sun Run: Physics

This part of the Sun Run project is the part that has taken me like, forever. Hopefully in this post I will be able to condense what took a lot of trial and error for me into some quick useful help for you.

What I would like in this game is the feeling that the player drives the horses, but needs to protect the chariot. Basically, ropy physics to make the avatar feel snake-like, so the control over the chariot is slightly indirect. Here’s the little most primitive diagram of what I’m talking about:


I started out with keyboard controls, but then added some mouse controls as well, so the player can use either tapping the top and bottom of the screen to move the chariot up and down, or use the arrow keys on the keyboard to move it up and down. I decided to try uploading the codes (it’s just the code for now, not the assets) to my very quiet GitHub, so if you want to follow along you can check them out there. I’ll update the commit periodically. Here’s the current version of the runner script. I’ll end up updating the code later to be sure it has proper touch control listening too. But what’s key here is that I put the code module on the front horse, and not on the chariot itself.

To make a chain in Unity you can use Unity’s 2D physics Hinge Joint. Each horse has a RigidBody2D and a HingeJoint2D, and they’re connected in a line, then parented to each other to allow the chariot to drag behind each horse. These are the settings currently on, which will probably be tweaked later (but this is already a result of a lot of tweaking…)


RunHorse1 (the front horse) is connected to RunHorse2, and so on, all the way to the chariot itself in the back. With four horses connected this way to a final chariot sprite, the control feels pretty tight, with just a little bit of slack behind. The -.75 on the chain anchor means that the horse connects to the horse behind it with a little slack instead of directly. The setting between the last horse and the chariot is at -1. I experimented with angle limits, but I didn’t like the result, so they are off for now. Notice there’s no gravity on my front horse and very little mass. If I use gravity, the horse will just fall, so away it goes! The light mass also means it’s very easy to control. Each horse has the smallest possible mass and the chariot itself is set to 0.003. Right now I’m keeping everything very light so the control feels tight, but if I want to make things harder to control, increasing the chariot’s mass makes it drag the whole chain down and is one way of doing it.

I’ve done a little playtesting with these controls and they feel “okay,” but maybe a little easier than I’d like for things to be. Some early feedback I got was that the primitive chariot sprite has a pretty unclear hit box. I’m actually using a particle system to make the chariot burst into flames… it’s so pretty, but I fear it hurts the clarity of the game, so it may have to go. Also, I’ll need a better chariot sprite and to make sure the enemy hit boxes are clear as well. Work for next time…


Microsoft Startup Ventures Event

Hi everyone – I’ll get back to game dev blog soon, but first a word from our sponsors:

It wasn’t very long ago that I heard the phrase “The Internet of Things” for the first time, and now it seems to be everywhere. I couldn’t quite wrap my head around it, and then someone said “It’s like MegaMan Battle Network,” and then I was like, “Oh!”

But maybe you’re already working in the Internet of Things, on some cool home automation solution that you think will change the future. It’d probably be nice to have some more capital, mentorship, and support to make that happen. If that’s you, you will want to check out Microsoft Ventures. Microsoft has had success with startups around the globe, and now they want to hear from the smartest people in home automation to decide whose startup they should support and fund. Or, more specifically:

 “Home automation is ripe for startup innovation,” said Steve Guggenheimer, corporate vice president, Developer Experience and Evangelism for Microsoft. “We are working closely with American Family Insurance to provide a one-of-a-kind experience for entrepreneurs in our accelerator. Startups accepted into the program will gain critical industry insight to build companies with the potential to have an enormous impact on our lives.”

The accelerator provides mentorship, workspace and an immersive experience focused on launching world-class companies with an eye on the global marketplace. Access to customer, partners and investors while taking no equity, no debt and no dilution. American Family Insurance, the eighth largest homeowners’ insurer in the U.S., will provide deep industry experience, important consumer insights and a wealth of homeowner knowledge that would be impossible for young companies to gain access to on their own. American Family Insurance is also offering a minimum optional $25,000 equity investment in each startup accepted into the program.

If you want more information, Microsoft Ventures is holding a meeting on July 17th at the Invisible Dog in Brooklyn, New York. Check out all the details here!

If you have a cool startup based on the Internet of Things, and you can make it out to New York next week, consider registering for the event. It’s win-win: you could get funding and workspace for your amazing new business, and I can get Roll.EXE to bust the viruses in my wafflemaker.

Sun Run: Adding Some Runner Mechanics

I hope everyone had a good weekend! It was a holiday here, which is why I slowed down development (to work on a different project actually, but also see The Edge of Tomorrow and play Shovel Knight, both recommended) but now I’m back!

Let me talk about how I went from having some sprites to having a bit of a game…

First of all, I want to give credit to the resources that have helped me with this project. One resource that has helped me out a lot is Jesse Freeman’s Unity training, and his book, which gave me some useful code for creating enemy spawns in the game. I won’t replicate that code here, but with some info in his book, I was able to create three different spawn points to spawn enemies on the board, which will fly toward the player. The first enemy sprite is a bird drawn with basically the same method as the horse sprite. You can see the graphical representation of these spawns in this working shot here, on the right:


After a lot of trial and error, I decided not to have the player actually move from the spot. I looked at some endless runner code that actually moved the player, but it seemed to make more sense to actually keep the player stationary and give the illusion of movement instead. Enemies spawning from offscreen to the right was one way to do it, but what about the background? I saw my co-worker Dave Voyles had a great solution for that in his schmup games:


If I zoom out of my scene and switch to 3D Isometric view, you can see what’s really going on. There’s a cylinder in the background that shows a texture that’s set to perfectly wrap. The sprites are in the foreground. The code to make the cylinder rotate on its own is really simple…

public class BGRotate : MonoBehaviour {

public float BGRotSpeed = 10f;

void FixedUpdate()
// rotate this
transform.Rotate (Vector3.up, BGRotSpeed * Time.deltaTime);

The transform.Rotate tells it what direction and speed to rotate. I can change the speed of the motion in Unity later, though what I’ll probably do is write a bit more script to speeds things up slowly over time (which would also have to affect the enemy spawns).

The black bars at the top, bottom, and back of the scene are destroyers. They’re used to kill the player if they crash into the ground, and destroy any birds that happen to get past the player, cleaning up the scene. This may not be the most efficient solution for cleanup, but it’s working for me for now. The code for how to get the destroyers set up is in Unity’s Live Training archive under “Let’s Make a Game: Infinite Runner.” I’m linking the whole archive because it’s some of the most useful free resources for learning specific Unity tasks that I can find. It starts out gentle for beginners and has lots of specific code examples for different problems you might encounter!

Next blog I’ll talk about the chariot motion using 2d physics, which was/still is the biggest trial and error point in the game. Want to get that feel just right…

Five Questions Article

Hi, no dev blog update yet, just a quick notice that I am featured on “Five Questions With” this week thanks to TonyV! Thanks Tony!

If this sounds different from my usual writing voice, it’s because he asked the questions out loud. I just do my best not to ramble.

And sorry Mom, but you totally knew I inelegantly tried to hide all the video games in my college luggage. Long term, I think it was for the best.

Amanda Lange's Blog