Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

jlu5/Shapes

Repository files navigation

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:

  1. The level should include the GameState prefab, and preferably the ShapesDefaultCamera and GameBoundary prefabs for consistency. It is therefore a good idea to copy Assets/LevelTemplate.unity to the levels folder and begin work there.

  2. 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 levels asset bundle, you must also rebuild the runtime asset bundle via the Assets->Build Asset Bundles menu option. Otherwise, scenes will either be outdated or fail to load!
  3. Safe objects to add into the world in a level include everything in WorldItems/ and Resources/SimpleTextMesh (for in-game textboxes).

    • Script-wise, AutoMaterial, AutoMover, and KillOnTouch are safe to add to most objects. (BindDisplay works as well but that currently requires manual tweaking and a dummy gameobject)

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

About

A colorful 2D platformer game.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages