TINS log - Eric Love - dates are Fri 3rd to Mon 6th March 06

10:32am Thu
Tomorrow night the 72 hours of TINS starts, and by Monday night I hope to have another game to add to the eight on my website, the last seven of which were made mostly in competitions like this one.

The PC I'm using is now in its 7th year and has been through all the hacks with me, supplemented by the newer one the last three times. Most of my programming in the last few months has been on the newer one, because they have needed the internet connection, or the better speed (?GHz v 333MHz). The monitor has been dodgy for two years while the CD drive and clock have been broken for half a year. The clock doesn't count when the machine's off, so every time I turn it on, I have to reset the clock.

I haven't teamed up with an artist this time, so there won't be so much in the graphics department. Last time I had a talented young artist, but the demands of game graphics and time restrictions were too hard for him.

11:01am Thu
Five of my seven hacks have been 2-D tile-based action games, with three of them (including the two recent ones) being similar platform games. They're the games I like, but this time I'll probably try something different. Having said that, I'll be using the working dir of Julian vs The World (my last game) as a starting point. As usual, the rules will be my inspiration.

I don't have a job at the moment, and I don't have much else happening over the weekend, so I can count on a lot of hours to make something good.

1:31pm Fri
I installed a recent version of AngelScript, which I might use. It's a scripting library which uses C++ syntax. I've used it in Puzzle Stars (puzzles were saved as the code used to reproduce them) and in my recent map drawing program. It handles strings these days.

It turns out I have more things happening over the weekend than I thought, but there should still be 20 available hours, with most of the action happening on Saturday. There's a lot list of entrants as usual so there will be lots of games to play afterwards.

9:22pm Fri
Even the floppy drive on this machine is dodgy! Hopefully that won't cause me a headache at the last minute. This week I watched Finding Nemo, with its extensive "making of" section, which has got me more excited about what I might do.

9:56pm Fri
Arg! I forgot that I am still in daylight savings, which puts South Australia 10 hours ahead of GMT. For a few minutes I was thinking "Hey, Martijn's got the start time wrong again!" then I realised it was me! So in half an hour the clock starts, and the deadline is 10:30pm on Monday. Tonight will be mostly planning, and I want to get a really good simple idea. The plan last hack turned out too big to do and there were no ways to trim it down.

10:24pm Fri
What would be really cool instead of a text log like this is to have a camera poniting at me, continuous screen capture and a microphone all sync'd, then I could speak to the camera and afterwards edit it into a documentary.

10:38pm Fri
I've got the rules. Time. Well time travel would be cool but it's hard to do well. Railways/Trains. My big software project at uni involved a train set, and I wrote a musical about it. Provide a help function. That could be straightforward once I have the ideas. Ascii art. That's a cool idea. If I use a tile engine, I'll have ascii equivalents for each tile, and play starts with a whole lot of text scrolling up, then fading into the actual picture. I won't use the Act of Dog.

I like suburban geography, and I'd like to use Adelaide's railway system as a basis for the game. I can probably name nearly every station already. I can't think of a good story, or style of play, or objective. Looks like it'll be top down.

One idea I had involved scheduling trains and watching how well your schedule works, as lots of people appear on the platforms waiting for trains to turn up. That would be a bit hard for some people to get into though.	A quest to catch a train on time? A time-travel adventure which involves going back to the days when the rail system was different? I certainly wish I could travel back in time now to better prepare for this :).

Another possible idea is that of a suburban courier. In the future, petrol will be so expensive that using public transport will be a much better way to get around. Thus a courier needs to get from place to place, largely using the rail system. Doing things in the minimum amount of time is natural, but is there a way I can weave Time in more deeply?

If I go with a time travel story, a train makes a good vehicle - it has to travel 141km/h to change time. Alternatively, time travel may only take place at designated "space-time buffers" which people have prepared beforehand. In the past, the Belair line went to the hills, in the recent past, it had 3 stations removed, in the future the Tonsley line couldbe extended to Flinders Uni.

12:16am Sat
As I think about the theme of Time, I think first of the Back to the Future trilogy, which stands among my favourite movies. Having similar mechanics to that could allow a time machine which drives along railway lines. I can't think of a good game that goes with that though. Then there's the one I saw on the Simpsons recently, where Bart had the power to stop time, and he could go around and make mischief as he pleased, eg removing people's clothes. Perhaps such a device has fallen into the wrong hands, and the player must contend with a villain who has the great advantage of such a device.

