This is a diary I kept while making the game.
People often commented on this and the game itself. Click here to read the MR3 comments
External Script Files
30th Oct 2006I realised today that whilst MR3 links to it's external casts as whole casts, I had used a different technique for the Map Editor. That actually links to externally held .ls (lingoScript) files.
Because these files are seperate, I needed to apply the GPL header to each of them. So I wrote a script to do that.
I also realised that when you open MR3 and the Map Editor for the first time, they will ask where the files from TMB Core are. For MR3, this isn't such a big deal since it only asks for 4 files and since they are all in one place, you can tell it where the first one is, and it will find the others from there.
The map editor, on the other hand, requires the locations of (at a guess) about 30 files and requires you to tell it where every single one of them is. For that reason, if you want to use the map editor it will be better if you first install the TMB Core to the same location I have it. That way, the map editor won't have to ask where the files are. I'll include instructions on how to do this.
The fact that the Map Editor's script files are held externally does have a side effect that seems worth a mention. It means that you will be able to see the Lingo code that controls it even if you don't have Director. It also means that you can change the code that it uses to run, though that would be pretty meanlingless since without Director, you won't be able to run it.
On that subject, MR3 also has copies of its graphics held externally so anybody who is interested in using those would be able to do so, without having Director.
Added Licences
26th Oct 2006I spent most of today installing Fedora Core 6 and various other distros. It wasn't supposed to take that long and I kept resolving to leave it alone but I kept trying "just one more thing". Got it working in the end though :)
In between doing all that I did manage to move on a little bit with freeing MR3. I realised that I needed to make a change to the template movie, otherwise you wouldn't have been able to make shockwave movies from it. Oops! I also realised that I needed to added the GPL to each of the external casts, since they could be seperated from the rest of the movie.
However, one of the casts - "master_objects" contains nothing but objects that need to be started at the beginning of the game. So I had to disguise the licence as one of them with fake functions and the licence itself contained in rems ("--"). hehe.
tmb_template
25th Oct 2006The MR3 engine is two seperate components. Each component is in the form of a Director Movie.
The first component is the core casts. This is four casts which contain nothing but Lingo code.
The second is the game movie. This contains all the specific data, graphics and sounds for the game. Each game movie links to the same core casts. As I program new features into the engine, the feature become available to all games. Whether the feature is active is determined by a global setting. In most cases the default will be to switch it off to ensure backwards compatibility with previous games.
Each new game movie starts off life as a duplicate of the tmb_template movie. This is essentially a game with almost no data. Today, I was cleaning this movie up and making it work with the most recent code base. I also added the GPL licence to it.
I also wrote to Jennifer at longhairlovers.com to see if she would mind if I opened up Rapunzel as well as MR3. She said "No problem!". So Rapunzel will be opened as well. At the moment it doesn't run on the latest version of the engine so one of the first things I will want to do after release is fix that.
This is good news because by comparing how MR3 is set up to how Rapunzel is, you will quickly see what settings do what without looking at too much code.
GPL
24th Oct 2006I was mainly resting my hand today and reading up about the GPL. I thought that would be prudent since I am shaping up to release my game engine under it.
I was also thinking about trying to seperate out some of the components of the game from the director file so that people without Director MX or later would still be able to edit it.
But I don't think I will do that. I'll release it first as it is now, and then make modifications later.
I also backed up a lot of stuff (MR3 included) to CDs. I will send these to myself by recorded delivery and then store the unopened envelopes when they arrive. This can then be used as proof of copyright ownership in a court. (If you ever author something that you might later want to prove ownership of you can do this little trick.) Obviously I will need to wait for the package to arrive back here before I release the software on the web.
Warning Linux stuff coming up! Stop reading now if you hate Linux
Cool Linux trick: After I'd copied all the stuff to a cd I wanted to print out a list of the file names. I remember wanting to do this under Windows too but in the end I had to write them out by hand.
However, under Linux you can do the following:
- create a file called "list.txt" in the directory you want to list
- open a terminal
- type cd [name of directory] (just type the first bit of the directory name, then press TAB to complete the rest)
- type ls >> list.txt
That will put the list of files into the text file! How cool is that?
It works like this - "ls" is the linux command to list the contents of a directory. Usually when you type it, it puts it's output on the screen, but by putting ">>" that tells it to put it's output in the text file instead. I think you can do this with any command in Linux, and you can tell some commands to pass their output to other commands!
Also ">>" means "append to the end of the file" if you just put ">" it would replace the contents of the files with the output.
Going live with the website
23rd Oct 2006The website I was working on went live today, so I was working on that rather than MR3.
Although it's now live, it hasn't launched just yet as all of the data hasn't yet been put in. I'll put up a link when it launches.
Intro Sequence #5
19th Oct 2006I took yesterday off due to RSI. It's always there but some days it worse than others. I should really take a long uninterrupted break from the computer. But that's kind of hard to do.
After a day's rest my hand felt better, but I was unsure whether to do any work today or not. In the end I did and I finished off the intro sequence.
Showed it to James and he laughed, so that's good.
Intro Sequence #4
17th Oct 2006Nearly finished with the intro sequence now. I added some more new commands to the cut scene player today.
#atPlayer - this makes an actor appear at the location of another actor
#fadeDown - makes an actor slowly dissappear
#playSound - plays a sound
Intro Sequence #3
16th Oct 2006Added a couple of new commands to the cut scene player today as was required by the intro script.
I did one called #walkToPlayer which makes the actor walk to the location of the other actor. (In the cut scene player, actors are referred to by their old fashioned name 'players'. This is to avoid getting mixed up the director metaphor 'actor' which is used to describe sprites on the 'stage'.)
The other was #putAwayProp. This allows the actor to to put away the prop they are holding. It just sort of shrinks away in an opposite action to when they produceProp.
Intro Sequence #2
12th Oct 2006Continued working on the intro sequence today. I am pushing the cut scene player further than I have done before so it's probably not surprising that I am coming across bugs.
Actually, one wasn't really a bug I had just typed a space on an otherwise blank line. The cutscene player was then not ignoring the line (since it wasn't blank) and getting confused. It still took me over an hour to track that down though. Doh.
Still, I am quite pleased with the way the new intro is coming along. It's quite long, but I figure most people will only watch it once (if that) and you can always skip it if you want.
Intro Sequence
11th Oct 2006Didn't get a lot of time on MR3 today - did manage to get some animation and scripting for the intro sequence done though.