Almost done

Roam Unbent, Heartfelt Nightsong

A text based graphical adventure game.

The game is fully playable; if you get stuck, it's possible you're not trying hard enough. If in doubt, file a bug report on

This game requires Python 2.5 and Pygame 1.7.


Mysterius Ambient Award
Presented by claxo

No Tea
Presented by alia

Eaten By a Grue!
Presented by saluk

I'm a mammoth - biggest pakcage size
Presented by riq

Give this entry an award


Ratings (show detail)

Overall: 3.1
Fun: 2.9
Production: 3.9
Innovation: 2.7

Respondents: 27


File Uploader Date
Final submission
j-1 2008/09/14 13:48
Almost done
j-1 2008/09/13 15:14
J-1 giving the string what it deserves: Love.
j-1 2008/09/11 23:02
After. I vote for after.
j-1 2008/09/08 23:33
j-1 2008/09/08 23:33
Oh, noes! Bajs and impressionism! Where will this end?
j-1 2008/09/07 18:56

Diary Entries

We're back and sexy

Hello again! Since I've had no contact with the other team members for a while, I took the liberty of once again registering our entry. Hopefully, all of us will be able to spend a week coding (September is on the start of the semester, so the schoolwork will not be critical. Probably.)
I will register a google code project soon.

Oh, and yeah: We were thinking of designing a game library prior to the competition this time, to get rid of the icky details (tile engine. Uuuh...!). We haven't started yet, though.


I found the end of a string in my living room

I wonder where the other end is.

Maybe I should go see for myself?

Add a comment

Where does this thing end?

I've been following the string for two days now. In the distance, I can see a city. I'm a little anxious, because I've never been this far from home. I hope someone there can give me an answer to all of this.


Chasing a string, finding a font

Today we went out to take the pictures for the game.

Additionally, we tried to find a good font for our game. From experience, we know that using SysFonts, the results is varying enormously depending on the system. We had our eyes on this one, but since it lacks both numbers and the letters å, ä, ö, we would have to redesign the interface and would still not be able to display our own names. Where do you guys get your fonts from? Can you recommend a good one?


Lots of dataaaaa...!

Two days of actual coding, six days of scripting. Why didn't we use the first three scripting days better?!

Oh, and I hope you don't mind the game being ~40MB in size... I think I can promise you will appreciate it.


Okay, just a couple of areas left

We have the beginning, we have the ending (kind of), we just have to connect the two. We decided to cut down on a lot of the content, but if there is enough of an interest, there might be post-Pyweek releases and patches.

I guess tomorrow will be for removing unused images, which is a great factor in the absurdly large size of the game (we're up on 100 MB now!).

Here's a screenshot showing the final appearance:

1 comment

Done, I hope we're not eating too much space

Okay, the game is done and has been submitted (here). The zipped size is roughly 40 MB.

We've also made a Windows binary (thanks to PyMike for his wonderful PySetup script). This wasn't all together easy, because the current Skellington uses a variable called data.data_py to keep track of the gamelib directory. However, Py2Exe includes this in a binary file, where, of course, the path to gamelib is not the same. I made the script work by replacing this:
data_py = os.path.abspath(os.path.dirname(__file__))
data_dir = os.path.normpath(os.path.join(data_py, '..', 'data'))
with this:
data_dir = 'data'
Before I realized this was the error, I also tried a script from Skellington 1.1 and my modified version of HanClinto's script. Both will probably work with the above changes and some minor hacking, though I haven't tested it.

We have not uploaded the Windows binary here, because we don't want to waste more of Richard's server space than necessary, and Google Code will not let us upload files over 20 MB. We'll see if we find some good place to host it...

Add a comment

Rkey's unnecessary post

Just wanted to say a few things, first of all:
- When I made the music, I made it entirely with instruments based on strings to make the sounds, such as guitars or strings.
- I look like a retard in my picture because there's an ice lolly in my mouth ;D
- Don't underestimate the commands in this game, there's a lot of "hidden jokes" as I'd like to call it. I love J-1's and Jakob's sense of humour ^_^


Heartfelt Nightsong Windows Binary

The binary has been complete since this Sunday, but we finally found a way to host it somewhere without bad conscience:

Add a comment


Here's a walkthrough for the game:

t box, t food, n, se, ne, ne, u, t gas, nw, sw, nw, n, give gateopener, n, n, nw, t ladder, nw, nw, t branch, n, w, t leg, n, n, t pipe, s, e, t light, w, s, s, se, se, se, n, e, e, e, s, enter, talk, exit, n, w, use pipe with ladder, use branch with ladder, use leg with ladder, use baguette with ladder (yeah, sorry. We thought it was funny :)), use ladder, u, d, n, n, use light, d, n, n, n, e, t compass, w, w, n

Now, the forest is a bit strange. Without the compass, all paths leads to the first screen. With it, you can make your way through to the ravine, but the paths are still not logical. This is intentional.

ne, sw, w, t scissors, read tablets, talk, cut string (for ending 1), climb down (for ending 2)

We'll respond to some of your comments tomorrow.

Add a comment

Some comments

This has been a really fun Pyweek! Thanks to Richard and congratulations to the winners!

From what I see, most comments had to do with the following:
  • The forest is too hard Too bad... We wanted the game to be longer, and successively harder, but we had to cut some parts from the middle, due to lack of time. I suppose the contrast between the easy puzzles from the beginning and the final puzzle put some people off. Sorry!
  • Hey, in the forest if you go west and go east you not return to the starting point !!! Thats off the rules !!! Hehe! We stole it from Dunnet. It their fault! ;)
  • How are you supposed to use the gateopener? "Give gateopener" or "drop gateopener". We didn't realize that "use gateopener" would be logical. Sorry, again.
  • The fun was spoiled for the dumb input interpreter. Need to accept more variations It does actually accept variations. We are not too experienced with this kind of games, and the standard commands that they accept. The parser is pretty flexible if you have time to implement more aliases. We'll try to think it through better in the future, though.
  • I looked in the code for hints Woo! You managed to find your way through that mess? Kudos to you!
  • A baguette? What the hell? (a.k.a. fixing the ladder) But there was a bakery! Sorry :)
We will try to make an extended and rewritten version of the game (it has to be done from scratch; the code is a hack), and will take your ideas and feature suggestions into consideration. I doubt anyone of us will have time to do it in the near future, though... Maybe next summer.

Thank you all and see you in six months!


Sad <del>panda</del> pyggy

Well, we kind of promised an improved version of Heartfelt Nightsong. At first we thought that our one week's vacation this October would be perfect for some hacking. Not so. Then we, well, mostly just me, thought that Christmas would be better. Doubly not so. We need the time for the game me and jakbob are making as an examination project for school. It's gonna be in Python (yay!) so we might keep you updated for it once it starts to become playable. Anywho, for the same reason, there probably won't be a Heartfelt Nightsong 2 for the Pyggy awards either. If any of you were hoping to see it finished in the near future, I'm sorry to disappoint you.

Maybe there will be a release this spring...

Add a comment