Enigmo 2 Bug Friday: New Dimension Obliterates an Otherwise Awesome Puzzle Game

Saturday, 2006-02-18; 01:05:00

Enigmo 2 sucks!

I'd like make a couple of observations about Enigmo 2, the successor to Enigmo by PangeaSoft. When the first in the Enigmo game series was originally released, I really had fun with it. It was a great "real-time" puzzle game that I enjoyed a lot. That's not the case with Enigmo 2. Enigmo 2 "entered a new dimension", according to the game trailer. While most people think the "new dimension" is referring to the fact that Enigmo 2 works in 3D space, I'm of the opinion that the trailer accidentally omitted the word "lame" in between "new" and "dimension" (just like there's a typo in the URL at the end of the trailer).

3D games are overrated. While I must concede the fact that it is well-suited to a particular type of game like first-person shooters or Descent (which is a first-person spaceship shooter), it is NOT well suited to puzzle games. Enigmo 2 is a prime example of this, and it's a damn shame. It's possible that it can be fixed, but right now, it's as frustrating to me as VueScan was.

Rotation Woes

The first thing I noticed when starting to play Enigmo 2 (apart from the new music, which is more peaceful, and the fact that the 3D flybys take a long time, which you can turn off) involved rotating pieces. In Enigmo 1, when you rotated a piece, you would get visual feedback not only with the piece you were rotating and any liquid that bounces off, but also with the rotation circle. The rotation circle had four notches equally distributed around it, and they would rotate as you rotated the piece. Since you would often be aiming for something off to the side of the screen while rotating, this feature of rotation would make it easy for you to instantly know whether your rotation had succeeded or not, just by using your peripheral vision. Here, take a look at this movie to see the effect.

With Enigmo 2, all this changes. Not only are there no notches to ground your peripheral vision, and not only does the rotating ring not expand as you move around your mouse (which was also an excellent idea in Enigmo 1), but the rotation ring is much smaller in width, making it much harder to target! I have had numerous times where I was targeting the rotation ring and ended up deselecting the piece instead! With there being no feedback for rotation whatsoever besides the piece itself, I have to keep moving my eyes between the piece and the location to which I'm aiming in order to get things aligned how I'd like them to be. BOOOOOOO! This problem alone has made Enigmo 2 extremely frustrating. (Movie. Note: these movies created and compressed for you by Snapz Pro X and MoviesForMyPod.)

But that's not the end of it. Pangeasoft has royally fucked up in their execution of the "new dimension" of Enigmo 2. The culprit? Mouse rotation of the camera.

Intuitive Camera Rotation

In 3D FPS games, the mouse works like this: you use the mouse to control the direction in which your looking. (Strictly speaking, the mouse can only move the camera along two axes of rotation despite you playing a 3D game: side-to-side, and up-and-down. The third axis of rotation would be the spin axis, where your character would change from being vertically upright to lying horizontally on the ground to standing on his head. This third axis is actually controllable in the only true 3D game that I know of, Descent.) In any case, you move around in 3D space by using the "mouse look" in two rotational axes, and moving physically in space usually by a set of four keys on the keyboard (forward, back, left, right). In this way, you can physically move in three dimensions around the arena, and rotate in two. While the keys on the keyboard only physically move you in two dimensions, you gain the third physical direction in combination with the mouse: you face a different direction by moving the mouse, and then physically move in that direction by using the keyboard.

(If you really wanted to get technical, you could think about how the four movement axes that you have with your keyboard and mouse translate to the 3D space tensor. While the image is of the stress tensor, the concept is the same. You can move in relation to each of three planes in three directions. Note, however, that the nine components of the tensor are not all independent -- I believe that there are only six independent variables, and those should correspond to the three directions of physical movement and three directions of physical rotation that you can perform in 3D space.)

Furthermore, when using your mouse, your character turns an angle that is proportional to the distance that you move your mouse on the desk in two dimensions. (Again, since your mouse can only move in two dimensions along the plane that is your desk, it maps perfectly to the two dimensions in which you can rotate.) So if you move your mouse an inch left or right, your character would rotate left or right by a specific angle and then stop.

Rotation Sickness

Back to Enigmo: Enigmo 1 had no concern with the 3D space tensor, because it was a strictly 2D game. There was only one way in which the camera would point, and only one way in which you could rotate parts. This changes with Enigmo 2.

In Enigmo 2, there are now three directions in which your camera can point (that is, three axes, but your camera can point in an infinite number of directions using different components and magnitudes of those axes), and three directions in which you can rotate the pieces. Obviously, this becomes quite complicated, and so it was imperative that Pangeasoft come up with an intuitive interface for dealing with the 3D problem. Their solution? Sub-standard. Enigmo is a puzzle game, and as such, it has different requirements for camera/physical movement than a 3D FPS game. However, that doesn't mean that wanton disregard for the tried-and-true method is in order.

Since you're moving and rotating parts around on the screen, you can't use the "mouse-look" way of doing things in Enigmo. Your screen has to stay fixed while you're moving/rotating parts, and it should only start moving/rotating your camera in physical space on your express orders. In Enigmo 2, if you hold down the control key, your mouse starts rotating the camera in 3D space. If you hold down option and move the mouse, your camera moves forward and back in the direction your camera is facing. And when you hold down command and move the mouse, your camera moves in the plane that is perpendicular to the direction in which your camera is facing. Fair enough.

But the problem starts with the rotation. The main culprit is the method of mouse-look. Instead of mapping the distance a mouse moves to the angle of movement around an axis, Enigmo 2 maps the distance a mouse moves to the speed of movement around an axis. This is disastrous.

Since 3D FPS games use the former method, expectations are shattered when playing Enigmo 2. You start moving the mouse around and don't realize that it's tied to the speed instead of the angle, and your camera continues to spin even though you've stopped moving your mouse and you're going, "WTF, mate?" while your camera continues to spin and then you try to move it back and end up starting a rotation a bit along the other axis of rotation while reducing your speed along the first axis, and in the process of trying to rectify yourself you end up facing the Enigmo 2 board from the positive z axis direction looking downward and spinning out of control around that same axis. It's ridiculous!

Once you realize that your expectations don't match up with reality, you start moving your mouse in little tiny increments to figure out the issue. Only then do you realize the difference between Enigmo 2 and most 3D FPS games. You might also notice that since you have to hold down the control key to rotate the board, you can simply release the control key and you instantly stop your out-of-control spinning. This is small comfort, though.

Enigmo 2's mouse rotation method is completely idiotic even when you look at it from an intuitive interface point of view, not just from an expectations point of view. With standard 3D first person shooters, the error you accumulate by moving your mouse too far in one direction is constant: if one inch of distance along one axis of your desk translates to a 30 degree rotation along the corresponding axis in the game, you can only accumulate a 30 degrees of error if you move your mouse one inch too far. You can easily correct this by moving your mouse one inch in the opposite direction.

In contrast, with Enigmo 2, your error continues to increase linearly if you keep your mouse in the same incorrect position. If one inch along one axis of your desk corresponds to 30 degrees of rotation per second, your error after one second will be 30 degrees, 60 degrees after two seconds, 90 degrees after 3, and so on. Your computer is far more precise than you are, so even the smallest movement error in Enigmo 2 will result in your camera not being placed exactly where you want it to be. Yes, you could lift up the control key when you get to the correct spot, but you'd have to time it correctly, and if you don't, you'd have to start rotating the camera again to get it back to the right spot.

The end result of this interface is that you have to be much more precise in your movements than you would normally have to be. Not only that, but your intuitive sense of mouse movement (i.e.: how far you need to move the mouse in order to get your camera to face the correct direction) is completely shattered. Your mouse movement now not only depends on the distance that you move your mouse, but the amount of time that you keep your mouse in that location. There are now two variables to consider when using mouse look, not one.

In the Enigmo 2 demo, you don't encounter this problem until you get to the first truly 3D board. That occurs only about five boards in, but I still can't get used to the mouse movement. It's completely frustrating, and I can't get it right at all.

[UPDATE: It's been pointed out to me that this is "joystick" movement. With a joystick it makes sense, because the joystick automatically recenters itself once you stop applying force to the stick. Not so with a mouse. And no, in case you're wondering, there's no preference to change Enigmo 2's mouse movement.

Also, note that "mouse look" in Enigmo 2 isn't the same as "mouse look" in FPS games. With Enigmo 2, your camera rotates around a fixed point. With FPS games, your camera stays fixed at a certain point and moves to face different directions. So it's slightly different, but the caveats to the joystick movement still apply.

I also forgot to mention that the mouse movement is reversed: that is, if you move your mouse up on your desk, the camera physically moves up so you start looking down on the objects from above. This is also backwards for this game -- reversed movement should only be reserved for flight simulators, IMHO -- but there isn't even an option to un-reverse the mouse movement. I have a hard time getting used to this in Enigmo 2.]

Movement Sickness

You might think that the madness stops there. I'm just getting started. There's a second more insidious problem to consider. You're not the only thing in space that you control. There are a number of objects that you place on the board to control the various liquids that you encounter throughout the game. (I have to admit, there are some cool new "liquids" like lasers that don't get affected by gravity, and plasma which get affected by "magnetospheres".) So you not only have to contend with the six variables of the 3D space tensor of yourself, but you have to consider the six variables of the tensor for each and every object that you can manipulate on the board.

[Actually, strictly speaking again, you are also confined to two axes of rotation in Enigmo 2 as well. You can't move about the spin axis. This is as sensible in Enigmo 2 as it is in 3D FPS games. In this way, when you rotate your camera back to the starting plane of the board, it will always be oriented in the same fashion. If you could rotate about your spin axis, you might end up coming back to the starting plane of the board, but you would be completely upside down.

If you really thought about it, you could actually effect a 180 degree turn about your spin axis by rotating your camera in the y-z plane, and continuing to rotate it past the point where you're looking down from the top. To orient your coordinate axes, consider the first levels of Enigmo 2 which are only 2D boards. The up-and-down direction is the z-axis, the side-to-side direction is the x-axis, and the in-and-out direction is the y-axis. Rotating your camera in the y-z plane amounts to rotating around the x-axis: that is, after 90 degrees of rotation, you'll be looking at a one dimensional line which would be the "top" of the 2D board. Hopefully that makes sense.

PangeaSoft sensibly denies you from doing this as well: once you start looking down from the top, you can't continue to rotate in that same direction. You'll start rotating around the z-axis. It's akin to trying to go north when you're standing at the North Pole. You can't! In this fashion, your rotation around the spin axis is effectively denied.]

Back to the problem at hand. Consider the following. When you start an Enigmo 2 level, you're looking at the x-z plane. In other words, you're looking along the y-axis, which is in-and-out of your screen. Now move your camera 45 degrees around the z-axis. You're obliquely facing the x-z plane now, but you're also obliquely facing the y-z plane. Now place an Enigmo object on the board. Here's the problem: if you move that piece around, in which plane should it move? Should it move in the x-z plane? Should it move in the y-z plane? Or, as you might expect, should it move in the plane at which you're currently looking -- i.e.: should a 1D movement of your mouse translate to a 2D or 3D movement? -- restated again, should moving your mouse strictly left or right (which would effect a 1D movement of the object in Enigmo 1, or a rotation around a single axis in a 3D FPS shooter) cause the object to move partially along the x-axis and partially along the y-axis?

Perhaps a few figures will help.

Figure 1 Axis Diagrams

Figure 2 Axis Diagrams

OK, at the start of each board, the screen looks like Fig. 1a. (If you haven't seen this notation before, the circle with the cross through it means that the axis is going away from you -- it's supposed to represent the feathers of an arrow.) Your positive y-axis is going into the screen, and the plane of your Mac's screen is the x-z plane. Now, if you rotate about the z-axis, you will progressively go to Fig. 1b, then to Fig. 1c, and then to Fig. 1d. (Here, the circle with a dot represents that the axis is coming towards you -- this represents the point of the arrow.) Rotating around the z-axis from Fig. 1a to Fig. 1d represents a 90 degree rotation about the z-axis, or, stated in another way, a 90 degree rotation in the x-y plane.

Note that in these figures, we're actually looking obliquely downward at the x-y plane. If the camera were looking directly along the x-y plane, the x and y axes would appear as different completely horizontal line segments. To distinguish the x-y axes of 3D space in a 2D plane figure, we have to look obliquely at the x-y plane.

Now take a look at the object in the x-z plane, represented by a triangle. In Fig. 1a, you start out facing the object and being able to see all of it. As you rotate, you start to look obliquely at the triangle, until you get to Fig. 1d, where you're looking straight along the edge. At Fig. 1d, the triangle is represented by a line segment along the z-axis, since the object is in the x-z plane, and you can only see one edge of any objects in this plane. (In Enigmo 2, objects have length, width, AND depth, so you'd still be able to see the object after completing a 90 degree turn. I used a 2D object because it's easier to visualize the rotation.)

Now, let's say you rotated your camera so that your screen looks like Fig. 1b. This is equivalent to the screen in Fig. 2a. Again, we're looking obliquely down at the x-y plane, but we're also looking obliquely at the x-z and y-z planes. We've rotated a little bit around the z-axis from Fig. 1a.

Suppose you place an object on the screen while it looks like Fig. 2a. Here, we would be facing an oblique plane, but the object would also be placed in this plane, so we would be seeing it face on. If we rotated the screen back to the orientation in Fig. 1a, the triangle would look like it does in Fig. 2d. That is, we are looking obliquely at it's face and it's edge, so we see less of the face in our field of view.

Let's go back to Fig. 2a. Suppose we want to move this object. Intuitively, you would think that the object would move in the same plane as the one in which you're looking. That is, you would think that a mouse movement to the left would cause your object to move to the location in Fig. 2b. If you rotated your camera back to the orientation as in Fig. 1a, your triangular object would look like Fig. 2e. Since you're looking obliquely at the x-y plane, the x-z plane, and the y-z plane, the movement of the triangle in this oblique plane would cause it to move partially along the y axis (causing it to get bigger from Fig. 2d to 2e), partially along the x-axis (causing it to move horizontally from Fig. 2d to 2e), and partially along the z-axis (causing it to move vertically from Fig. 2d to 2e).

In Enigmo 2, this is not the case. Movement of objects is constrained to be along the true coordinate planes. That is, you can only move objects in the x-z plane, the x-y plane or the y-z plane, but in no other plane. In practice, a left mouse movement while being oriented as in Fig. 2a causes a movement of the triangle to Fig. 2c! Instead of moving in the oblique plane which you're looking at, it moves in the x-z plane instead! If you rotate back to the orientation of Fig. 1a, the triangle moves to the location in Fig. 2f! That is, a 1D movement of your mouse on the table -- to the left -- causes the triangle to move strictly along one and only one axis: the x-axis. That means from Fig. 2d to 2f, you should only see a change in one axis: that is, the triangle looks exactly the same, except it's shifted over to the left.

Do you see how this completely shatters expectations? In the physical 3D world, you expect to move things from Fig. 2a to 2b, which causes an observer along the y-axis to see movement from Fig. 2d to 2e. In Enigmo world, you move things from 2a to 2c even though you're moving your mouse in one axis on the table, and so the observer sees the triangle move from 2d to 2f! The movements along your desk do not translate to the movement along the plane of your screen, they translate to a movement along a plane that is oblique to your screen! Arg!

It gets worse. The planes along which you can move objects depends upon which way you're facing. That is, in Fig. 2a, we are not directly facing any of the x-z, x-y, or y-z planes. However, the plane we're most directly facing is the x-z plane. So vertical movements of the mouse along your desk translate to movement along the z-axis, and horizontal movements of the mouse along your desk translate to movement along the x-axis.

However, if we were to slightly rotate around the z-axis a little more so that we see the y-z plane more than the x-z plane, suddenly movements along the desk correspond to movements along completely different axes. If we're most directly facing the y-z plane, then horizontal movement of the mouse corresponds to movement along the y-axis, and vertical movement of the mouse corresponds to object movement along the z-axis. If we've made a 45 degree rotation from Fig. 1a, then even the slightest rotation could cause object movement to completely change axes!

Rotation Woes, Too!

Now after considering all those problems that I just demonstrated, consider this: all those caveats about how you move objects apply to placing and rotating objects as well.

If you place an object, it's basically akin to moving the object from somewhere offscreen to your field of view, so you don't actually get to place an objects as in Fig. 2a. You can only place objects along the x-y, x-z, and y-z planes, so again, your intuition as to where a piece will go will not jive with Enigmo-world.

But also think about something else: when you place an object, you are actually facing an infinite number of planes that are all parallel to each other. So when you place an object, in which one of these planes does your object go? It's a completely different problem, because it depends how far "zoomed in" you are to the board. If you're not zoomed in correctly, placing an object might place it further into the screen than you expected, and so your water droplets won't be affected! To compensate, you have to rotate 90 degrees and then re-move your just placed object to the correct location. The first 3D level of the Enigmo 2 demo has two water dispensers that are in planes parallel to the starting screen. When I first placed a few objects, they were placed to affect water droplets from the back water dispenser, not the frontmost one! This is probably because I altered the zoom a little bit, but it was still contrary to what I expected!

Similarly, rotation of objects not only fails in terms of the feedback of the interface, but it too is constrained to be around one of the three axes. Worse, whereas you can move objects in two axes depending on where your screen is facing, you can only rotate in one direction for any given plane you're looking at. So let's say you're looking at an oblique plane, and you see an object along it's edge. You want to rotate this object so that you can see it's face in the oblique plane at which you're currently looking. To do that, you have to rotate your screen so that you get the correct rotation axis, rotate the object by the correct amount, rotate your screen again so that you get the OTHER rotation axis, and then rotate the object by the correct amount again! Note that you have to make two rotations in order to get the object to face you directly, and you can't be in the plane you want it to face when doing either of the two rotations! MADNESS, I tell you, MADNESS!

[UPDATE: It seems there's a preference to at least fix the problem in terms of rotating objects. You can have Enigmo always display all three rotation rings so that you don't need to move yourself out of the oblique plane in order to rotate the object to face you. Still, though, it requires finesse in figuring out how much to rotate along each axis, and this still doesn't solve the problem in terms of object movement.

Also, you can have Enigmo 2 display movement handles for each of your objects, which makes it more obvious that you can only move things in the three principal direction planes. But while it does modify your expectations, it doesn't make it any more intuitive.]

I can understand why constraining movement and rotation of objects would make sense at first glance to the programmers at PangeaSoft. With the constraints, it's "easier" to predict to where an object will move or rotate -- if you were stuck in the x-z plane as in Enigmo 1. But you're not! Your camera can rotate to any oblique plane, so movement and rotation of objects should also move and rotate in the oblique plane you're looking at!

This problem makes Enigmo 2 just completely unplayable. I seriously don't know why Enigmo 2 was released with this form of control. It's madness, it doesn't make sense, it makes rotating your camera frustrating, and it makes rotating and moving objects absolutely infuriating. It's so bad, in fact, that I couldn't even get past the first 3D level without giving up. It took me literally 5 minutes just to get one object positioned correctly so that the water droplets from the back water dispenser would correctly hit a target. Enigmo 2's control system is fundamentally flawed.

Rectifying the Problem

Given the gameplay of Enigmo 2, I'm not sure if this game can be corrected so that playing it isn't infuriating. It's possible that with time you get used to the weird style of movement, rotation, and placement of objects, but when you first start using it, it takes more than a few minutes to realize what's going on.

If you think about it, even taking out the constraints of rotation, movement, and placement of objects is not going to make the problem go away. The placement problem still exists: when you first place an object on the board, there are an infinite number of planes in which it can go and still be directly facing you. How do you fix that? The requirements for this game are a bit more complex than 3D FPS games, because you only move yourself in those games, not other objects.

I first thought that maybe placement along one direction could be constrained to certain points. That is, if you start out with your screen looking like Fig. 1a, then movement in the y-direction would be constrained to a finite number of planes in the y-direction, instead of an infinite number of planes. But I'm not sure if that will solve all of the problems.

Well, I do know one solution to the problem: don't make egregious use of the third dimension when making puzzle games that were perfectly fine in the first place. I think it would have been better to relegate the Enigmo series to 2D space, and simply add new objects and new liquids and new barriers to overcome. I mean, Enigmo 2 still only has 9 objects that you can place! That's up from the 8 objects that Enigmo 1 had.


Well, suffice it to say, Enigmo 2 is fundamentally flawed in its execution. Perhaps I'm too nitpicky and don't want to stick with it until I start getting a hang of the controls, but it's absolutely aggravating the first time you try. That's not a good experience for any program, let alone a game. First experiences are everything.

Technological Supernova   Apple Bug Friday   Older   Newer   Post a Comment