welcome guest
login or register

The first live-blogging experiment

EDIT3: Monday, about 10pm. Tarupaja 0.2 is ready. I'm developing on linux, and just briefly tested on Win7 after re-booting and compiling on windows. So, I hope the windows version works, too. I noticed there still are some minor problems with the editor - all the data diplayed isn't always refreshed just the way it should (sometimes clicking on a info-box helps). Anyhow, the editor is now re-activated, and story metadata is displayed on the main screen. Since the editor doesn't yet have any manual at all, you can try to figure things out by editing the example story. Story data is stored in .db3 files, now in a separate folder. So consider making a back-up copy of example.db3 before editing it too much =) Downloads for windows and linux.

EDIT2: OK, it is Sunday, about 10pm. I spent couple of hours polishing the story reader. I made some last-minute changes to the underlying data structures, but these changes aren't yet reflected in the story editor mode. So, I just disabled the editor for the first demo release. I posted the download links at UrW forums. I aim to get the story editor fixed and re-activated in the coming days. Yes, the example story is rather simple and short, so I wish it makes everybody feel that they can and want to write something better =)

EDIT: Good morning, again! It is Sunday, I woke up at 9 am. Seems like we are going to have another warm sunny day, which is not typical in Finland at this time of the year. I think today I'm going to spend most of the day renovating my house now when the weather is perfect for that kind of work. I'll get back to coding at evening twilight - so let's see if we have a playable release before midnight =)

OK, it's 2:50 am in Finland, I'm too tired to count how many working hours does that mean =) And the story reader works now. It still has a couple of minor issues, and it is not very beautiful , and there are some unnecessary debugging info displayed, which of course should be polished away for a working release. But I'm too tired to do it now =) I guess I have earned a can of beer, so I go to the cellar... Hey, if there is somebody still watching, and eager to see the clumsy results of this "code in one go"-session, just give a shout and I'll compile this both for Linux and Windows and upload to the internet. But be quick, otherwise I'll just hit the bed and continue later on =)

Well, now I can deliver items to NPCs, and the reader correctly recognizes if there are any special rules attached to item X being delivered to NPC Y. The rules are given as a string delimited by semicolons. I mean, in my example story there is one item which, when delivered to the right NPC, triggers 3 different items. So it makes a string with three tokens. I need to parse the rule string, and then carry out all the effects dictated by the rule. So it is almost like a tiny scripting language - even with this kind of an extremely simple project which understands only "fetch item"-type quests. Let's see if I can do it before becomig too tired =)

It's now 16 hours of coding, and I begin to notice my cognitive skills getting sloppy - for example, I realized I'm mixing object oriented and procedural design, which makes rather messy code. Well, I can tidy it up later on. But, generally speaking, it is usually better to aim at writing clean code all the time. Well well well - delivering items, yes, it is partly done so I'll just keep on coding. There's only that little left, so it would feel pointless to go to bed now when everything is almost finished. Almost =)

Project time 15 hours 30 minutes. I talked to Matti the NPC, and when he asked me to help him, I answered that I have other things to do. 'QUEST REJECTED' said the game, so now it reacts to this kind of triggers. Next I need to code the same functionality to delivering items. After that I should have a barely playable example story. Barely (or *Mostly', as Newt would say).

Project time 15 hours, which means half past midnight. Now the reader reacts to a reply I choose, so I can follow a dialogue tree with a NPC. But it still lacks other functionality, like triggering a quest accepted or rejected depending on the reply I choose. Also, I noticed a minor problem with some of the NPC lines I wrote for the example story. Well, maybe I can correct them in another session =) I'll go give the horses a bale of hay, and fetch myself a can of beer. And keep on coding =)

15 minutes past midnight. I can initiate a discussion with NPCs, the reader shows what the NPC says, and it gives me different replies to choose from. But it doesn't yet react of clicking a reply.

10 minutes to midnight. I can walk around and pick up items. Next I need to code talking to NPCs and delivering items. So it is obvious that a playable story reader won't be out before midnight. But no problem, as said I prefer persistence over speed =)

45 minutes to midnight, does that mean nearly 14 hours into the project? I start to notice some effects of being tired. In the beginning I wrote clean code, now I'm leaning towards some quick and dirty tricks =) I tested walking around to different places in the reader, and I already noticed some obvious needs for future improvements. Alas, those improvements would require adding some elements to the underlying data structures - and that will be left for later. Now I just keep on coding to get a minimally playable version out during this session - be it before or after midnight =)

