shawn's blog

We’re timing you…

Posted in Other by Shawn on November 29, 2011

There really isn’t a “We” as this is just me. But “I’m timing you” sounds a bit creepier than “We’re timing you”. At least, it makes me feel less creepy. And that’s what’s important.

Of course, I’m really talking about Mr. Condyle’s Escape. Right now, for the demo, there are two level types. Goal levels, where you must reach the goal, and Survival levels, where you must survive until time runs out. So, it seems like it makes sense to add in a third level, which is a combination of the two. A Timed Goal Level.

A flag and a stopwatch? Clever! (not really)

The level type is simple. Reach the goal before time runs out. At first, this may seem weird, especially in such a fixed game. It may make more sense if you had direct control over the main character, where your direct move allows you to increase/lower your chances of success. This was the main factor to why I kept it out of the game for so long. I actually included this type of level within my code, but never implemented it in design until recently. But after thinking about it, and just mocking up levels, I decided to take the leap. Whether this is a good decision or not is not known.

The level in its most basic form has the player choosing moves they feel would be the best, as most levels do. However, in these levels, players must pick the most optimal solution, as opposed to the other level types. During any given Goal level, you could pause for a number of times, and still complete the level. Of course, your move count will increase dramatically, but that doesn’t negate the fact that you don’t really need to be move conscious. That changes a bit more with a Survival level, and even more so with a Timed Goal level.  It’s pretty much “Choose the best path, or lose”. And think of the stressful interesting situations you can be placed into. Let’s say the level you are in happens to contain Active Bombs (bombs that start ticking as soon as you enter the level regardless of whether you press play or not), then you’ll need to make the best decision quickly/right on time, depending on where the bomb is.

Quick note about Active Bombs. Just because they go off right away doesn’t mean one has to rush. Rather, they’re more about timing rather than rushing. You know this bomb will go off after ‘x’ seconds. However, when do you press the play button? Do you press play as soon as you can, or do you press play when the bomb is about to explode? Questions!

To bring that back into the whole Timed Goal aspect, this game actually gets a bit more complicated than I thought it would. You may have a timed goal level, where you need to make the right choices quickly, before that bomb blows up and destroys your path. Or, you may need to wait 5 seconds before you set out on your goal in a Goal Level with an Active Bomb. (Active Bombs add a whole new element).

Oh, and finally, there’s a new simple object, which I’ve neglected for some reason. It’s a simple switch. And it has the power to activate/deactivate certain objects, pieces of the level. There are a few level mockups for this switch, which should make the game a bit more difficult than it already is.

But that’s it for now.

Tagged with: ,

Comments Off on We’re timing you…

MCE – End of Iteration 10

Posted in Music by Shawn on November 28, 2011

So what happened this iteration?

Well, unfortunately, not as much as I would have liked. This past Thursday was Thanksgiving Day, so I do understand why some things may have slowed down. But, while I did not do as much as I would have like to, (I don’t have as many assorted tasks as usual since it’s mostly grinding out levels),  the work that was completed will make future work much easier.

I spent a lot of time messing with the Custom Editor API that Unity provides, and wrote a few things to help me out. My last Redmine instance crashed, and my data with it. On that machine, I had the solutions for the games levels. For play testing, I need the solutions, and rather not spend most of my time trying to beat levels over again, as I forget solutions all the time. So, having easy access to the solutions is key. They are written down in two notebooks, but the notes are very sloppy, and the levels are not in the right order. Sometimes, when searching through the book for a level’s solution, it felt like it’d be easier to just try and solve the level rather than search through the scribbles in my notes.

Anyway, in regards to the custom editor scripts, aside from making an easy list to spawn tools I need, I’m not documenting my solutions on an external file. Very simple, but still very cool. Basically, every time I beat a level, I save the solution to the level. Easier than writing them down, not as messy, and allows me to save time when play testing consecutive levels.

I also have a new song for MCE! I’m not sure where this song will go though. I was thinking this would be set for world 3, but I’m not fully sure what world 3 will be yet. World One is ‘TheCity’ and world two is ‘TheForest’, and I have a slight idea of where I should go next.

Speaking of more musical things, I set up a SoundCloud profile, featuring ‘Less’ and another piece that I worked on some time last year. I do plan to upload more MCE work on SoundCloud for easier sharing/access etc, but two for now will suffice.

But that’s it for now. I have to seriously think of what I’m doing for the next world. And make some more music.

Comments Off on MCE – End of Iteration 10

Music And Code

Posted in Music by Shawn on September 6, 2011

I haven’t really given music a fair shake on this blog, even though I’m consistently saying “Yay for music!” type of things here and there. This post should potentially make up for this.

