Monkey Island 2 Special Edition

This weekend I “replayed” the special edition of this great game nobody has heard of, Monkey Island 2 Special Edition: LeChuck’s Revenge. It was a great pleasure to play this game in full HD with beautiful art. The new sounds and music were also great and immersive, although the iMuse system didn’t have the same smooth transitions as the old version (as expected), they did a pretty good job in this version.
The developer commentary are very welcome but most unfortunately short.

Here are a few glitches and surprises I found while playing this version:

Sam and Max (in old version)

Sam and Purple Tentacle (in new version)

Guybrush looking at Manny :)

I had read on the internet that some people complained about these kind of problems mostly on Xbox360. I don’t know if those are glitches in the graphics system or if the artists didn’t paint every pixel they should have paint. In the wharf of Phatt Island there’s even a bunch of pixels that stay on top Guybrush in the middle of the street.
Also, the waterfall sound got stuck for some reason and it was playing in every room. I had to save and load the game to make the sound go away.
One other bug that I found is when you steal the monocle from Wally, if you look closely, the animation frames still show Wally with the monocle every time he looks down. Interesting is the fact that this is also a glitch in the old version of the game but much harder to spot due to the graphics resolution. My guess is that it was to spare a few more Kilobytes for other animations.
Another annoying bug was the cursor when trying to play with the XBox360 game pad. I couldn’t move the cursor because it would jump to the previous mouse cursor position.

And before I go, I also found a major bug in The Secret of Monkey Island Special Edition a while ago, here are the shots:

But nonetheless, they are both great remakes, specially Monkey Island 2 Special Edition. I’ll be back when the true Monkey Island 3 comes out.

Don’t be nervous

Reading an interesting article about comedy in games at GDC I found something rather interesting and wanted to share it with you:

Tim: When we started on Monkey Island, I don’t know about Dave [Grossman], but I thought we were writing the temporary dialogue for that game. Cause we were really new, and there was a big company there with Lucasarts and George Lucas and everyone. So I was sure they’d have professionals come and write the dialogue. So we were just kind of goofing around and writing really silly dialogue. And it took the pressure off us cause we didn’t sit there and wonder, “Is this good enough?” We were just making each other laugh in the office. And then, as it went on, Ron said, “No, no, no. This is the dialogue for the game.” And I was like, “Oh, god.”

And we never wrote anything funny after that.

Monkey Island 2!

By this time everyone knows that Monkey Island 2 is coming back this summer with a new special edition after the great success of MI:SE from a year ago.

The 3 original creators: Dave Grossman, Tim Schafer and Ron Gilbert reunited in the party that LucasArts gave for this event. It would be great to see them working in the ultimate sequel that was never done but it’s better to keep the feet on this earth :)

It’s also worth mentioning that The Secret of Monkey Island: Special Edition will come out in tha Playstation Network. After the great fun that was playing both MI:SE and Tales of Monkey Island, here we have another change to revive our memories (or if it is the case, play this wonderful game for the first time). It’s a pity that it doesn’t come with another Tales, or maybe we’ll get them in the end of the year? :)

Here are some links that I gathered in the last couple days:
MI2:SE Homepage
LucasArts official announcement
Screenshots
GDC 2010 Interview
Grumpy Gamer – Ron Gilbert talking about it
Official Twit
More info

Trinity

I’m a fan of puzzles since I remember. This September is my 12th year here in Lisbon and is also the number of years since I built a puzzle, i.e., until three weeks ago when I decided to buy a new one. I bought this one called Trinity that you can see in the following image:

I started it on the Friday of 26/06/2009 and I finished it a week later 03/07/2009 with a total time of approximately 8 hours of work. It went very fast but as you can see in the images, it was very easy. The problem is that now I want more! :)

Here is the day by day progress:

Day 1

Day 2

Day 3

Day 4

Day 5

 

Ogre Exporter for Maya 2009 32-bit

A colleague at work needed to export some stuff to Ogre engine from Maya 2009 but there were no exporters available. I compiled the tools and all went well. Here’s the plugin for anyone that needs it.

I realized that I had just compiled the x86 version (32 bits) and not the 64 bits that he needed. Next, I tried to compile the 64 bits version but it proved to be a bit difficult and I couldn’t finish the compilation due to time issues. Ogre seems to compile fine for 64 bits but the problems are the dependencies. I got stuck in the FreeImage library that itself doesn’t appear to have problems with 64 bits. But since FreeImage uses other libraries, one of these libraries was not compiling for 64 bits (OpenJPG I think). So if anyone succeeds on this task let me know.

