I’ve been chipping away slowly at Timeless. Rest assured it’s getting done. But after a while of feeling stagnant, even though I was getting things done, I decided that I needed to do some facelift work on the logo again. As the plot has developed, and I’ve gotten a better idea of what it was that I wanted the game to feel like, I had an idea for a symbolic logo that would make a lot more sense as the deeper intricacies of the plot unfold.
A few days of forward momentum makes for quite a bit of tangible progress. Here’s everything I’ve finished for chapter two thus far.
So, really, for this chapter to feel play-through-able I only need to complete Darunia’s conversation at the end of the Caverns, and all the owl stuff. My brother is working on doing the NPC dialogs on the side, so that’ll all go in as his time permits. Updates here, of course.
It’s interesting for me to step back and see how much I’ve put in game, but also somewhat daunting to realize how much there’s still left to do. I know it’s a common fallacy to feel like you’ve always done more work than you actually have because you consider planning into the equation, while to outsiders, you haven’t done anything tangible. So I have this conflict where I want to only post about the tangible things I put in game because I feel like that’s what catches people’s attention the most. Sadly though, as is the nature of this project… it’s difficult to show what I’ve worked on without it being dull. You’re doing nothing but reading straight text for goodness sake! What’s interesting is seeing how the game feels different when you play it.
With this in mind, I’ve worked on a new format. Hopefully it’ll help drive a bit more interest from the perspective that I have. Because as I see it, Timeless is an exciting experiment in storytelling. The elements that go into the plot are pieces of my inner me that make me who I am. They are examples of how I view the world. And above all, I have found that the limitations imposed on me in this project have sparked more creativity than I could have originally hoped to have.
From here on out, expect some note on progress as usual. But on top of that, I hope that you find the process and rationale behind it all interesting as well. And hopefully, it’ll add more value to the posts.
This week has been an exciting one for me, considering I have made some more legitimate progress. Seeing stuff in game is always so much more appealing than just planning to see it in game. And since I was picking up this project after a very solid 6 month hiatus, I needed to re-learn my work flow as well as what I had in mind for the story.
As my previous post shows, I’ve been using a new technique to help brainstorm and solidify ideas through freewriting. Suprisingly, it’s been very helpful in turning up the exact problems I couldn’t put my finger on before, and as a result, the story is much more fleshed out. Down to the character specifics of what each person should act like.
So what did I get done? Glad you asked that! I continued on the linear track of main storyline. Since I finished up meeting Zelda just before I moved, I needed to finish up talking to Impa for the first time. Impa’s a cool character (well, Disces is a cool character… since that’s her name in Timeless), so it was nice to see her character finally come out in reality. I don’t know if it’s common for writers to feel this way about their characters, but I’ve found that even though I have an idea of what they are supposed to act like, they still take on a bit of their own personality as I write them. Like I am seeing something that already existed come to fruition as I write it.
Looking forward, this is what I still need to get done before I release chapter 2. I am not going to finish up the side stuff yet, I’ll work on those as I get burnt out on the main plot or in a second pass through everything. While I won’t have a beautiful fully fleshed vertical slice to show off every release, at least I’ll have the main plot done faster. Here’s what I’m working on currently.
As always, you can check the progress on the Progress page.
I just read this book Accidental Genius, which I recommend. It explains the idea of using free writing as a way to force creativity out of your skull and put it on to paper, theoretically recording all brain poop to the page. Then you go through and find the few nuggets that are actually good as a basis of formalizing abstract or sometimes elusive thoughts.
A freewrite about Darunia. What an angry dwarf!
In the attempts to warm myself back up to writing for Timeless, I figured it would be a good idea to test out this idea of using free writing. Well, to be honest, while I expected a benefit, I did NOT expect the results to be so poignant! I’ve blasted a severe amount of worthless words into Evernote, which have contained some really nice diamonds in the rough. I’ve pulled those ugly diamonds out of the poop, and am int the process of polishing those stones into sweet beautiful N64 goodness for your enjoyment.
For example, I’ve been having a difficult time understanding the in depth core of the lore I’d created. I knew that the purpose of the story was to explain why balance is so important in our lives, and I was using the gods Past, Present, and Future as representations of the different mind-frames we live within when we focus too specifically on one single aspect of time. However, that wasn’t enough depth for me to base a complex plot around apparently… considering the problems I was running into.
So, yesterday, I free wrote for about an hour (only an hour mind you, that’s how well this worked for me) in a sort of brainstorming marathon. Non-stop typing during that hour, with as little time to focus on thinking about what I wrote as possible. Then I went through and bolded all the things I thought were worth continuing to focus on. That act lead me to mull over those nuggets… which lead to a much more fleshed out and complete back story. Wow!
It was almost as if I had so many different thoughts in my head that I couldn’t decide on any one in particular. But by putting as many of them on paper as I could in one hour I exhausted my options and I was able to objectively look at them all at once, instead of flitting through a bunch of inherently fluffy and abstract thoughts that only existed in my head. The difference in coming to a creative and logical conclusion was like night and day.
And some more good news. I’ll start working on it once Chexcraft is done, or NaNoWriMo starts. Which ever comes first. And while Timeless is not a novel, it’s about as close to writing a novel as I want to get right now. And it’ll take similar planning and effort. So I figure… why the heck not?!
So, latest I’ll start is November 1st. Which is nearly one year after originally starting Timeless, coincidentally. Looking at the records, I started in January of 2013. So two months shy of one year. *sniff sniff* It’s like an anniversary or something!
Anyway, I got burnt out because I was trying to clear out entire chunks of the game at once (while also attempting 3D model changes, texture changes, music changes, level chenges)… which was just too much for me apparently. Vertical slices are exhausting! So I’ve dialed it way back and am going to drill down the main storyline first, then as I so desire I’ll hit up NPC/town dialog, etc.
After several weeks of planning and prepping I’m finally making showable progress again! Yes! This is a shorter post, but hopefully I’ll make up for the shortness with the following footage and screen shots.
As always, be very aware of the spoilers involved in recording game play of a story modification. If you don’t want the new story ruined before actually playing it… don’t watch the video! I won’t judge.
Let me clear something up right from the start… limitations are not a bad thing. They are usually hard, but hard and bad are completely different things. Timeless is really an exercise in dealing with limitations, and here’s one example.
Pixelated or not, I don’t think I’ve ever actually read her dialog…
In preparing to rewrite the scene where you meet Zelda for the first time, I realized that her dialog was chopped up into many mini messages (alliteration FTW!). Each new message starts when she changes position, or the camera moves around. And while this system works great for when the dialog has already been written before hand and the original developers are simply adding a bunch of camera changes to spice things up a bit… it makes it difficult for me.
You see, now I’m stuck with the flow of the conversation while attempting to give the game a completely new storyline. When one message ends, the cutscene programming forces it to move onto the next one in the sequence, and I have no control over that.
Needless to say, this 10-15 minute dialog cutscene between Link and Zelda has been quite daunting for me. I have a general idea of how I want the conversation to go, but now I need to figure out how to make it fit within the limitations given me. Once again, this is hard… but not bad.
I’ve already done a few smaller cutscenes with good results, like when Saria stops Link on the bridge before he ventures out into the wild for the first time. The difference here is simply scale.
So here’s what I did to try and make the actual writing easier. I took a screenshot of every new message block (which also means every time the scene changed in some way), and lined it up with the message number. I blurred out the original dialog so that I wouldn’t be influenced by it, and could focus on what Zelda was physically doing. After that, I copied the original text from the message bank and lined it up under each photo. Saved it to Evernote so I could edit it on my iPad while on break at work, and voila! Prepped and ready to go!
Here’s a link to the actual note in Evernote if you want to see the mess that it is. But while it’s a mess, it’s SO MUCH NICER than it would be otherwise. To get it in game, all I need to do is copy it from Evernote into the correct location in the message bank text file, then inject it into the ROM.
The past few weeks have been incredibly busy for me, both in real life and with Timeless. In real life, I’m moving about 2300 miles to a completely different culture and climate. That’ll be going down in just about a month from now, so there has been a lot of planning involved in that.
As far as work done on Timeless, most of it has been behind the scenes type stuff. I was originally going to do a post on each thing I learned, but the wide spectrum of subjects means that’ll be spread out across several weeks. Instead, I’ll list and briefly summarize everything, then as time permits I’ll expand on them.
I swapped from the v1.0 ROM to the Debug ROM. Lots of reasons for this, but that’s a long story for its own post.
I successfully altered some in game textures.
Someone offered to make some butt kicking textures. This guy works in the game industry as an artist and is really quite phenomenal at what he does. I’m honored. More when there’s something to show off.
I’ve been learning how to implement custom music.
AnimatixReels has offered to tackle the composition of said custom music. He’s really good, and excited to jump on board. Once again, more when there’s something to show.
Continuing on the vein of music, we’re going to be including all new ocarina songs, potentially with a new 5 note scale.
I managed to completely botch the porting of dialog from the previous v1.0 ROM to the Debug ROM… and have spent a good week or so trying to fix it. I finally fixed it today!
Lastly, I figured out a way to patch the Debug version of the game into the easy to find v1.0 ROM! What this means is that the process of patching Timeless 64 will not be any more difficult than it was for Chapter 1. This makes me happy, as accessibility is a focus for me.
So, yes… while I don’t have a lot of stuff to show for the previous few weeks of hard work, I did do a lot.
Which of the above points do you want to hear about first?
I don’t know what possessed me to try something as difficult as messing with exit codes and transition actors for my very first foray into actual HEX editing, but it’s been documented for the world to see. I’m beginning to realize that most of modding (and probably programming for that matter) is failing. And this a good thing! The trick is to learn from those failures and keep trying. Let me show you what I did.
The plan was to make the Lost Woods something to be reckoned with. Because let’s face it, those woods aren’t really a challenge any more… I wanted to make it so you would walk from one room into a second, only to find yourself in a dead end. So then you would turn around and walk back into the first room only to find that somehow you’re in a third room! The possibilities are endless with such a devious incarnation of the Lost Woods. And it would fit perfectly into the theme I’ve created for the Forgotten Children in Timeless.
One “room” in a large scene
Okay, now for the gritty part. The physical locations of the game are called scenes. For example, inside the Deku Tree is one scene, the Kokiri Forest is another scene, and the Lost Woods is a third. Each scene is made up of several smaller chunks called rooms (or maps). These individual rooms are created to ease the burden of loading too many things at once into the weak sauce N64 memory.
Probably the best example is the Lost Woods. Notice how when you walk from one room to another, there’s a black plane obscuring your view? That’s separating you from an unloaded room. Once you walk up to it though, the black plane fades away and you can see the next room. With this trick, Nintendo made sure only two rooms at a time could be loaded into the memory. That black plane is called a transition actor. It transitions you from one room to another.
Making sense of rooms and transitions.
I had been reading forums that documented the way to modify the behavior of transition actors, and I wanted to try something that I thought would work. Well… this is one of those times where I learned the hard way.
Essentially, my mistake was that I imagined “load this room when walking through transition actor” to mean that it would load the requested room right next to the transition actor requesting it. In reality, it meant it loaded the room exactly where the original developers placed it…
So instead of taking advantage of the great “two rooms at a time” trick that makes the player think they’re walking through a connected seamless map… I only destroyed the illusion.
Lesson learned? Transition actors don’t teleport Link all over the map. They do exactly what they say they do… load the requested room when walked through. Haha!
Everyone hates the owl Kaepora Gaebora. He doesn’t say anything worth noting on a second play through and he has that ridiculous “Did you get all that?” question with the default set to “No“. Why?! If you look a little deeper into the code, you’ll notice that the first portion isn’t skippable, but the rest is. While it seems like that should be a blessing to the player, it really just makes it easier to hit the default No and have to repeat the dialog again. So, I decided that in Timeless Kaepora Gaebora was going to be an important character and that I’d get rid of his stupid repeat question. Well… apparently that’s easier said than done. Let me show you.
The highlighted area is his entire conversation he has with Link the very first time you walk out of Kokiri Forest. You know, when you’re bright eyed and bushy tailed… excited that you’re talking to an outsider for the first time, only to be horribly disappointed with the encounter? If looking HEX code is new, I’ll point out a few things for you. First off, notice how on the right side is readable text and on the left is a bunch of number/letter pairs. The numbers on the left are a simplified version of the actual bit-code that makes the game function, and the stuff on the right is a visual representation of what the code on the left means. Both are important and help us puny humans visualize what’s going on in the game. More important to this discussion is how his dialog is broken up into four separate sections. Observe.
Each block begins at a specific location in the memory, with each block numbered… this number can’t easily be changed without screwing up a bunch of other offsets, potentially breaking the game. Each block ends with a 02 flag. Also worth noting is the dreaded flag 1A that makes that block’s text unskippable. Notice it’s only used half the time…
Let me explain the flow of this conversation. It starts in message #2064 and goes until it reaches the 02 flag. But notice that right before the 02 are three number blocks boxed in red? The 07 portion is telling the game that once it reaches the 02 at the end of the message block, it needs to continue directly to message #2065. Message #2065 is the looping part of his dialog. Same thing happens at the end of #2065, except this time it’s telling the game to continue into message #2066.
As you can see, #2066 is the “Did you get all that?” message block. Here’s where it starts getting funky… I don’t think anyone knows how the “Yes/No” dialog choice things work. Notice how at the end of this block, the only thing that ends it is the 02. There’s no fancy string of code to reference another block. All I know from trial and error is that if you press NO it repeats the skippable loop message #2065… and if you press YES it moves on to the unkippable message #2067, which then ends the dialog and triggers the animation of the owl flying away.
Here’s a lengthy (kinda boring) but informative video of me actually editing the dialog for testing. It’s all annotated so you can follow what I’m doing.
End result? Sadly it didn’t work out the way I wanted it to! Apparently the variable that tells the game you’ve finished your conversation with the owl is triggered by selecting YES! Gah! So no skipping it without editing the code somewhere else… no simple dialog edit there.