Geometry

In the World of Goo, the geometry objects are what make things solid. Geometry is what the Goo Balls can sit on, walk on, attach to, bounce off etc.

There are several different kinds of geometry object you can include in your level, but no matter how complicated your level is, it's all built out of very simple shapes (rectangles and circles).

Geometry objects can be fixed in space (static) or moveable/moving (dynamic). They can be made of various materials, and can have a whole host of different effects on the balls and other things.

Geometry objects can also have images attached to them. This is unnecessary on static geometry - it is usually simpler to use a separate SceneLayer item for the image. But if you want the geometry to move, and you want the image to move with it, you must add the image to the geometry object.

Geometry IDs

Every geometry object has an id attribute. When you add a geometry object to your level, WoG Editor will automatically assign it a unique id of the form geometry{number}.

You can change these IDs to whatever you like, and the game is quite flexible in that regard. It will allow objects with duplicate IDs and blank IDs without complaint. However, this can cause you endless problems whilst you're editing the level.

WoG Editor will report any problems by refering to an object's ID. If you have many objects with the same (or blank) ID, you won't know which object actually has the problem.

Once you start designing larger levels, with dozens or hundreds of geometry objects, it can be useful to start giving them "meaningful" names: platform1, leftwall, killerwheel or whatever. As long as you keep these names unique, you will be fine.

Basic Shapes

There are only two basic shapes that Geometry objects can be; rectangles and circles. Most of the solid objects in your levels will be built using just these items.

Rectangles
Circles

These shapes can be positioned, resized and rotated using the mouse in the Level View window, or you can enter values directly into the Properties Pane.

Options / Attributes

Static or Dynamic
tag attribute
[Material]
[Applying Images to Geometry]
[Making Geometry less Solid]

Composite

compositegeom objects are very similar to the Basic Shapes objects, with a couple of crucial differences and a few "quirks".

The basics of a compositegeom are most easily explained with a short video.

Whilst you can add as many children as you like to a compositegeom, and build a something fantastically complicated, it is still a single object, and it will move and act as such. Like other geometry objects it can have a material, tags and an image, and the compositegeom passes on these properties to all of its children.

So why is that useful?

The main uses of these objects are:

  • Moving Objects which are 'complex' shapes
    The Third Wheel in "Third Wheel" is a compositegeom object, as are the fingers in Genetic Sorting Machine.
  • Grouping a number of basic shapes together so that they share certain attributes.
    Most of the platforms in "Alice and Bob" are parts of the same object, and all the walls and ledges in "Grape Vine Virus" are one big compositegeom.

Another crucial difference between compositegeom and other geometry objects is that compositegeom objects do not have a mass attribute. Their mass (and centre of gravity) are calculated from the masses and positions of all their child objects.
NB: This only matters when you are using [Dynamic objects].

Bugs

compositegeom objects also have a few "quirks" (steming from bugs in the game engine):

  • Incorrect handling of deadly and mostlydeadly tags with "sticky" Goo Balls - see note in tag attribute
  • Incorrect handling of nocontacts attribute with "sticky" Goo Balls - see note in [Making Geometry less Solid]
  • Unexpected Displacement of Rotated, Dynamic compositegeom objects - [link TBA]

Dynamic

Dynamic Geometry is any geometry object that is set to static=false or {blank}. Dynamic objects can move or be moved, they will respond to forcefields (including gravity), they will react when Goo Balls or other geometry hits them. In short they behave as if they were real solid objects in your level.

Important Note: All Dynamic objects require a mass

If you set static=false you must enter a value for the mass of the object.

Despite what you might remember less than half the original World of Goo levels contained Dynamic Geometry.
If you're looking for information on how to create any of the following...

  • spinning cogs
  • wheels that will pop a Beauty Ball
  • windmills that kills Goo Balls
  • the wobbly head in "Chain"
  • the lifting wheels from "Third Wheel"

then you should probably read this instead - Making things Spin!

There are a number of categories of Dynamic Geometry.

Free Standing

These are objects which are not fixed to anything, and are free to move or fall as the physics engine dictates.
Examples of Free Standing Objects

  • The head block in "Burning Man"
  • The Bomb Carriage in "Upper Shaft"
  • All those explodable blocks in "Deliverance"

