🚀 30 Limn Engine Functions That Will Level Up Your Game Development
For Developers Who Already Know the Basics — Here's What You're Missing
📖 Introduction
You've been building games with Limn Engine. You know the basics — display.start(), display.add(), move.bound(). But there's a whole world of powerful functions that can make your games smoother, more polished, and easier to build.
This guide is for developers who are already coding with Limn Engine but haven't discovered the functions that will truly level up their game development.
We've selected 30 functions based on what actually matters in real game development:
| Criterion | What It Means |
|---|---|
| Time Savings | Replaces 10+ lines of code with one function |
| Performance | Makes your game run faster and smoother |
| Polish | Adds professional feel with minimal effort |
| Capability | Unlocks new mechanics you couldn't build before |
The 30 Functions
1. display.perform() — The 60fps Activator
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Activates the dual-canvas rendering pipeline. Without this, Limn runs at 4 FPS with large worlds. With it, you get 60 FPS.
const display = new Display();
display.perform(); // ⚡ MUST be called before start()
display.start(800, 600);
When You'd Use It: Every game. Without exception.
What You Were Doing Before: Nothing — you couldn't get 60 FPS without it.
2. component.fixed() — UI That Stays Put
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Locks a component to the screen position when the camera moves. Your health bar, score, and UI stay visible.
scoreText.fixed(); // Call this every frame
When You'd Use It: Any UI element — health bars, scores, menus.
What You Were Doing Before: Manually calculating ui.x = camera.x + offset every frame.
3. move.glideTo() — Professional Movement Without Lerp Code
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Moves a component smoothly to a target position with cubic ease-out. No writing lerp functions.
// Move coin to (500, 300) over 1 second
move.glideTo(coin, 1000, 500, 300);
When You'd Use It: UI animations, enemy patrols, cutscenes, smooth transitions.
What You Were Doing Before: Writing requestAnimationFrame loops and lerp calculations.
4. move.pointTo() — Aim Without Trigonometry
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐⭐
What It Does: Rotates a component to face a target. No more Math.atan2().
move.pointTo(turret, mouse.x, mouse.y);
When You'd Use It: Turrets, enemies tracking the player, aiming mechanics.
What You Were Doing Before: Writing Math.atan2(targetY - y, targetX - x) every time.
5. move.particles.* — Instant Visual Effects
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Six built-in particle presets with zero configuration.
move.particles.explosion(ps, x, y, 30);
move.particles.sparkle(ps, x, y);
move.particles.blood(ps, x, y, 15);
When You'd Use It: Explosions, coin collection, combat effects, weather.
What You Were Doing Before: Writing particle configuration code for gravity, fade, speed, and color.
6. component.enableCircleCollision() — Perfect Round Hitboxes
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Switches from rectangle to circle collision detection.
coin.enableCircleCollision();
if (player.crashWithCircle(coin)) {
collect();
}
When You'd Use It: Coins, balls, round enemies, power-ups.
What You Were Doing Before: Using rectangle collisions on round objects and getting weird hitboxes.
7. display.camera.shake() / shakeRotation() — Instant Game Feel
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Creates screen shake with one line. Position shake + rotation shake for dramatic impact.
display.camera.shake(8, 8);
display.camera.shakeRotation(0.08);
When You'd Use It: Explosions, player hits, boss attacks, coin collection.
What You Were Doing Before: Writing timer-based transform resets and manual camera movement.
8. component.destroy() — Memory Management You Control
Saves Time: ⭐⭐ | Performance: ⭐⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Permanently removes a component from the engine.
bullet.destroy();
enemy.destroy();
When You'd Use It: Bullets off-screen, defeated enemies, collected items.
What You Were Doing Before: comm.splice() and hoping nothing broke.
9. move.accelerate() / move.decelerate() — Weighty, Realistic Movement
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Smooth acceleration and deceleration with max speed clamping.
if (display.keys[68]) {
move.accelerate(player, 0.6, 0, 8, 0);
} else {
move.decelerate(player, 0.4, 0);
}
When You'd Use It: Vehicles, platformers, smooth character movement.
What You Were Doing Before: Manual speed accumulation with if statements.
10. display.scene — Clean Game State Management
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Switches between scenes (menu, gameplay, game over) instantly.
display.scene = 1; // Switch to gameplay
When You'd Use It: Any game with multiple screens.
What You Were Doing Before: Creating and destroying objects manually.
11. move.circle() — Orbital Motion Without Trig
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Creates orbiting motion without writing trig.
move.circle(orbiter, 2);
When You'd Use It: Orbiting enemies, planetary systems, rotating patterns.
What You Were Doing Before: Writing Math.cos() and Math.sin() loops.
12. move.sound.* — One-Line Audio
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Plays sounds and music with one line.
move.sound.play("coin");
move.sound.playMusic("theme");
move.sound.setMasterVolume(0.8);
When You'd Use It: Any game with audio feedback.
What You Were Doing Before: const s = new Sound(); s.play(); every time.
13. component.hide() / component.show() — Temporary Invisibility
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Temporarily hides or shows a component.
enemy.hide(); // Disappear
enemy.show(); // Reappear
When You'd Use It: Respawn systems, toggleable UI, temporary effects.
What You Were Doing Before: Destroying and recreating objects.
14. move.forward() / move.backward() — Directional Movement
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Moves in the direction the component is facing.
move.forward(car, 5);
When You'd Use It: Driving games, top-down shooters.
What You Were Doing Before: speedX = Math.cos(angle) * steps.
15. move.position() — Snap to Screen Edges
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Positions a component at screen edges or center.
move.position(healthBar, "top", 20);
When You'd Use It: UI layout, menus, HUD elements.
What You Were Doing Before: Manual centering calculations.
16. move.boundTo() — Custom Boundaries
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Clamps a component to custom boundaries.
move.boundTo(player, 50, 750, 50, 550);
When You'd Use It: Arena games, room-based levels.
What You Were Doing Before: Manual edge checking with if statements.
17. move.hitObject() — Platform-Style Collision
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Makes a component land on top of another component.
move.hitObject(player, platform);
When You'd Use It: Platformers, landing on platforms.
What You Were Doing Before: Complex collision resolution with if statements.
18. move.project() — Projectile Physics
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Launches a projectile with gravity and bounce.
move.project(arrow, 300, 45, 0.5);
When You'd Use It: Arrows, fireballs, grenades.
What You Were Doing Before: Manual velocity and gravity calculations.
19. display.clearMargin — Render Optimization
Saves Time: ⭐ | Performance: ⭐⭐⭐ | Polish: ⭐ | Capability: ⭐
What It Does: Controls how much of the canvas is cleared.
display.clearMargin = [800, 600]; // Match canvas size
When You'd Use It: Any game — reduces unnecessary work.
What You Were Doing Before: Nothing — you didn't know this existed.
20. fake.add() — Static Content Caching
Saves Time: ⭐⭐ | Performance: ⭐⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Adds static content to the offscreen fake canvas.
fake.add(tree);
fake.add(decoration);
When You'd Use It: Tilemaps, backgrounds, static decorations.
What You Were Doing Before: Redrawing static objects every frame.
21. display.camera.setZoom() — Dynamic Perspective
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐
What It Does: Zooms the camera in or out.
display.camera.setZoom(1.5); // Zoom in
When You'd Use It: Cutscenes, boss fights, strategy views.
What You Were Doing Before: Manual canvas scaling.
22. move.teleport() — Instant Position
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Instantly moves a component to a position.
move.teleport(player, 400, 300);
When You'd Use It: Respawns, checkpoints, teleportation.
What You Were Doing Before: player.x = 400; player.y = 300;.
23. move.stamp() — Clone Components
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Creates a clone of a component.
const clone = move.stamp(enemy);
When You'd Use It: Creating duplicates, spawning effects.
What You Were Doing Before: new Component() and copying properties manually.
24. new ParticleSystem() — Custom Particles
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐⭐
What It Does: Creates custom particle effects.
const ps = new ParticleSystem(display);
ps.emit(x, y, { color: "cyan", life: 30 });
When You'd Use It: Effects not covered by presets.
What You Were Doing Before: Nothing — you couldn't easily make particles.
25. new AnimatedSprite() — Multiple Animations
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐⭐⭐
What It Does: Manages multiple animation states.
const hero = new AnimatedSprite("hero.png", 64, 64);
hero.addAnimation("run", 0, 3, 8, true);
hero.addAnimation("idle", 4, 5, 10, true);
When You'd Use It: Character animations — idle, run, jump, attack.
What You Were Doing Before: Manual sprite sheet frame management.
26. display.tileMap() — Tile-Based Levels
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Creates tile-based levels from a 2D array.
display.map = [
[1,1,1,1,1],
[1,0,0,0,1],
[1,1,1,1,1]
];
display.tileMap();
display.tileFace.show();
When You'd Use It: Platformers, RPGs, top-down games.
What You Were Doing Before: Placing individual rectangles manually.
27. tilemap.crashWith() — Tile Collision
Saves Time: ⭐⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐⭐
What It Does: Checks collision with specific tile types.
if (tilemap.crashWith(player, 1)) {
// Hit a wall!
}
When You'd Use It: Wall detection in tile-based games.
What You Were Doing Before: Manual rectangle collision with every wall.
28. display.backgroundColor() / display.lgradient() — Professional Backgrounds
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐⭐ | Capability: ⭐
What It Does: Sets canvas background with one line.
display.backgroundColor("#0a0a10");
display.lgradient("top", "royalblue", "darkblue");
When You'd Use It: Any game — quick polish.
What You Were Doing Before: ctx.fillStyle and ctx.fillRect every frame.
29. display.scale() — Responsive Design
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐⭐
What It Does: Resizes the canvas at runtime.
display.scale(1024, 768);
When You'd Use It: Window resizing, full-screen transitions.
What You Were Doing Before: Recreating the display.
30. display.stop() — Clean Game Over
Saves Time: ⭐⭐ | Performance: ⭐⭐ | Polish: ⭐⭐ | Capability: ⭐
What It Does: Stops the game loop.
display.stop();
When You'd Use It: Game over, debugging, pause menu.
What You Were Doing Before: Nothing — you didn't know you could stop the loop.
📊 Ranking by Impact
| Impact | Functions |
|---|---|
| Top Time Savers |
perform(), glideTo(), pointTo(), particles.*, accelerate(), scene, sound.*, forward(), position(), hitObject(), project()
|
| Top Performance Boosters |
perform(), destroy(), clearMargin, fake.add()
|
| Top Polish Adders |
fixed(), shake(), shakeRotation(), particles.*, sound.*, setZoom()
|
🎯 The One-Line Summary
"These 30 functions replace hundreds of lines of boilerplate and unlock professional-grade game mechanics — start using them today."
Draw your game into existence — one function at a time. 🚀
Top comments (0)