Diary Of A Madman #3

In those rare occasions I go out to the streets, people ask me about the status of Asylum. Shady characters in dirty coats most of the time, lurking in the shadows and speaking in whispers. They could be a product of my imagination (after all I can never see their faces, provided they have one) but I always respond them for the sake of politeness. I mean, imaginary people deserve respect too. But I’m going to assume that you’re real and want to know about the status of… What was I was talking about?

Right, Asylum. As you can imagine, it’s been a very busy period for us, and there’s so much to tell that I wouldn’t know where to begin. Perhaps the most important news is that the game has gone semipublic and people had a chance to actually play it. In other words, it exists. More specifically, we featured an early build in a local fair and visitors were able to walk without restrictions around a sizable portion of the first floor of the Hanwell Institute. The reactions were very positive and, even though the mood is kind of lost when you’re in a big room with dozens of people and loud noise, they were all clearly impressed. The game was shown on two big HDTVs and graphics still looked sharp and detailed, so I’m not lying when I say that Asylum really, really is high-definition.

Here, I have a blurry and completely useless picture to prove it:

Asylum @ MICA

Anyway, back to the inner workings, last time I spoke about the video system that was finished, enabling us to populate Hanwell with dozens of lively videos. Since then we have completed the first floor, which is the biggest one and therefore a very important milestone for us. All the doors are now animated as well and, if you’re familiar with Scratches, you’ll know that represents a great deal of work. It’s almost fifty videos of doors opening in the first floor alone, along with beautiful animations of the ocean waving through some windows, faulty lights, moving trees, water in a fountain and inmates inside the cells of a truly sinister corridor. And we’re not even done yet. When put into perspective, the sheer amount of work makes me want to cry.

How do we manage with all this? Well, in the first place, loads of coffee and illegal drugs. It also helps, as I hinted before, that the scripting language of the engine is deceptively simple. I’ve already told you a bit about the process of creating nodes. Now, here’s a quick glimpse of the process to create what we call a “spot”. It’s not a “hotspot” because it may not be interactive:

door = Spot.new(WEST, {64, 424})

This means we create a spot object named “door” on the west face of the cubemap and we give it a set of coordinates, in this case just the origin. The vectors of coordinates can be of any length and shape, so it’s completely freeform (the engine itself makes sure it’s a closed region). And before you ask, we’re working on a tool to easily draw regions directly on the cubemap. But let’s stick to the basics for now. So, why do we give it a single pair of coordinates? Because of this:

door:attach(VIDEO, “vid_door_corridorb_hospital.ogv”)

We attach (and that really is the meaning of this action) a video file to the “door” object. The engine calculates the size of the video and resizes our previously created spot accordingly (with two coordinates, it was a single point). This saves us a bit of work as we only need to worry about placing the video properly. For now we support Theora for videos which is open source, lightweight and very fast. It has proven to be a powerful format (with a sucky API though). Overall, this is a very straightforward process to include videos in our nodes. But wait! Games need audio too… So:

door:attach(AUDIO, “sfx_door_large_open.ogg”)

Which I think speaks for itself. Suppose we want to make that spot interactive as well:

door:attach(CUSTOM, from_corridorb_to_hospital)

This links a custom action to this spot, effectively making it clickable. Now the only task left is to add this spot to one of our nodes. The entire chunk of code would look like this:

door = Spot.new(WEST, {64, 424})

door:attach(VIDEO, “vid_door_corridorb_hospital.ogv”)

door:attach(AUDIO, “sfx_door_large_open.ogg”)

door:attach(CUSTOM, from_corridorb_to_hospital)

corridorb1:addspot(door) — Our previously created node

Easy peasy. And the contents of that custom action (in reality a Lua function) could be as simple as this:

function from_corridorb_to_hospital()

door:play() — This plays both the video and audio attached



Do you like the approach? Are you excited? Are you still awake? We think this is an equally intuitive and powerful method, combining many aspects of coding into one single concept: the spot and stuff you can attach to it. We’ll go over a few more options in future episodes of this exciting diary.

What next? We’re preparing a big update to our website in which we will finally reveal the new name of the engine, along with the first gameplay video of Asylum and “official” batch of screenshots. I’m committed to keep a good pace of updates from now on… Yes, I can be that naive.


