Repository navigation
.gflvl
Geometry Flip uses .gflvl files to make game levels. Each level file contains obstacles in a simple text format that describes the level layout.
Level files are plain text files with the .gflvl extension. Each line represents an object in the level using the format:
<type>,<x>,<y>[,<length_or_height>]
- X-axis: Horizontal position (increases to the right)
- Y-axis: Vertical position (increases upward from the ground)
- Grid size: Each cell is 8x8 pixels
- Player start: X=0, Y=0 (bottom of the screen)
| Type | Character | Description |
|---|---|---|
| Empty | 0 | No object |
| Block | 1 | Solid platform |
| Spike Up | 2 | Upward-facing spike |
| Spike Down | 3 | Downward-facing spike |
| Spike Left | 4 | Left-facing spike |
| Spike Right | 5 | Right-facing spike |
| Type | Character | Description |
|---|---|---|
| Ship Portal | 6 | Transforms player into ship mode |
| Cube Portal | 7 | Transforms player into cube mode |
| Gravity Up | 8 | Reverses gravity for ships |
| Gravity Down | 9 | Normal gravity for ships |
b,<x>,<y>,<length>
Creates a horizontal platform of specified length.
-
x: Starting X position -
y: Y position (height) -
length: Number of blocks in the platform
w,<x>,<y>,<height>
Creates a vertical wall of specified height.
-
x: X position -
y: Starting Y position -
height: Number of blocks in the wall
<type>,<x>,<y>
Places a single object at the specified position.
-
type: Object type character (0-9) -
x: X position -
y: Y position
b,5,3,4
Creates a platform at X=5, Y=3 with length of 4 blocks.
2,10,0
Places an upward-facing spike at X=10, Y=0 (ground level).
b,0,0,10
2,3,0
6,15,3
7,20,0
- Platform from X=0 to X=9 at ground level
- Spike at X=3, Y=0
- Ship portal at X=15, Y=3
- Cube portal at X=20, Y=0
Lines starting with # are treated as comments and ignored:
# This is an internal level comment
b,0,0,5 # Platform at ground level
- Start Simple: Learn gflvl with basic platforms and spikes
- Test Frequently: Playtest your levels during development
- Balance Difficulty: Ensure your level is easy, because my game is crap at the moment
- Clear Pathways: Flipper has a small screen, make level easy to understand
- Use simple names (for example
tutorial.gflvl,hard_challenge.gflvl) - Keep names short and without spaces (as I am paranoid)
- Use only alphanumeric characters and underscores (paranoid 2)
- Maybe, the limit for total objects per level is under 2000, Flipper hasn't that much RAM
- Avoid excessively long platforms or walls
- Space objects to allow for proper collision detection
# Tutorial Level
# Basic platforming with simple obstacles
# Ground platform
b,0,0,20
# First obstacle - single spike
2,5,0
# Second obstacle - spike pair
2,10,0
2,11,0
# Ship portal
6,15,3
# Flying section
2,20,5
2,22,3
2,24,1
# Cube portal
7,28,0
# Final jump
b,32,0,5
2,35,0
- Create
.gflvlfiles using the format described above - Place files in the
/ext/apps_data/geometry_flipdirectory on your device - Launch Geometry Flip and select your level from the menu
-
Level not appearing/no levels in path...: Check file extension is
.gflvland the folder is right - Objects in wrong positions: Verify coordinate system (X,Y)
- Collision problems: Ensure objects are properly spaced
- Performance issues: Reduce number of objects in level
- Each line should have 3-4 comma-separated values
- Object types must be characters 0-9/letters
- Coordinates should be positive integers
- Length/height values should be between 1-100
# Multi-level platforms
b,0,0,10
b,5,3,5
b,10,6,5
# Saw pattern
2,10,0
3,12,3
2,14,0
3,16,3
# Ship -> Gravity flip -> Cube sequence
6,5,3
8,10,3
7,15,0
This documentation provides materials needed to begin with custom levels for Geometry Flip. Experiment with different combinations of objects to create something, that is good, unique and challenging on Flipper. You could share levels with pull requests!