One hour to midnight, the indoor temperature is +17 celcius, I'm half wrapped in woollen blankets. And I keep on coding =)

One hour and 45 minutes to midnight. The example story is written, I hope so =) So, now I'm ready to start coding a story reader...

Project time 12 hours, yes it is half past nine pm. Earlier I said that I had written first lines of dialogue. Well, that was for the story NPC Matti. Dialogue lines for the player character have a different data structure, and now I also have an editor for them. First dialogue lines for the player are written. Hey, if everything works it means I have more or less the STAGE 2 completed - I have a minimal editor, but it should be enough for writing the example story. Back to writing, and we shall see if there are bugs or not =)

Hmm, occasional moments of losing concentration. Time to do something about it, so I went outdoors, and opened an another door, and found an energy potion!

3 hours 45 minutes to midnight. When Sami decided switch UrW from shareware to voluntary donations, some people were regularly suggesting things like indiegogo campaign, or some extra development goals where people could ear-mark their donations to boost the development. Okay, so here we are with a test. Remember, this is just a test, so no pressure or anything =) But anybody for a small coding / donate challenge? If I get a playable story released (linux and windows) before midnight, would you donate $3? (using the big friendly yellow donate button at the UrW homepage)

Am I losing track of time? It is now 8 pm and I started at 9:30 am, which means that the project has been on for 10 hours 30 minutes. I just successfully saved the first line of dialogue. My planning papers have 7 loosely hand-written A4s of dialogue for the example story.

Project time 9 hours, and I'm back to the coding chamber. So far things have been pretty much like I thought they'll be. The first 8 hours have been slow but steady progress, rather uneventful simple basic work with procedures handling and storing data. I'm getting deeper into that semi-autistic state of mind, I lose the sense of time and just keep on crunching the code. So, my original goal was to get a first playable version released before midnight. That's bit more that five hours until that, and I feel that I can do it. So, back to coding, it is =)

Project time 8:30, it is 6 pm in Finland, time to go back indoors. Next I'll get to coding the dialogue editor. That's the most interesting part, and the trickiest one. I guess I need half an hour of break to feed the horses and to do some pen-and-paper planning before continuing with the coding.

Project time 7:50. Now I have been working about the ordinary office hours, and I feel that I'm only getting started, so let's keep on rocking and coding! I now have places and characters of the example story ready, so maybe I'll spoil a little: There is a small hut, and in the hut there is a character called Matti, who is seriously ill. This is a reference to a classic Finnish punk-rock anthem Matti by CMX.

Project time 7:30, Item editor works. A lone raven flew over my yard, calling clang and croak sounds. The sun is slowly getting nearer to the treetops, so it is the last half an hour of outdoor coding.

Project time 7:00, yesterday when I returned from work, I found a bottle of home-made berry juice on the stairs of my house. There was a message from my neighbours, they had left the bottle for me. Now I'm drinking the juice while coding outdoors on a warm sunny day. Not bad. Next task in the list: editor for items and characters.

Project time 6:30, huh - editing places seems to finally work. To test this, I'll type in all the places for the example story.

Project time 5:45, the lunch break included coffee and ice-cream as a dessert. I relocated the garden table to a more sunny spot. So, back to work now!

Project time 5:00, I have a lunch break. I've got flat rye bread with butter, cheese and chunks of robber's steak.. In June I froze most of the meat we pitroasted with Sami. And for this live-blogging session I defroze some meat.

Project time 4:30, when working with the story editor, I keep on noticing that I've forgot some details in the data structures. For example, I have names and descriptions for all the places, but no routes / connections between places. Uh oh, it would make a boring story if you couldn't travel between the places... I guess I need to eat something.

Project time 3:30, which is 1pm local time. Stage 1 completed, the data structures are all set. Next I continue with an editor so that I can fill in some content into the existing structures =)

Project time 3:00, it's midday and I left the coding chamber for some outdoor coding under the oak on my yard. Otherwise, it is slow but steady progress with the data structures & editor.

Project time 2:00, OK, I have a database table for the story metadata, and an editor to write/read the metadata. Next I need database tables for the actual story elements like places, characters and items. But they should be easier to do, as I can mostly just copy&paste&edit the code I already have.

Project time 1:30, real time 11 am, a short break for a breakfast.

Project time 1:15, Still working with the database structures. This initial phase isn't that exciting =)

