Sorry if this latest post seems a bit odd, but my brain is in 20 places at once, and I’m the hardest time focusing right now.
I somewhat did not know it ended. Things actually became somewhat confusing, thanks to that whole Fedora box crash.
But, I did manage to take care of some things related to MCE. Yay?
Well, one big thing is that many of the levels has been strung together properly. The City – the first world – has all the levels needed, and they are all in order (for now), as well as being strung together. The Forest – the second world – has ten levels + 1 boss level for now, and will eventually get to 20, the standard I reached for each world. Oh…and secrets? (Yes!)
I’m feeling a bit disorganized right now…..
Credits were added to the game. So…if you played the game, and I know you did in some way, shape or form, then you’re name has been added to the credits. There are people who say that they want a copy of the game, but I’m not aware if they actually played, which meant your name is absent from the credits for now.
A new demo is coming soon. This demo will be a bit bigger than the last. How so? It contains all the levels previously mentioned. However, there are more locked pieces of this game. In order to actually play levels in the second world, you’ll need to beat the boss level for world one. Oh, and get as many collectible items as you can.
There are a few more things I want to push out, as Iteration 9 is also running parallel with a build that I need to finish for submitting reasons.
If anyone wants to play this demo, contact me via email and such, and I’ll put you on the list to get updates, demo’s and more.
I think I’ve mentioned deadlines before, or something similar to that.
Well, currently, I’m using Redmine to act as my project management tool. I had this running on a Fedora 14 (yes, ‘old’) running on Virtual Box. However, due odd setup situations and setups, things broke. And backups? Not working. While my data is still there (I need to mount the LVM, which apparently I shouldn’t have been using anyway, and search for the files), there isn’t really a great way to get my files off of the machine. So….
Enter Linode, and a new Fedora distro (15!). I have a few things running on the machine – irssi, remote git repositories, but I have yet to set up Redmine. I had a bit of a problem setting it up last time, but that was mostly due to me being foolish. Hopefully, the second time around will be much easier. This is _if_ I cannot get my files from my older machine….which would make me sad, because I have a lot of important resources on that. Right now, experiences with Linode have been good. When I more free time, I plan to play around with different types of Linux for kicks.
Anyway, the breaking of things delayed me and slightly set me back in terms of motivation, which means I didn’t get too much done every day this week. On the days that I did do something, I was happy with the results. Right now, for what I want to submit to random Indie festivals, I have all the music and art I need. I need more levels!
Oh, and I made this chart a few weeks back. It shows the result of everything the player does; what happens when you click start, pause, etc etc. It’s somewhat interesting, which is why I’m posting it.
But that’s it for now. I realized that I haven’t blogged for a while, so I wanted to update someone or anyone. But back to working!
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:
Now, while on this hub, you will hear simple hub music:
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.
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:
and that base track that we heard originally fades into:
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:
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:
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!
Iteration 7 is over. I’m on 8. A lot of time has passed. Each iteration is 2 weeks (save the first one which was a three week experiment). So, after some quick math….that’s about 34 weeks, right?
To be honest, I do feel like it’s been a while. But not in a bad way. I’m enjoying the work that I’m currently doing, and I’m glad that I’m continuing to work these days, nights, and everywhere in between.
This past iteration grew to 17 task, and they with about 6 moved to Iteration Eight. I managed to make a pretty cool music script which handles musing fading in/out while staying consistent with other music that is currently playing. There were two methods that I could have taken, and I think i managed combining the two, doing something I think was somewhat cool. Writing the code actually makes me want to crate a music game. I also want to work on a multiplayer game, so maybe the best of both worlds will be combined, and everyone could make music together….in a non-Rockband/Guitar Hero type of way.
I also started tracking more player stats, such as the total number of moves made, something that I probably should have put in place earlier. However, it wasn’t necessary to the ‘core gameplay’ (I don’t like that term, but that’ a whole different story), so include it. It wasn’t difficult to put in. Most of the dilemma was where it looks better more or less.
I also managed to make 6 new levels in one week. I’m happy about this for a number of reasons. One, I made 6 new levels! Two, I’m more and more familiar with the world that I am creating. Right now, in my eyes, I’m not just creating a game, I’m creating a world and an experience. And in this game, there are so many moving pieces and precise moments that need to happen, which leaves room for a lot of errors. However, the errors lead to more things learned. Which leads to me making levels faster (in terms of development time), and levels that are better.
Basically, I’m learning more about my game, even though I’m the one creating it. Creating a level is a game within itself.
This next iteration, I’m moving closer to the deadlines for the Indie Game Challenge, and IGF. Of course, after those deadlines, I’ll continue to work on my game. I want to put together some sort of video so people can see my game in action. That will be after the deadlines however. I want to get as much of a game out as possible. I already do have a playable demo for others to play, but if I could make a better one…well, why not?
That’s it for now. The Starbucks where I am is currently closing. It’s only around 11:46pm right now, and they close at 12? I guess because it’s a Sunday? Who knows. I’ll just need to find somewhere else to write about Mr. Zenbrack Condyle (that’s the name of the character btw).