Instructions

  1. Download Microsoft Visual C++ 2008 SP1 Redistributable Package for x86 from here: http://www.microsoft.com/downloads/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en
  2. Install it.
  3. Download Ogre Exporter for Maya 2009 here.
  4. Unzip the file you just downloaded.
  5. Put ogreExporter.mll in the (Maya2009InstallDirectory)\bin\plug-ins. This is usually under: C:\Program Files\Autodesk\Maya2009\bin\plug-ins.
  6. Put OgreMain.dll in the (Maya2009InstallDirectory)\bin. This is usually under: C:\Program Files\Autodesk\Maya2009\bin.
  7. Put ogreExporter.mel in the (Maya2009UserConfigDirectory)\2009\scripts. This is usually under: C:\Documents and Settings\YourUsername\My Documents\maya\2009\scripts.
  8. Start Maya 2009.
  9. Type ogreExporter in the MEL script prompt and a new window should appear with the exporter.

If you have any problems installing it, contact me.

Regular Expressions (part 2)

The first regexp was thought after someone in the IRC asked for some help. They asked if anyone could remove the comments from a c++ source code file. I tried to help:

(/\*([^*]|[\n]|(\*+([^*/]|[\n])))*\*+/)|(//.*)

Note: this is not the exact expression that I came up at the time but this one is richer and better than the other one I answered at the time.

Let’s analyze it:

  1. /\* – to match with the beginning of any comment /*.
  2. [^*]|[\n] – to match any characters except the * or match with the new line character.
  3. \*+ – matches any number of * in the middle of comments.
  4. [^*/]|[\n] – to match with any character except these two * and / or match a new line.
  5. \*+/ – matches any number of * and the / character.
  6. //.* – matches // followed by any characters.

After matching with the first /* the expression becomes a bit harder to understand. What happens next is that we match anything (including new lines) except the * or we match one or more * followed by anything except the end of comment */. After we match with one ore more * followed by a /.
The second part matches only 1 line comments in C++.

Have you ever received an email full of HTML garbage? It happened to me more than once and it’s extremely annoying having to filter the text in the middle of the HTML. I remembered to create a regular expression that would help me remove this kind of garbage. If you didn’t understand what I meant by garbage, here is an example of these emails:

<html><div style='background-color:'><DIV>
<DIV>
<P class=MsoNormal><FONT color=navy face=Impact size=5><SPAN style="BACKGROUND: #f7f7f7; COLOR: navy;
FONT-FAMILY: Impact; FONT-SIZE: 18pt">This is extremely&nbsp</SPAN></FONT><FONT color=#9966ff
face=Impact size=5 FAMILY="SANSSERIF"> <SPAN style="BACKGROUND: #f7f7f7; COLOR: #9966ff; FONT-FAMILY: Impact;
FONT-SIZE: 18pt">annoying&nbsp;</SPAN></FONT> <FONT color=navy face=Tahoma FAMILY="SANSSERIF">
<SPAN style="BACKGROUND: #f7f7f7; COLOR: navy; FONT-FAMILY: Tahoma">&nbsp;</SPAN></FONT>

In this case I used this regexp:

(\<[^\<]*\>)|&nbsp;

It’s quite pretty to grasp this one, we just grab everything that is between two < > but we have to put a safe guard to exclude a possible < since regular expressions are pretty greedy and like to match whatever they can.
The &nbsp; match the HTML code for space characters serve. We could filter other similar characters but this one seems to do the trick in most situations.

Monkey Island is back!

Ohhhhhhhhhhhhhhhhh yeahhhhhhhhhhhhhhhhhh!!!!!!!!!!

That’s right, you are not dreaming. Ask someone beside you to pinch (or punch) you if you don’t believe me. The greatest game of all time is coming back to us by the hands of LucasArts and TellTale. Not only we’ll get a remake with neat features and graphics of the first adventure in the Monkey Island series, we’ll also have new 5 episodes.

Check the official page of the The Secret of Monkey Island Special Edition: http://www.lucasarts.com/games/monkeyisland/ the new screenshots and a video of the people involved in the project.

While at LucasArts headquarters, you can also check this related merchandise: http://store.lucasarts.com/catalog/category.xml?category_id=1301488

