Angular Velocity Level Editor
Instructions
Welcome to the Angular Velocity level editor. This is the very same
editor that I use to make all the levels in Angular Velocity.
These
instructions are for the in-game level editor. If you'd like to make
levels on a regular computer, there's also an easy-to-use browser-based
level editor at lukeallen.org/av.
Basic Tutorial
Here's how to create a basic level:
- On the Custom Levels screen, touch level 1 to open it.
You'll see the ball in the middle of an empty level.
- Pause the game. Touch the button in the upper
left.
- You're now in the level editor. Swipe to move your view,
and zoom in and out with the buttons in the lower left.
- Click and touch in the upper
left part of the level to make the player start there. Hit "Done" when
finished.
- In the upper right, Click to choose the type of wall to create. Let's
choose the green metal type:
- Click and touch the screen five times in a
clockwise circle to make a basic pentagon-shaped wall. Hit
"Done" when finished.
- Click
and touch the screen to place the final goal
(i.e. the window) near the bottom right
- Click to try out your new level!
There's more info below, but I recommend that you don't read it at
first; just play around with the editor.
More Info
There are lots of options for adding
objects and walls;
the best way to learn is just to experiment with them. If you do
something you didn't intend, use
or to
fix the
mistake.
You'll notice that walls must be convex,
and vertices must be
clockwise. This is because
my physics engine requires it for some stuff. So to make a concave
wall, you need to combine multiple walls. (It's fine if walls overlap
each other).
When creating fans, you touch to place
the fan and drag to the end of
its airstream. So for a long airstream, you'll need to
zoom out before placing the fan.
For long editing sessions, it may help
to lengthen your device's
Display
Timeout setting (under device Settings/Display).
If your device has a physical keyboard,
you can use the D-pad to move
your view and the "i" and "o" keys to zoom in/out.
Levels are saved on your SD card in a
folder named
AngularVelocityEditor. You can also put levels here that you get from
friends; just be sure to change the level number to avoid overwriting
your own level. For example, to avoid overwriting your own level 1,
rename your friend's "custom-level-1.lvl" to "custom-level-20.lvl".
(The levels
must be named in the form "custom-level-#.lvl" or the
editor
won't
find them.)
General
advice for level creation
Here are my thoughts on making good levels:
-The really great levels have some physics tricks that the player has
to figure
out. (For example, a way to build up momentum to break
glass or reach a height.) Making the player use physics and momentum
with the
grappling hook is what makes an awesome level.
-After you create the functional parts of your level (such as the walls
the player needs to grab or bounce off of, and the objects he needs to
use) add more parts that are purely aesthetic or serve to make the
solution a little less obvious (maybe that wall has supporting beams,
or maybe there are two gravity controls and the player has to choose
the right one).
-Don't
give the player exactly what he needs at all times. For example,
instead of putting a grapple-able wall right where he needs it, put it
off-center and make him adapt. Instead of a perfectly-placed ramp to
jump a gap, make the player use the grapple. It's the challenges that make a level fun.
-If the player needs to go somewhere that's off his screen, use arrows
or other visual cues. Try not to force the player to memorize the level
in order to get through it. (This can be a hard principle to follow,
and some of my levels violate it, but it's good to try.)
-Resist the tendency to make the level only out of rectangles. Make
complex shapes by combining overlapping polygon walls and circles
(though be aware that for performance reasons, you're currently limited
to 100 total walls per level)
-The Edit->"push-to-background" function can be a time
saver: for
example, to make a hole full of lava, make a V-shaped indentation with
two walls, then draw a big box of lava that completely covers the
bottom of the V, and push the lava to the background. Then only the
lava inside the hole is visible. That's a lot easier than using the
"move" function to perfectly match the lava to the shape of the hole.
-Levels shouldn't require extreme split-second timing or precise
long-distance
aim with the ball; touch screens just aren't well suited for that
sort of gameplay. Instead, the level should be about
using momentum in the right way. For example:
in the level High Dive
(level
13 of the main game), the player has to fall, then swing under a wall
to throw the ball upward. But after the ball gets
moving upward, there are multiple large walls to grab over a wide area,
so the player can recover from imperfect timing as long as he had the
basic idea right. So, if part of your level does involve split-second
timing, consider adding recovery paths for players who have
solved the
basic puzzle but can't quite get perfect timing.
Submitting
Levels
Don't let false modesty stand between you and eternal e-fame! If you've
created a good level, share it!
Option 1 (recommended)
- On your computer, go to lukeallen.org/av and start the online
editor. To publish levels, you'll need to register a user name.
- Click "File" / "Load from phone" and follow the instructions.
Then click "File" / "Publish" and wait for the 5-star reviews to
roll in from your adoring public!
Option 2 (if accessing a PC is difficult for you)
- Click Level/Sign... and type your name (or screenname, it's up
to you) the way it should be displayed on the level intro screen
- Email the level file to levels@lukeallen.org.
For example, if it's level 4, attach the file named
"custom-level-4" from the folder "AngularVelocityEditor" on your
SD card. I'll manually upload it for you. This will take longer
than option 1.
Appendix: Complete Editor
Command List
- LEVEL
- Title/Hint...Specify the level title, and
any hints/suggestions to be displayed before starting a level.
- Sign...Sign the level with your
name/nickname
- Times...Specify the 1, 2, and
3 star times for completing a level
- Undo/Can't Undo
- Editor Howto.../Submit level...Display this
guide
- BackgroundChange the background theme
(toggle)
- RevertRevert to the most recently saved
version of this level
- Prev Lvl / Next Lvl
- Save
- Save and Play
- Exit
- ADD
- Circle Wall
- Rectangle Wall
- Polygon Wall
- Goal The Goal Window. Player must break
this with the ball to finish the level. If multiple windows are placed,
player must break all of them.
- ArrowAn arrow to help guide the player in
the right direction.
- FanBlows air with a specified speed
and direction. Air speed is given in pixels per second; 500 is fairly
gentle and will roughly balance out gravity when pushing the ball
upward; 1000 is fairly fast. When placing, drag from where you want the
fan to where
you want it to stop blowing. Its area of effect is
shown by wind gusts coming out of the fan.
- Grav ControlThere are two types of Gravity
Control, Zero G and Negative G. You must specify the type and how long
the effect will last.
- EDIT
- Move Object Touch an object to select it,
then swipe to move it.
- Place Player Place the starting point for
the player
- Edit Wall Touch a wall to enter 'Edit'
mode. For circular walls: touch near the center to edit the position;
touch outside the circle to edit the radius. Use
'Change Corner' to change which thing you're editing. For every other
wall, touch near a vertex to select it, then
either swipe to move it, or use U/D Align and L/R Align to align the
vertex with its neighbor. To change which vertex you're editing, use
the Change Corner button or just tap on the vertex you want to edit.
- Level Bounds Allows you to make the level
larger or smaller. This command and "Set wall type", below, are the
only ways to edit the special walls that form the level bounds. (No
other commands will work on them.)
- Copy Wall Duplicates a wall. Swipe to
place the duplicate.
- Delete...
- Transform Apply Transformations to
objects. For walls: Scale/Rotate/Flip. For fans: Rotate or Change
speed. For most other objects: Rotate. You can also move the object.
- Push Back Push walls to
the background or bring them forward. Useful for ovelapping walls of
different types to get the effect you want. For example: create a
circular grass wall, then a larger circular hyper wall on top of it,
then push the hyper wall back. Its visible parts will form a border
around the grass wall.
- Set wall Type Touching a wall will set it
to the currently selected Wall Type. Also works on the walls that form
the level bounds.
- WALL TYPE
- Snow/Green Metal/Grass Hard surface which
can be grappled.
- Space Lattice/Mud Soft surface (ball won't
bounce) which can be grappled. (The space lattice is an artist's
depiction of the Hoytether
space elevator cable concept, which would be resilient against
micrometeoroid impacts.)
- Electrified Wall/Lava Destroys the
ball on
contact.
- Metal Hard surface which can't be grappled.
- Glass Hard surface which can be grappled.
Will shatter if the ball hits it hard enough.
- Hyper Wall Adds to the ball's speed with
each bounce.
Special
thanks to Gilles St. Cyr for beta-testing the level editor