15 Responses to “Diary Of A Madman #3”

  1. Aaron Lopez says:

    I like the approach. I am excited. At the same time, for a person like me, any sort of programming jargon scares me far greater than an ancient African god’s curse. Perhaps I should pretend it’s just another “beautiful” language like French or Spanish.

    And good luck keeping a good pace in updates. I tell that to myself everyday too. I once had a 150 day gap between one post and the other -_-.

    Must be the way we creative people work =P

  2. Agustín says:

    Well, there’s been some research on “natural speech” programming languages (see Inform 7, for example) but for recurring tasks such as creating nodes and adding media, they would be extremely ineffective. Think too verbose for nothing. So, we’re left with a minimal and concise instruction set — it really is for the best :)

    And yikes, a 150-day gap. I think they would hang me if I pull that one!

  3. Nuxly says:

    Great news :)
    Do you think you’ll be able to release Asylum by the end of 2011 as announced in the trailer?

  4. Agustín says:

    That’s a very good question… Indeed, a most excellent one!

  5. gnome says:

    Besides my obvious excitement Asylum, I’m now so very interested in the engine. Seems actually usable, even by gnomes like me.

  6. Nick says:

    Man, if this game won´t fright me, I will hit the roof! :D Every day i am getting more excited… :)

  7. Sean C says:

    That is a very neat and concise language, object oriented programming at its finest. Defining the “door” variable to be a certain node makes it a lot easier to keep track of what variable is what object within the game. The way you are associating certain files to a certain node with “attach” is awesome as well, the less commands that one needs to remember and the more user friendly, the more efficient he or she can be. However, I am curious as to where is it that you define where the .ogg and .ogv files are pulled from. Also do you use prototype headers for the language to know to jump to activate that function?

  8. Agustín says:

    Glad you like the approach, Sean! Yes, I tried to stick to an OO paradigm as much as possible. I believe the “attach” command will be a killer feature for many because you can do LOTS of things with it, and you only have to learn one syntax. The technique has proven to be very powerful for now with no apparent caveats.

    You can actually set any folder you want to be searched for files. Plus, you will be able to collect all the assets into a single file when you’re ready to deploy — we call it the “catalog”.

    No prototypes are needed but you have to make sure that the functions you’re referenced have been declared first. It’s not as annoying as it sounds though, we already have generic “templates” to create rooms, objects, interactions, etc.

  9. Sean C says:

    Very nice, as every copy of the game will need the “catalog” to produce the video and sounds when need be I can see how this would be very convenient. Thank you for entertaining my curiosity. Its really awesome that you take the time out of the busy schedule you and your team keep to talk to your fans not only about the game but the development of it as well. Helps to increase the appreciation for games beyond the playability.

  10. Sean C says:

    “Shady characters in dirty coats….” sounds like Night Gaunts from the Senscape forums to me. :-)

  11. Areala says:

    You know, the more I think about it, the more fun I think it would be to see Senscape products “ported” to Inform 7. “The Lurking Horror” creeped me out the first time I played it…with writing good enough to convey the atmosphere, I see no reason why a text adventure couldn’t be just as fun. :)

    Says the girl who couldn’t make a computer say “Hello World!” without two hours of tech support and a bottle of aspirin…

  12. Agustín says:

    You might be interested to hear that I once had plans to do a short IF prequel of Scratches. Of course, that takes time, and time is exactly what I don’t have :P

  13. Sean C says:

    It would be a very interesting concept to play as James Blackwood, acting out the events that transpired with his family. Being a fan of the Resident Evil series, I love my backstory. :-)

  14. Banu says:

    Hi Frenchie,First of all let me just say, your daughter is a bufatieul young lady! She did a good job on the intro. I know this video is a couple of years old but great organizing tips never go out of style! I’m so glad I stumbled on it. Since becoming a demonstrator I never throw out scraps, no matter how small. It’s amazing how even those little 1″ square pieces get used up eventually. Peace, Love & Joy,Joycepeaceloveandjoyce.typepad.com

  15. Ali says:

    Tomokoさん ともちゃんーん 呼び捨て大歓迎ですから 笑 カラールームはわたしが一番好きなSBチャレンジサイトなので ご招待頂いて天にも昇るような気分です 気合をいれすぎないようがんばります いつも ともちゃん の素敵な作品を楽しみにして拝見しております Shinkoさん はまりにはまりすぎて RDAにご招待させて頂けるなんて わたしもとても嬉しいです 和紙は多分 多分ではない アシッドフリーではないと思いますが わたしはそんなの関係なくなんでも使っています 和紙は使いやすくて しわしわになりやすいという意味 で気に入っています それから TCRで選ばれていましたねー おめでとうございます ちょっと恥ずかしいけど あんなたくさんの中から選ばれると 凄く嬉しいでしょ これからも楽しんでいきましょうね yukannaさん ありがとうございます わたしの顔 すみません ほんとに 謝るわ 是非 是非カラールーム参加してみてください きっとはまってしまいますよ 笑 もしー どこかでつまづいたら サインインとか その他掲載の仕方とか また遠慮なく言ってくださいね カードも一緒に作れるし すごくいいサイトだとわたしは思います 自分のお気に入り いいサイト って KPママさん 菊のこんな顔はまあ日常茶飯事ですね そうですよー 4つのパレット見たときはほんと興奮して夜もなかなか寝付けなかった っていう どの写真を使ってどんな感じにしよか とか スケッチ通りにしないといけないかな とか 座敷わらしのごとく 毎日部屋で座っております メンバーのみなさんのやりとりに聞き耳を立てながら 笑 がんばりますー あこさん ありがとうございます DT 確か SIJさんで以前応募していましたね もちろんわたしは応募など恐れ多くてしておりませんが でもまた機会があれば挑戦したいと思います 何事も当たって砕けろ精神で チカの持っているものは 2つとも虫だと思われます しかも もう既に行き絶えれているかもしれません 定かではありませんが そんな虫 妹も大好きです Hi Nadhrah MaidinThank you for the conemmt. I sometimes don’t know when to stop putting stuff on my pages.. I am not a very quick scrapper as some people are. (they can finish a page in an hour or so and the result is still incredible!) It usually takes me a good few days (only night time though after my kids have gone to bed.) Thanks for stopping by! まみ913さん ありがとうございます サクサク とはなかなかいきません しかもDTの皆さんと一緒に自分の作ったものが並ぶとなると かなりの緊張もあります 手が震えてなかなか作業ができない っていう 大げさ わたしも 色が苦手なのが出るとちょっと落ち込みますが また大げさ 特にグレーとか出ると でも それもチャレンジかと気合を入れて作るようにしています なかなか思う通りにいかない時もありますが いつもDTのみなさんの作品を拝見して刺激を頂いております リホママさん ありがとうございます 鳥は たまたま色が合うかな と思いつけました 笑 ちょうど木の枝でしたし また一緒にカラールームで楽しみましょうね はまりますよー 英語は外国のサイトに参加するなら使えると便利ですよね でも 画像とパレットとだけでできるからこそ SBもインターナショナルで盛り上がるんだと思います そんなところもまた魅力です だから 世界中の方たちが参加されているんですよね きっと わたしのコメント欄にも 英語 日本語以外でコメントを残してくれる方がいます 読めないけど ありがたいとおもっています 笑 yokoさん こちらでもコメントありがとうございます 今年の目標は SBの幅を広げる なのですが 漠然としすぎ 自分の殻だけにこもらず 自己満足の世界からちょっと出て 他の方にもSBの刺激をお分けできればいいと思っています だから 怖がらずに なにを もっと足を踏み出していこうと思います それから こちらで失礼して のんびりしてない ありがとうございました 毎回楽しみにしていますからー ちか ちゃん さん ありがとうございます いつもなぜか なんで 派手に仕上がってしまうのは きっとそんな性格だからでしょうか 和紙はいいですよね ちょっと大胆に使ってみましたが 和紙ならではの ぐちゃぐちゃ 感が出ていると思います 来週はちょっと派手を控えめにしようかと Mimiさん ありがとうございます やっぱり Mimiさんにはお分かりになっていらっしゃいましたか わたしの興奮振り ほんと これが何かの一歩となって いろいろ幅が広がっていけばいいと思っています のんびりとでも いつもあんな繊細でおしゃれなものを作っている方には わたし流 いい加減 は難しいかも 簡単そうで 絶対作るときには 性格 や いつものやり方 っていうのがイヤでも 知らない間に出てくるので(笑)でしょ キチキチとした性格 やっぱりそうか とうなずけます レイアウトを見ても その感じが凄くよく現れていると思います いい意味で カラールームでも わたしが最近参加しはじめたカラーコンボのほうでもデジをされて投稿されている方が何人かいらっしゃいます もしろん数はペーパー派に比べるとぐんと減りますが デジはそんなわたしたち 紙派 に新鮮で凄く刺激になるものだと思います Mimiさんも参加されてみれば というお誘い兼ねての 情報でした 絶対荒せる自信アリ きろいわんわんさん はじめまして そして ありがとうございます カラールーム これからももっと日本の方に参加して欲しいです そうすれば もっとにぎやかで楽しい 集まり になると思います みんなで刺激を分け合って楽しく作れればいいですよね カラールーム 一度はじめると楽しくて楽しくて仕方なくなりますよー お誕生日ー みなさんおめでとうございます 3月のみなさん早いわ また 機会があればお誕生日カード送付を企画しようかと思っておりますー kanappleさん ためになるブログーー 恐縮です 紫の出場率が最近なぜか高いような気がするのはわたしだけでしょうか 最近はからし色系オレンジも好きです 聞かれてないけど 枝はーー 今回(以前は使った経験あり)違います ポプリの中に混ざって入っていたものを取り出しました かすかににおいも漂ってきます この香り 画面からお届けできないのが残念です 料理番組か 確かに虫ですが 笑 多分口の中にいれようとはしてないと思います うちは兄妹そろって虫が大好きです 妹は兄の影響をかなり受けていると思われますが だんごむしから みみず せみ クモ ほかの名前のわからないような虫もかわいがっています イヤです 非常にイヤですね

Leave a Reply