As I have said in the past, I really do take a lot of time creating music for my games. The pieces that I work on are ones that I could potentially work on outside of the game development processes. I just happen to be fortunate enough to be working on both at the same time.

For Mr. Condyle’s Escape, I have two types of musical tracks that I am including. One would be world music, the other being hub music. World music is simpler. I need a track that will plan continuously, loops nicely, and doesn’t overwhelm the player while they’re trying to solve puzzles. The music has to be enjoyable, of course. It’s hard to please everyone, but if the player mutes the volume due to annoying music, then I think that I have failed. If a player thinks better in silence, that’s different.

World music will be featured later though. This post is all about my ventures in Hub music. What I am doing is nothing new. It’s been done before in previous games. However, now it’s my turn to actually try and implement this.

The hub for Mr. Condyle’s Escape is set up as follows – After starting the game, you are brought to the World Hub, where you see:

The Game Hub - If you beat a world, things get better....

Now, while on this hub, you will hear simple hub music:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

This is a short track, around 43 seconds. At the end, it loops back to the beginning. If you really enjoy it, and rather not play the game, you can sit and listen to this all day. You can even think of a lyrics to this as well. And if you really wanted to, you could get too into this and neglect everything else for a good 3 hours while pretending you’re someone really cool while “rocking out” to the music……..I’m not saying that I have…..but the idea isn’t dumb…..right?

Okay, let’s take a little look at behind the scenes. The music was created with a music program called Reason, which is pretty excellent for many reasons. After finishing the track, I exported it as a .wav audio file, then imported it into Unity, the game engine that I’m currently using. This track, which I will be referring to as the baseTrack for reasons explained later, took me about 30mins to tweak to my liking.

Somewhere elsewhere behind the curtain, there is some that gets things started. I wrote this particular script with Unity’s spin on Javascript. The code has segments snipped, so I can talk about the more important details:

var baseTrack : AudioSource;        // the track that we will reference and grab start points from
//the music files that we will be playing
var cityTrack : AudioSource

These two pieces show two of the tracks that I’m using. The baseTrack is the…well, base track for all of the hub music. It plays non-stop until you leave some sort of hub (going to the title screen, going to an actual game level). The cityTrack is the music you hear when you click on the building icons within the game hub. The cityTrack is made to go with the baseTrack. They’re the same length in time, which means if you start them at the same point, they’ll end and loop back to the beginning at the same time.

Basically, what I want to accomplish is this: When you’re on the game hub, the baseTrack plays. When you click on the city icon, the cityTrack fades in and accompanies the already playing baseTrack. Leaving the city hub fades out, leaving the basetrack to play by itself.

This can be handled a couple of ways. One option would be to have both the baseTrack and cityTrack play at the same time, however, leave the cityTrack’s volume at zero. Then when you go into the city hub, the cityTrack’s volume raises to play with the baseTrack. Leaving  that hub would lower the volume back to zero. Easy, but it could get messy very quickly. Especially because I want to include multiple tracks types of tracks that could fade in/out. It wouldn’t necessarily be to costly to write in code,

There is another option, which is what I opted for. What would happen is this:

//finds the point at which the base track is playing
//then cuts to that point, plays the music then fades it in
function FadeInMusic(clip : AudioSource)

clip.volume = 0;
clip.timeSamples = baseTrack.timeSamples;

clip.animation[“musicFade”].speed = 0.5;


This function fades the music in properly. First, if the clip’s volume is not set to zero, we set it to that. If I do things right, that line is actually moot, but it’s for if I do something stupid, or if I miss something, and the music decides to be somewhere it shouldn’t be. On the next line, we set the time of the clip we want to load to the same time as the baseTrack, which is already playing. If the baseTrack is currently at the 30 second mark, the clip that we are loading is also set to 30 second mark. This sets the music that we’re fading in to start at the correct point in relation to the baseTrack. We don’t really want one track to start at 0 while the other one is already at the 30 second mark. It would easily cause musical chaos, which is what do not want right now. The final two lines set the animation speed for the music fader, which is handled via animation. It simply fades in the music.

So, we have music fading in! It fades in at the correct time providing we call that function at the right moment. Now, if we click on the building icon in the World Hub, we are brought to this page, the level hub for The City:

The hub for the first world , The City

and that base track that we heard originally fades into:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Fun stuff right? And when you leave the city hub to go back to the game hub, this track fades out, and you hear the baseTrack. There’s a lot more code that goes into this. There’s checking to see what hub we’re entering/exiting, functions that kill the music completely, etc etc.

Back to in front of the curtain….