Project time 0:20, second mug of coffee. I have a main form with a button. Pressing the button opens a story editor window (which is empty, at the moment). I start to work with database handling.

Project time 0:00, which is 9:30 am in Finland. I open a blank coding project and the session begins.

Preparations at 8:40 am, cooking morning coffee. I need to feed the horses before starting to code.

Good morning, world!

3 am, I'm getting sleepy but the cat is active =)
3 am, I'm getting sleepy but the cat is active =)
631 users have voted.


I thought that you will be streaming or something like that :/

Hehe, I'd bet that would be boring to watch, me just typing in silence for 30 minutes in a row =D

Lol, maybe you are right :D But programming streams are quite popular.

Oh, I didn't know that. Anyhow, I have zero experience with live-streaming anything, so just updating a blog is far more easier for me. This way I can just pick the high-lights, offering a compact overview of the session.

Erkka, are you using Inform7 to write your new game by any chance? Also to the live stream discussion, yes, using Twitch or similar to stream game development is quite popular.

Okay, maybe someday I have to take a look what streamed game development looks like =)

The tools I am using for development were discussed in the comment section of the previous blog entry: http://www.enormouselk.com/?q=erkkasblog/making-tarupaja

You can watch a bit of this(to have idea on how it looks)

Hehe, I can't do that while watching my own coding as I go =) Maybe some other day.

Sorry, I forgot. Haha :D
Do you listen to some music while coding?

It depends. In the beginning of this session when it was more like a routine work, I was listening to an old Shakira CD =) Hips don't lie!

My hunting is rained-out. Not that I mind getting a little wet, but the animals are so much harder to find... Maybe I can hunt tomorrow instead, even though it's technically against the law to hunt on Sundays here for whatever reason...

Looks like things are moving right along with your code! :D I hope Matti will be ok! Hehe. I will work on some of my own code and check back in here after a few beers. :3

Good luck! :D

Oh, OK! Here it has been an all sunny day. Hehe, yeah, I give thumbs up for illegal hunting on Sunday !

And thanks for your wishes. So far it has all been a routine work, but from now on things start to get challenging =)

EDIT: PS. If Matti gets well or not, it depends on the decisions of the player while interacting with the story =)

Can you eat Matti? (=D)

Erkka, that is not healthy :D You should sleep. There is still the next day =)

Hehe, but coding is fun. And also, to get a project done, one needs to work for it.

Typically, I can imagine how after couple of this kind of days Sami posts a dev.news entry on the forums, with some pictures and few lines about new features. So, this live-blogging session is a way to see behind the scenes, to get a better image of how much and what kind of work goes into the project =)

Oh wow, I didn't know what. What a dedicated developer(s)! Just awesome.

I really enjoyed this. Thank you for the sneak-peak in an intense day of coding. :)
I'm starting my first developer job next week, so this is sort of a primer or something to what I'd be doing for a few months. :)

Really nice job at coding. This was really fun to read and follow along. :) Definitely going to send some squirrel hides!

Hee, nice! And thanks for everybody who were following and commenting here and in twitter.

Yay! Matti survived! :D

Cool program. I am looking forward to seeing the editor and the web-based player. :D

A tiny small inconsequential bug though (that probably only appears on my weird computer lol): On my multi-monitor setup, the initial window pops up outside of my monitor with the top half cut off, so no access to the title bar to drag it back down. I was able to press the button to play the example game, and move the larger game window (it was large enough that the corner of the title bad could be see on my upper monitor), but I had to kill the little window from the taskbar when I was done.

Are you on Windows or Linux?

Depends on what I happen to be doing. I'd like to be on Linux all the time, but sadly some of the software I need to use for work will only run properly in Windows. :/

In this case, I was on Windows.

Hehe, It's pretty much same with me =)

Well, there are different options to set the initial window position of an application. For the first version of Tarupaja, on Linux I chose an absolute position defined by screen coordinates, and for Windows I chose "Desktop Center", to make it dynamically appear on the center no matter what size of monitor the user has... So, I'd guess that on a dual-monitor setup it thinks that "the center of the desktop" is exactly in-between the two monitors =) For Tarupaja 0.2 I switched the also the Windows application to absolute screen coordinates, I hope it works better now.

Cool. I will give it a try over Teamviewer here in a little while once I've gotten my morning stuff done (I am at work now, D: ), and let you know. :D

Looks like that fixed it! :D


Add new comment

Please reply with a single word.
Fill in the blank.