Shapes That Move
Shapes That Move is a simple platformer game written with the Unity3D engine. It includes realistic physics™, easy level creation, and a variety of objects to make your levels fun.
Downloads
Prebuilt binaries for Windows, Mac OS X, and Linux can be found on the releases page.
Compilation
Shapes That Move is built using Unity 2018.2 (Personal) on Windows and Linux. Opening the project it is as simple as cloning the repository and opening it in the Unity Editor.
Single-level builds are supported using the level scene in the build - multi-level builds use the MainScene.unity scene in Assets/.
Levels
Levels are stored in the Assets/StreamingAssets/Levels folder. Each level is basically a Unity scene file, but some considerations must be kept in mind:
-
The level should include the
GameStateprefab, and preferably theShapesDefaultCameraandGameBoundaryprefabs for consistency. It is therefore a good idea to copyAssets/LevelTemplate.unityto the levels folder and begin work there. -
The level scene MUST have its asset bundle set to
levels, or it will fail to import in multi-level mode (i.e. via MainScene).- After adding a level to the
levelsasset bundle, you must also rebuild the runtime asset bundle via theAssets->Build Asset Bundlesmenu option. Otherwise, scenes will either be outdated or fail to load!
- After adding a level to the
-
Safe objects to add into the world in a level include everything in
WorldItems/andResources/SimpleTextMesh(for in-game textboxes).- Script-wise,
AutoMaterial,AutoMover, andKillOnTouchare safe to add to most objects. (BindDisplayworks as well but that currently requires manual tweaking and a dummy gameobject)
- Script-wise,
Level packs
Level packs are simple JSON files that tell Shapes' level selector which scenes to expose and in which order. All level packs named Assets/StreamingAssets/Levels/*.levelpack are automatically discovered on runtime, so there is no configuration needed to explicitly load them. For level creators, you will likely want to create a new .levelpack file or add your work to an existing one.
The level pack format is as follows: an object with a "levels" key pointing to a list of objects with a "name" and "path" key each. Omit file extensions when specifying the scene path.
{
"levels":
[{
"name": "How to Move",
"path": "Tut1Movement"
},
{
"name": "How to Hop",
"path": "Tut2Jump"
},
"..."
]
}License
GPLv2