New series!
TellTale will be continuing to deliver us great adventure games and after reviving the classic Sam and Max, they’ll revive the mythic Monkey Island. We’ll get 5 new episodes (http://www.telltalegames.com/monkeyisland) starting in 7 July and it seems the “creator” itself (aka Ron) was also involved in these episodes. You can pre-order it now and if you want a discount coupon for the TellTale store, here’s one: 3PD-XNB-8Z7-M2K

Ron Gilbert has also commented this in his blog where he talked about some interesting things about the design/production of the first game. Check it here: http://grumpygamer.com/8280380

I thank you LucasArts and TellTale for bringing this great game to life again. (As if it was dead…)

Papercraft

You may all know that I am a big fan of graphic adventures and I already showed this interest in other posts with t-shirts. I’m also a fan of old platform games demonstrated here in this post by one well known figure among this genre. Since I don’t have any more shirts, this time I come to show you some paper characters of some great games of the 90s. The characters were printed from this site: http://www.cubeecraft.com, cut and folded by me with some help of two work colleagues in two of them. It was fun to build and I’m already missing to fold another one. Without wasting more time, here are the images:

Papercraft

Sam from Sam & Max

Sam from Sam & Max

Max from Sam & Max

Max from Sam & Max

Jim from Earthworm Jim

Jim from Earthworm Jim

Purple Tentacle from Day of the Tentacle

PS: I don’t really know what happened with the tentacle but it came rather pinkish and not so purple.

A nice day for a walk

A few weeks ago I went to a visit in the Cascais Natura park. I went with Guilherme and when we were approaching the meeting point we saw something rather interesting or peculiar as you can see in the photos below. The funny thing is that the horse knew exactly what he was doing and where he was because as soon as we got closer he slowed down and came to a full stop waiting for us to pass.

When the visit was over and after a meeting, we were returning to our work place but can you guess what we found this time? No, no, not our horsey friend, this time it was a dog in the middle of the road, completely lost and not knowing what he was doing. Luckily people were slowing down so that they wouldn’t overrun the dog. Unfortunately I didn’t get a photo of this moment.

Here is a challenge to the people who like math: calculate the probability of these two events occur in the same day. ;)

Regular Expressions (part 1)

A while ago I was refactoring the #include’s of c++ project and I needed to know which project files were including STL files (in our case it meant that the included files wouldn’t have the .h). So, I decided to make a regular expression to find these files:

\#include:b*\<.+[^\.h]\>

If you insert this simple expression in the search box of the Visual Studio you can get a list of all #include’s that don’t have the .h in the name of the file. Now I’ll break the regular expression and try to explain it step by step:

  1. \#include – to match with any #include expression.
  2. :b* – to match with any number of spaces or tabs.
  3. \< – to match with the < character.
  4. .+ – to match one or more characters.
  5. [^\.h] – exclude the .h characters.
  6. \> – match with the > character.

Meaning of the characters in the expression:

  • \ – escape a character, the character after this symbol is treated as a normal character instead of a special character used in regular expressions.
  • :b – space or tab.
  • * – 0 or more times.
  • + – 1 or more times.
  • . – any character except the end of line.
  • [] – any set of characters inside the [].

Note: this regular expression might not be compatible with other programs because it uses specific expressions of the VS, such as the :b that matches a space or tab.

Another example, remove the initial characters (garbage) from actual lines code:

1.          #include <iostream>
2.             using namespace std;
3.         int main()
4.           {
5.           cout << "Hello World!";
6.        return 0;
7.         }

I’m sure you already found something like this and when you put it in the editor it’s really a pain in the ass to remove all that garbage line by line. Here’s another expression that will help in this task:

^[^a-zA-Z_$/{}\#"'\+\-]+

Again, let’s go step by step:

  1. ^ – this means that we’ll start to match only at the beginning of a line.
  2. [^…]+ – matches any character that is not in the set of characters that follows the ^.
  3. a-zA-Z_$/{}\#”‘\+\- – exclude the characters from a to z (same for uppercase letters) and the following characters: _, $, /, {, }, #, , , + and .

This means that this expression catches anything that starts with any character except the characters that are excluded. In the VS, replace this expression by an empty string to remove the garbage.
Note: It’s quite possible that the regular expressions presented here will fail (specially the second one), because it’s really complicated to test all the possibilities but in the general case, these should work.

I hope these two examples will make you see the power of regular expressions or even be useful to you ;) If you have any comments about this article or do you have any problems with a regular expression? Just let me know.