We just reached 30,000 articles on this wiki! 🥳
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Crazy Machines

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Crazy Machines

Also known as: Заработало! (RU)
Developer: FAKT Software GmBH
Publisher: Pepper Games
Platform: Windows


CodeIcon.png This game has unused code.
ObjectIcon.png This game has unused objects.
GraphicsIcon.png This game has unused graphics.
ModelsIcon.png This game has unused models.
Sgf2-unusedicon1.png This game has unused abilities.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.


PrereleaseIcon.png This game has a prerelease article

Crazy Machines is a puzzle game of Rube Goldberg contraptions, and revolutionized the genre of "games you randomly find on a school PC".

Where's my screwdriver?

Hmmm...
To do:
  • Find and commit exact release dates.
  • Add info about USA bundle releases.

Sub-Page

Read about prerelease information and/or media for this game.
Prerelease Info

Versions

The game had four main releases, with the latter three introducing new elements, puzzles, and bugs:

  • Crazy Machines: Inventor's Workshop (2004)
  • Crazy Machines: New Challenges (September 27, 2004)
  • Crazy Machines: New From The Lab (October 15, 2005)
  • Crazy Machines: Inventor's Training Camp (October, 2006, co-released with Oetinger Entertainment)

By unique elements and features, New Challenges is a superset of Inventor's Workshop, while both New From The Lab and Inventor's Training Camp are supersets of New Challenges (internally, Inventor's Training Camp is based on the New From The Lab-era engine with features cut). New From The Lab and Inventor's Training Camp have their own mutually-exclusive features.

Quirks of all versions are described on the same page, as the internal differences between them are minor.

Debug Features

Debug Screen

Hmmm...
To do:
  • More specifics about enabling debug screen
  • Explain more obscure values

Present in all versions. It cannot be enabled legitimately and instead is controlled by two values in memory (one for FPS display and another for debug screen). If the latter is active, the following values are shown:

  • Main: time elapsed since start
  • Game: time since last game mode change
  • nMode: current active dialog window
  • Os, MOs: number of primitive objects and composite objects. Same for TOs and TMOs, except they are templates (objects with constant properties newly created objects copy data from)
  • MP, MPS: mouse position in game coordinates and in screen coordinates respectively
  • Conn: number of power/belt/rope connections, counted by endpoints. Equals 2 when two elements are connected with one cord
  • Elements: number of elements (objects placed by level creator or player) on the field
  • MOFuze: possibly the pointer to the object of a fuze being edited right now
  • Sel: number of elements being in selection, posrel indicates whether they are being dragged around
  • Belts: number of power/belt/rope connections, counted by cords. Equals 1 when two elements are connected with one cord
  • PSs: particle systems. Used by candles, windmills, bombs, cannons and other particle-emitting elements
  • FMs: flag managers. If editor mode is entered, one flag manager is always present as there is a flag template element in the Wind tab
  • ZoneBorder: corner. Not present in Inventor's Workshop, as zones were not a feature yet
  • InGoal: number of elements with hit goals
  • Drawn: number of objects drawn to the screen
  • SVB: unknown, possibly related to shadow volume recalculation.

CM NFTL Debug.png CM NFTL FPS.png

Hitbox Display

Hmmm...
To do:
This is definitely present in New Challenges, New From The Lab and Inventor's Training Camp. Its presence and functionality in Inventor's Workshop is to be confirmed.

For every model, the game uses a collider composed of spheres and boxes. Much like with the debug screen, there is an option to render these hitboxes but it is buried in the code.

CM NFTL Hitbox.png

Some 3D UI elements (editor tabs, buttons, etc.) also use hitboxes despite not being processed by the physical engine. In this case, hitboxes are used to determine a hit when the player's inputs are raycasted.

Unused Assets

Inventor's Workshop

Centrifugal Belt

Since the first release an unimplemented element is mentioned in a translation file (scripts/strings/main.txt).

tmo_belt_centr
{
FLIEHKRAFTMESSER
}

This oddity is carried into localized versions ("Centrifugal belt" in English, "ИЗМЕРИТЕЛЬ ЦЕНТРОБЕЖНОЙ СИЛЫ" [Centrifugal force meter] in Russian). Its design and purpose is unknown.

Golf Ball

All versions include a "golf ball" model (data/models/ball_golf.ucm). There is no texture, shader, or other references to it outside of scripts/gfx/gfx.vsc, the model loading script. It could have been replaced by the tennis ball because of similar size, easier recognition, and the naturally-complicated texture of a golf ball.

Chain Link

Inventor's Workshop and Inventor's Training Camp (having a similar title screen, except the latter lacks the lamp hanging from above) include an unused model named (data/models/startscreen_lamp_chainlink.ucm). This may indicate the start screen lamp in Inventor's Workshop was originally meant to be hanging on a chain, as opposed to a blue power cord.

New Challenges

Unused Gravity-Related Texture

The textures directory contains a file named power_gravity_disc.tga (not used anywhere). It is notable this is the first finished texture for New Challenges (official demos preserve modification datetime of files), indicating it was used for an early version of the gravity machine.

power_gravity_disc.tga, converted to .png

Zeppelin Motor/Rotor

elements.fsc code for the zeppelin refers to to_wind_zeppelin_rotor (spinning yellow propeller). However, there is an identical section of code describing to_wind_zeppelin_motor which refers to a nonexisting motor model. This may indicate the zeppelin used to look differently. It might also be just a simple name change, though.

ID 57

New Challenges and later games have items for a continuous series of IDs (1 to 78 at least) except for 57. It is not referenced in scripts/elements.fsc, but decompilation shows a check for ID 57 happens together with other checks for ID 48, 49, 51, 76, 77 and 78, all being fire-related elements. ID 76, 77 and 78 are the three timed bombs — way out of the ID range for heat/fire elements, actually the last three IDs in New Challenges. The official website (in German) has an interesting hint in the Screenshots section:

UPDATE: Traum aller Kegler

Mit gezündeter Lunte rollt die Kugelbombe ihrem Ziel entgegen und räumt so Hindernisse aus dem Weg. Nun wird es in der finalen Version drei unterschiedliche Kugelbomben mit verschiedenen Detonationszeiten geben. So kannst du den rollenden Sprengsatz auf einen längeren Weg schicken, bevor er explodiert.

translating to:

UPDATE: Every bowler's dream

With the fuse ignited, the ball bomb rolls towards its target, clearing obstacles out of the way. Now in the final version there will be three different ball bombs with different detonation times. This allows you to send the rolling explosive device a long way before it explodes.

This suggests originally there was only one timed bomb, but two more bombs were implemented closer to final release. The three bombs were assigned high IDs because the change was very late and adjacent IDs were already used by other elements. It is therefore most likely ID 57 was just the bomb element before it was split into three differently timed bombs.

New From The Lab

Bell

An unfinished bell element with a model (data/models/bell.ucm and data/models/bell_clapper.ucm), ringing sound (data/sounds/fx/bell.wav), and element description:

Bell,
bell clapper is also movable, element 
objective has been attained when the bell
rings, ropes can be attached to the lugs

...and a definition in scripts/elements/elements.fsc. However, it lacks a shader and a texture. It is not assigned an ID and is not accessible from within the game.

CM NFTL Bell (debug).png CM NFTL Bell (example use).png

Pulley

scripts/elements/elements.fsc files for New From The Lab and Inventor's Training Camp contain a definition for rope_pulley element, commented out. The element is not referenced anywhere outside this file. It's likely the element was never implemented, as no code suggests there was any element interacting with the rope in any ways different from directly attaching to it.

Disc

data/models/disc.ucm is an unused and unreferenced model from New From The Lab. If to be placed into the level, it would face the player in the same way gear or wheel elements do. There's no indication of its purpose: it could have been related either to the unimplemented pulley or to a completely unknown element.

Disc.ucm.png Disc.ucm side view.png

Picot wheel and ID 85

New From The Lab uses ID 83 for its tmo_bucket_wheel element. However, its code also treats ID 85 as a functionally identical (or at least very similar) element. The game also contains an unused model, data/models/belt_picot_wheel.ucm, not referenced in any .fsc or .vsc file. It has no corresponding texture, and its UV map is incorrect (most probably autogenerated and never fixed). This model has four hooks for attaching ropes along with a standard-sized wheel for drive belts (no other element contains both). Most probably, ID 85 was used for this element before its partial removal.

Picot wheel standard.png Picot wheel example.png

Revisional Differences

Starting with New Challenges, it is possible to place elements in invalid positions (out of bounds or overlapping) by causing the context menu to pop up, press-holding any yellow button, and dragging the element by it.