The Day of the Tentacle was a great time-travel game. As well as the usual adventure game dynamics, there were three player characters in three centuries. A character in the past could often set something up for someone in the future. Those kinds of things are better done by an engine like Adventure Game Studio than something I have to write this weekend.

12:55am Sat
I'm so stuck for ideas here! I'm more excited about what other games are going to be made than mine. But then the Time rule lends itself to story more than mechanics, and 3 days is not enough for a game with much story.

Perhaps the player is an ordinary train driver who occasionally gets called up when there is a "temporal emergency" or when someone just wants historical information. Again, where's the gameplay? Cool story ideas do not always translate into gameplay for an action game.

1:46am Sat
So much thinking time for no decent idea. Unless something better occurs to me overnight, I'll go with the courier. We Deliver. On Time. Any Time.

Trouble is, experience shows that in these comps I don't always deliver on time.

9:51am Sat
No good ideas during the night, although I did have a dream in which a fight broke out on a bus. This time I won't use a tile engine. Roads and rails will be done with nodes & edges, which means it's time to bring in code from my graph drawing program I use for family trees.

11:17am Sat
My plan is to have a network of roads and rails on which the player will travel. It was tempting to try to base the geography on Adelaide, but the coastline will be too difficult to draw. I'll go for a random looking map which need only be as extensive as I have time to draw.

I'm finding it hard to persevere this morning. I'm quite tired from last night. I wonder how all the other hackers are going. I'm recompiling the Allegro debug lib, and the hard disk just ran out of space. This PC had 4GB (which seemed like plenty in 1999) but after partitioning there's only 2.4GB. Another reason why I don't use this one much any more.

12:47pm Sat
OK, I've made the basics of the engine. Edges (roads) can go in any direction, and from each node, the road taken is the one which best approximates which key is pressed.

1:44pm Sat
Now I can load and save the graph of roads. I don't know what to do next. I could bring in the menu screen, or make an objective, or make an editor so I can have a decent area to play in.

2:28pm Sat
There are five things I must do today, which should each take an hour: Bring in a menu, make the editor, make an objective, start the help system and make different kinds of tracks.

5:23pm Sat
Incorporating a simple menu was easy, but the editor is proving difficult as always. I'm pulling pieces from Julian's editor, but without the tile engine things are a lot simpler.

6:17pm Sat
Every veteran programmer knows the feeling of having written heaps of code since the last run, and knowing once it compiles that there is a high probability of there being a bug which will be very hard to find. In this case my changes have succeeded, and I have a simple editor with which I can quickly expend the network of roads. Unfortunately I've only done two of the five todos for today, time for the other three.

6:34pm Sat
I've now made a basic objective: Go to the target. Now to make the roads look more like roads.

7:51pm Sat
Inspired by the Fisherades scene of Finding Nemo, I'm trying to make a help system where the letters fly everywhere. It will take some time.

9:34pm Sat
No flying letters yet. The main file was getting a bit big so I broke it in half, by the end there might be a few more.

10:20pm Sat
How many hours have I wasted in SpeedHacks due to getting nested loops wrong!

10:50pm Sat
Success! When changing between two text screens, all the letters move from one place to another. I've used one day out of three, but today was when most of my available time was, and I haven't used it well. There's nothing that feels like a game yet, and the ascii drawing is a long way off. Tonight I need to bring in a larger font and imagine the game in more detail. Also, time to carry it onto the other PC and see that it compiles.

11:08pm Sat
Compiling with MinGW is OK but in the text shuffle, all the offstage letters go of the bottom, as though different trig functions were being called, or a dodgy random function.

11:44pm Sat
Larger fonts are making everything look better, but getting the sizes right will take a bit of work.

12:20am Sun
It turns out rand() on MinGW returns only 15 bits! I've shifted it up so the letters still scatter everywhere.

12:55am Sun
Now I've managed to make some of the roads look like train tracks. 2D trigonometry is easy. Time to go to bed. I haven't even thought about music this time. Is it going to be recycled music and the Puzzle Stars SFX for the 7th time?

4:23pm Sun
I've just learnt lots of ways to manage my datafiles which I really should have learnt on Thursday! One day left and the help system is going to be nice. If only there was a game to go with it.