There’s a pretty cool musical challenge that I have for this hub. Right now, on the hub you see, there are 5 worlds. For each of these worlds, I want a different piece of music to fade in. This means that I need to create at least 5 different variations of the original baseTrack. However, it won’t be a simple as playing the same sound with a different instrument, which is what I did with the first piece. What I’m also doing is layering over a different complementary track to play at the same time as the baseTrack. For example:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

If you listen to this, you’ll hear the baseTrack in the background with a new piece of music to go with it. The challenge is creating different pieces of music to go along with the baseTrack. Oh, and those 5 worlds are actually getting six more to go with them. So that means 11 types of tracks need to be created to go along with the baseTrack. One goal is to have each of them sound significantly different from each other. While recycling is good, I don’t want anything to become boring. At this moment in time, I have four different alterations, which means at least 7 more to go, unless I want to include/remove potential worlds.

Here’s an example of music fading in/out accordingly. You hear how music fades in and out, meeting up properly with the baseTrack which is consistently playing:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

That’s it for now. All this is pretty simple, I guess, but that doesn’t mean that the end result isn’t cool. I’m still working towards the date for a couple of indie game challenges, and I want to have more levels designed by then. I am almost finished with the first world, which is the city world. So…that’s good, right? We’ll see!

Tagged with:

Comments Off on Music And Code

OriGamInc is back! And it came with a game!

Posted in OriGamInc by Shawn on August 25, 2011

Well, it never left. Don’t want to read on? Go there now!

I just stopped paying attention to it to really focus on game development. However these last four days were spent restructuring the website, much of it on the back end, making it much easier for me to manage. There’s some php changes, navigation changes, and it is now being versioned by Git. I also set up a way to conduct test.Which is better.

Much better.

Seriously, before, I was just messing around with the main page whenever I felt like it. I would change the production site, and if someone was currently on it, the same page would change about 15 times in a minute. Pretty unprofessional.

And guess what’s announced? MCE! Don’t know what MCE is? Go to this page right now! Exciting stuff?

This is MCE

All this work went into OriGamInc mostly because I sill plan to start an independent game studio. And this is where all of that work will go. It’s a very simple site, partially my work, with the blog handled by WordPress. It is intended to be simple, easy to read, and direct. Also, I don’t have a ton of html/css skills, nor do I want to pursue that at this point in time. Of course, I’ll continue to update this blog. This is still more of a personal blog, but it has become about 85% about my game development .

However, I’ll be getting back to that later on this week. I have some new music that I’d added to the game, and it works out nicely! Also, I finished writing all of the music scripts that I need to manage within the game!Excellent, right? Now all I need to do is actually continue writing the music. Maybe I’ll post some snippets of that music script later on that week. But who really wants to read my code?

But that’s it for now! Yay for OriGamInc? Oh, and if you don’t haven’t played the game yet go here to download a copy! ( To download a window’s copy, you can use this link, for a mac, this one. Please note, the game (at the moment) looks/runs best on a window’s PC with a 16:9 display.)

Tagged with: ,

Comments Off on OriGamInc is back! And it came with a game!

Demo v1.545/End of Iteration 6

Posted in Other by Shawn on August 22, 2011

So I have a playable demo! And you can play! You’ll need to ask fiercely, as it’s quite a difficult process making the demo available for all to play. So, I figured I should make it just as hard to get the game. Make sense?

Not really. All you really need to do is click on one of these links:

Download for Windows!

Download for Mac!

Or if you’re on the super top secret list of people, then you have already received an email with links to game. If you’re not on the list (there are a few people who should be, but I’ve lost their email address….), then click on one of those links above. If you want to be on the special updates list, let me know.

And it also looks like this current iteration is over. I managed to get up to 18 task for the 6th iteration, finishing all but 2, both of them art related. This upcoming iteration will focus on some more level building and some more artwork. I want to add more traps as well, but I haven’t really thought of new traps yet. It would be cool to put things in that didn’t make sense in terms of gameplay (I actually just thought of one right now!), but since this isn’t your traditional puzzle/platform game, I can’t simply include anything and everything. I can still do a lot though!

Also, I want to start putting in the game music. I have a few scripts that manage my game music, but I’m not currently using them, nor am I using the music that I have created thus far. By the end of this iteration, this should hopefully change.

I also plan to use this iteration to address any feedback that I get! The next time I release a build will probably be a while from now. World one is not finished, and that is a milestone that I want to reach before I even think about including additional levels. Actually, I would rather finish half of world two before I put out another demo. That may be a bit from now. It all depends on how much time I have to work, and if they ever decided to add more hours to a normal day.

But that’s it for now! If you play and have feedback, let me know via comments/email/contact page/skywriting/telegram/sing-o-gram/encrypted message!

And if you do play, thanks.

Tagged with: ,

Comments Off on Demo v1.545/End of Iteration 6