Free standing objects are the simplest to set up. Once you have set the object to static=false and given it mass.. you're done. Although you'll probably want to apply an image to it, so that the player can see it. see [Applying Images to Geometry]

Hinged

These objects can move, but they are constrained to rotating about a point, a hinge. The hinge can be a fixed point or can be attached to another dynamic object.
Examples of simple objects using fixed position hinges

  • The platform in "Server Farm" - View Image
  • The liftable bars/gates in "Flying Machine" - View Image

To create an object like this, set it to be static=false and give it a mass, then add a hinge object to the level. Move the hinge into the correct position and set its body1 attribute to the id of the geometry object.
[Full details on hinge and its attributes]

Examples of more complex hinged objects

  • The Red Carpet Extend-o-matic machine in "Red Carpet" - View Image
  • The machine/robot/thing at the bottom of "Deliverence" - View Image

Notes on Hinged objects

  • When two dynamic objects are hinged together, they will not collide with each other.
    However they will still collide with other geometry objects and Goo Balls.
    And if A is hinged with B, and B is also hinged with C.. A and C can still collide. In the case of the Deliverance "robot".. the fingers could collide with the head, because they are not directly connected by a hinge.
  • Hinges cannot be attached to compositegeom child objects.
    If you attempt to attach a hinge to a compositegeom child, the connection will be ignored, and the hinge will be in a fixed position. To hinge a compositegeom object you must attach the hinge to the parent object.
  • Hinges cannot be attached to Static Geometry
    Again, if you try the connection will be ignored and the hinge will be a fixed position. This will not affect the dynamic object directly, since it was being hinged to a fixed body anyway. However, since the 2 objects are not connected by a hinge, they will collide as normal.
  • Bug in the game: Timebugs vs 2 body hinges
    If you have a hinge which connects 2 dynamic bodies, then its position is not correctly reset when a timebug is popped, this can cause some very undesirable effects. Fixed position hinges are fine, but hinges that move get badly messed up.

Lines

Line objects are used to define the edges of the level, as far as the Goo Balls and dynamic geometry are concerned. Lines are the simplest type of geometry object, however if you don't understand how they work, they can cause you all sorts of problems.

Lines have a position (anchor) and a normal direction (normal). Together these tell the game where the line is and what its rotation is. The normal dictates which way the line points and defines the front and a back. It's the front and back which are important, because Goo Balls and dynamic geometry objects can only ever be in front of a line.

In fact, they must be in front of all the lines in a level. You must always have the normal's pointing inwards towards the middle of your level. If they face outwards then Goo Balls are not allowed to be in your level.

If a ball or dynamic geometry is placed the wrong side of a line, the physics simulation will go berserk due to the illegal placement.

Lines have a tag attribute and a material, so they can affect Goo Balls, Structures and Dynamic Geometry in many different ways.

Unlike circles and rectangles, lines can't be placed into a compositegeom - not that this would make sense anyway.

Sliders

[Under Construction]

Static

A Geometry object can be made fixed and unmovable by setting its static attribute to true.
Static objects are used for Walls, Cliffs, Platforms and the other things in your level that will never move. The vast majority of the geometry in your level will usually be static, so WoG Editor sets static=true on geometry objects when you add them.

The static attribute only affects the "fixed" nature of the Geometry object, it can still be assigned a [material] and tags.
You can also apply images to static geometry, however you are normally better using a separate image object. The only time that static geometry requires an image is when it can be destroyed - see [Making Geometry less Solid]

Note on Building Walls and Cliffs

There is a bug (more a "weakness") in the World of Goo game engine which allows fast moving Goo Balls to pass through thin walls. This has been used to great advantage by many players in order to beat levels faster or better.

However it can also be annoying and problematic if a level is designed "poorly" and Goo Balls can accidentally pass through thin walls and become stuck or die. The best way to avoid this problem is to make your geometry as big and solid as possible, rather than building thin walls around the edges of the images. Overlapping regions are fine, in fact they are encouraged, since Goo Balls can get stuck in small gaps between geometry that almost touches.