11:46pm Sun
This game hasn't inspired me like the last few have. This isn't going to be a masterpiece, but I'm still determined to send in something that looks & feels like a game, and I'm a long way off it. What are the things that need to be done?
Trains which can be boarded.
Cars - enemies
Make a city (it's still tempting to make part of Adelaide, but the rail system is too tree-like - Sydney's is better)
Make it into a tidy game (time limits)
Draw roads & rails as ascii
Music?? SFX?
Finish game text & readme
Fix any bugs
Upload with more than 5 minutes to spare hopefully!

There could be 9 hours of coding there, and that's with no catastrophes. I wonder how many others have attempted time-travel games which are too ambitious. I wonder how trains have been brought into all the entries. I'm sure there is some excellent ascii art out there. But I need to come out with a big effort on this final day.

1:03am Mon
The big disappointment is that I haven't drawn anything. There are no .bmp files in the directory, all the graphics is done by 2D primitives and text. 21h to go, and I'll spend the next several asleep.

6:50am Mon
I'm up for long day. First business is to get the trains moving at random.

7:36am Mon
The motion of the trains is fixed for now, and I'm trying to fix a bug in the help system. After that it will be time to allow boarding o trains.

8:25am Mon
I'm using ttf2pcx to get Courier New font. The chars are mostly the same width, but the space is double width. I have to do something about that!

9:05am Mon
At great length I used some internal Allegro code to halve the width of spaces. Why do I always have to learn so much when I have a time limit!
I wish I had a counter which measures how much of my time is spent compiling! 

9:56am Mon
I'm making very slow progress, and I'll be going out shortly. Most of the ToDos from yesterday are still to do. Next things is to allow one vehicle to ride another.

11:49am Mon
It's now possible to ride the trains. A bit more work and you'll be able to choose your train route as you ride it. I just crashed the PC for no apparent reason.

12:45pm Mon
I'm now making an arrow that points towards the destination.

1:20pm Mon
I've started the hardest part - the ascii drawing of the roads. There won't be time to do it properly, but if I can choose the right /-\| 90% of the time it will look OK.

3:12pm Mon
I've got some shoddy ascii-art generated by the roads. I've returned to my old love of cross-fades. Sorry to anyone whose computer doesn't do 8-bit; if your computer is that advanced, it ought to be able to handle 8-bit in software.

3:18pm Mon
Cross-fades are working nicely, except that they have a habit of messing with the timer. Hopefully that's only using DJGPP.
With seven hours left, all the todos from before remain, though some are partly done.

4:34pm Mon
Whay can I never overcome the urge to make my code simple and elegant? 6h left and my program doesn't feel like a game yet.

5:20pm Mon
I've finally started making a city of a worthy size. Everything goes well until I find these oddly drawn tracks. Looks like I should have tested the delete functions a bit better.

5:46pm Mon
My editor hasn't been as helpful as I hoped. I overran the allowable number of nodes or edges, which made a mess of things. When I had to start again, I thought it was worth drawing up some of Adelaide, since I know it so well. Unfortunately, the monitor was horizontally contracted like it usually is, and when it blew out to normal size, I realised how disproportionate everything is. So what should my city look like?

5:52pm Mon
The final phase is too busy top put many updates, so it'll only be in brief from here until the end (then of course comes my lengthy post-mortem). I'll do the last phase on the other PC, without all this monitor trouble.

9:01pm Mon
In the last few hours things have come together well. It feels like a game. I still need to make a decent city. The balance should be OK. Looks like we missed out on music & sound. Actually, I'll throw in the Keep on Coding overture and finale, because KoC is "a story of computer nerds, cryptologists and trains".

9:13pm Mon
OK, music's in. Still need a city. Ascii art isn't corrected like I hoped.

9:27pm Mon
I wanted to put in a feature such that when your train came to a fork, you could press an arrow to indicate "if the train isn't going where I want it to, I'll get off now". But that's a bit too hard. When the good PC becomes available I'll move it there to build my city, check for cross-platform-ness, and uploading.

9:48pm Mon
Now I'm trying to make a map. It's often a rather sick feeling to see a bug at work. When suddenly there's lines all over the screen, it just looks horrible.

10:24pm Mon
Last minute balancing done.

Time to deliver.

